{"_id":"@adepranaya/gfeat","_rev":"4-aa19971927b3f0eba7cd91a1b83cb2ab","name":"@adepranaya/gfeat","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@adepranaya/gfeat","version":"1.0.0","keywords":["cli","feature generator","multi file generator"],"author":{"url":"https://adepranaya.com","name":"Ade Pranaya","email":"adepranaya@gmail.com"},"license":"ISC","_id":"@adepranaya/gfeat@1.0.0","maintainers":[{"name":"adepranaya","email":"depran7@gmail.com"}],"homepage":"https://github.com/adepranaya/gfeat#readme","bugs":{"url":"https://github.com/adepranaya/gfeat/issues"},"bin":{"gfeat":"index.js"},"dist":{"shasum":"2d416dd374347e22d6e3c88a24a4497b686799fe","tarball":"https://registry.npmjs.org/@adepranaya/gfeat/-/gfeat-1.0.0.tgz","fileCount":5,"integrity":"sha512-F8m/q0JKjrWjpSmpXtZuB/ukVuMbOvNQPE+ht9nvaHmoqQE2cNDlry7jj6nwOfV0Ds/ZOvSc6p+KyXdDRJLucA==","signatures":[{"sig":"MEYCIQDrp80mLaarPu6PeZVNdStNLWG7BrihZ2wFLiQlUWIrrAIhAPfCLOrD7lSV6zr8RhZLJDkb8AQ6kBVCXS6PT1e+vsxF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9421},"main":"index.js","type":"module","gitHead":"64549c030f8594fe03f83295d6c2767bec777b2e","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"adepranaya","email":"depran7@gmail.com"},"repository":{"url":"git+https://github.com/adepranaya/gfeat.git","type":"git"},"_npmVersion":"10.5.2","description":"generate feat from your templates","directories":{},"_nodeVersion":"20.13.0","dependencies":{"fs-extra":"^11.3.0","fast-glob":"^3.3.3","@inquirer/prompts":"^7.3.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gfeat_1.0.0_1741321826622_0.8525660218715099","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@adepranaya/gfeat","version":"1.0.1","keywords":["cli","feature generator","multi file generator"],"author":{"url":"https://adepranaya.com","name":"Ade Pranaya","email":"adepranaya@gmail.com"},"license":"ISC","_id":"@adepranaya/gfeat@1.0.1","maintainers":[{"name":"adepranaya","email":"depran7@gmail.com"}],"homepage":"https://github.com/adepranaya/gfeat#readme","bugs":{"url":"https://github.com/adepranaya/gfeat/issues"},"bin":{"gfeat":"index.js"},"dist":{"shasum":"e52d544418600a69beb8dcfc88a154701bc8098b","tarball":"https://registry.npmjs.org/@adepranaya/gfeat/-/gfeat-1.0.1.tgz","fileCount":5,"integrity":"sha512-eRWr/iK039e1cFnFp2lgHhoiCac6ez/orcFhDuPxe7wM6tQFI3u9hPQiKdLxkvZu0cSvxdYg7LIdnkBW6FVmWw==","signatures":[{"sig":"MEQCIEjp0iZhBskvxOB7cPASv6df+tWdSnyrtCo56gIINVxRAiBFJgC5kPKJVXlPiitRjRggRXn0Dz0zhPdwBO1veg8R3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9396},"main":"index.js","type":"module","gitHead":"70c1f1dfcee7d5631427a0852e6880b3438c0b28","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"adepranaya","email":"depran7@gmail.com"},"repository":{"url":"git+https://github.com/adepranaya/gfeat.git","type":"git"},"_npmVersion":"10.5.2","description":"generate feat from your templates","directories":{},"_nodeVersion":"20.13.0","dependencies":{"fs-extra":"^11.3.0","fast-glob":"^3.3.3","@inquirer/prompts":"^7.3.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gfeat_1.0.1_1741322085332_0.5987526610294907","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@adepranaya/gfeat","version":"1.1.0","keywords":["cli","feature generator","multi file generator"],"author":{"url":"https://adepranaya.com","name":"Ade Pranaya","email":"adepranaya@gmail.com"},"license":"ISC","_id":"@adepranaya/gfeat@1.1.0","maintainers":[{"name":"adepranaya","email":"depran7@gmail.com"}],"homepage":"https://github.com/adepranaya/gfeat#readme","bugs":{"url":"https://github.com/adepranaya/gfeat/issues"},"bin":{"gfeat":"index.js"},"dist":{"shasum":"988b882a255fa85eead41a00fa3ef53433e641c4","tarball":"https://registry.npmjs.org/@adepranaya/gfeat/-/gfeat-1.1.0.tgz","fileCount":6,"integrity":"sha512-WyK2SeTaCDbMjSv2x+80nndnwyemYhWbavmaFeu43y+a4z11WWTe5SVRY0Gcz0WRcLpenS6KCK/9EdVWGmAIyQ==","signatures":[{"sig":"MEYCIQCQeKX9xAxEtgBbdG6LEvfuY9/QC02tMYeXjfg2yOgQDQIhALhemlHweTexggTwQxtZfGCrnnsbt1qF5ZzSUqPgJeoq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10498},"main":"index.js","type":"module","gitHead":"205c0820faebd74786a5ae99b89fb80136f81189","scripts":{"test":"node --test","release":"standard-version --skip.tag"},"_npmUser":{"name":"adepranaya","email":"depran7@gmail.com"},"repository":{"url":"git+https://github.com/adepranaya/gfeat.git","type":"git"},"_npmVersion":"10.8.2","description":"generate feat from your templates","directories":{},"_nodeVersion":"20.20.0","dependencies":{"fs-extra":"^11.3.0","fast-glob":"^3.3.3","@inquirer/prompts":"^7.3.2"},"_hasShrinkwrap":false,"devDependencies":{"standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/gfeat_1.1.0_1770214603693_0.1847864687515106","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@adepranaya/gfeat","version":"1.2.0","main":"index.js","type":"module","scripts":{"test":"node --test","release":"standard-version"},"repository":{"type":"git","url":"git+https://github.com/adepranaya/gfeat.git"},"keywords":["cli","feature generator","multi file generator"],"author":{"name":"Ade Pranaya","email":"adepranaya@gmail.com","url":"https://adepranaya.com"},"license":"ISC","description":"generate feat from your templates","bugs":{"url":"https://github.com/adepranaya/gfeat/issues"},"homepage":"https://github.com/adepranaya/gfeat#readme","dependencies":{"@inquirer/prompts":"^7.3.2","fast-glob":"^3.3.3","fs-extra":"^11.3.0"},"bin":{"gfeat":"bin/gfeat.js"},"devDependencies":{"esmock":"^2.7.3","standard-version":"^9.5.0"},"_id":"@adepranaya/gfeat@1.2.0","gitHead":"067c761fad833afc63804650241746b334d637c1","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-r0RCUarTGi+waUbrVty61bQD5wUdRgtqhBU8KSVQQ3DVy/bTP5UTRiMzfpC33PpDLIWGkDUTiilNYDyAUN5PUg==","shasum":"9e5af8975085d8fc7550b67fd4207089c788316b","tarball":"https://registry.npmjs.org/@adepranaya/gfeat/-/gfeat-1.2.0.tgz","fileCount":8,"unpackedSize":11753,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB6JbRHrQrqtK7yTdUBQSRI8tHZhhF2kJW76AWQmokZLAiEA+mV+g28+JG9HGQCF7VEzC1EV2Ny/gPmndQQNhVMZA0Q="}]},"_npmUser":{"name":"adepranaya","email":"depran7@gmail.com"},"directories":{},"maintainers":[{"name":"adepranaya","email":"depran7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gfeat_1.2.0_1770274661559_0.1631797665339263"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-07T04:30:26.557Z","modified":"2026-02-05T06:57:41.835Z","1.0.0":"2025-03-07T04:30:26.798Z","1.0.1":"2025-03-07T04:34:45.526Z","1.1.0":"2026-02-04T14:16:43.831Z","1.2.0":"2026-02-05T06:57:41.715Z"},"bugs":{"url":"https://github.com/adepranaya/gfeat/issues"},"author":{"name":"Ade Pranaya","email":"adepranaya@gmail.com","url":"https://adepranaya.com"},"license":"ISC","homepage":"https://github.com/adepranaya/gfeat#readme","keywords":["cli","feature generator","multi file generator"],"repository":{"type":"git","url":"git+https://github.com/adepranaya/gfeat.git"},"description":"generate feat from your templates","maintainers":[{"name":"adepranaya","email":"depran7@gmail.com"}],"readme":"# @adepranaya/gfeat\n\n## 🚀 Generate Feature CLI for Your Project\n\n`@adepranaya/gfeat` is a CLI tool that helps you quickly generate new features in your project using predefined templates.\n\n## ✨ Features\n\n- 📁 **Automatically generate files based on templates**\n- 🔄 **Adjust filenames and content based on configuration rules**\n- ⚙️ **Flexible configuration for different projects**\n\n## 📦 Installation\n\nYou can install `@adepranaya/gfeat` globally using npm:\n```sh\nnpm install -g @adepranaya/gfeat\n```\nOr locally using npm:\n```sh\nnpm install @adepranaya/gfeat --save-dev\n```\n\n## 🛠️ Usage\n\n1. Run the following command in your terminal:\n   ```sh\n   gfeat\n   ```\n   or if installed locally:\n   ```sh\n   npx gfeat\n   ```\n2. Enter the **feature name** you want to create.\n3. Select the **template** to use.\n4. The files will be automatically generated according to the configuration rules.\n\n## 📝 Configuration\n\nCreate a `gfeat.config.mjs` file in the root of your project:\n\n```js\nexport const templates = [\n  {\n    name: 'component',\n    src: ['./gfeat-src/templates/component/BaseFeat/*'],\n    target: ['./src/components/$PASCAL_FEAT'],\n  },\n  {\n    name: 'docs',\n    src: ['./gfeat-src/templates/doc/BaseFeat/*'],\n    target: ['./src/docs/$PASCAL_FEAT'],\n  },\n];\nexport const replaceStr = 'BaseFeat';\n```\n\nor `gfeat.config.js`\n\n```js\nmodule.exports = {\n  templates: [\n    {\n      name: 'component',\n      src: ['./gfeat-src/templates/component/BaseFeat/*'],\n      target: ['./src/components/$PASCAL_FEAT'],\n    },\n    {\n      name: 'docs',\n      src: ['./gfeat-src/templates/doc/BaseFeat/*'],\n      target: ['./src/docs/$PASCAL_FEAT'],\n    },\n  ],\n  replaceStr: 'BaseFeat',\n};\n```\n\n### 📌 Configuration Explanation\n\n- **`src`** → Location of template files\n- **`target`** → Destination folder for generated files\n- **`replaceStr`** → Rules for renaming files and modifying file content\n- **`$PASCAL_FEAT`** → One of Options for renaming target options to PascalCase of feature name, the options you can choose are:\n  - `$PASCAL_FEAT` (ex: UserProfile),\n  - `$KEBAB_FEAT` (ex: user-profile),\n  - `$CAMEL_FEAT` (ex: userProfile)\n  - `$SNAKE_FEAT` (ex: user_profile)\n\n## 📄 Example Templates\n\n```bash\n# ./gfeat-src/templates/component/BaseFeat/BaseFeat.vue\n# ./gfeat-src/templates/component/BaseFeat/base-feat.scss\n# ./gfeat-src/templates/component/BaseFeat/baseFeat.d.ts\n# ./gfeat-src/templates/docs/BaseFeat/BaseFeat.stories\n\n├── gfeat-src\n│   ├── templates\n│   │   ├── component\n│   │   │   ├── BaseFeat\n│   │   │   │   ├── BaseFeat.vue\n│   │   │   │   ├── base-feat.scss\n│   │   │   │   └── baseFeat.d.ts\n│   │   │   doc\n│   │   │   ├── BaseFeat\n│   │   │   │   └── BaseFeat.stories\n\n```\n\n```ts\n// ./gfeat-src/templates/component/BaseFeat/baseFeat.d.ts\nexport interface IBaseFeatProps {\n}\n```\n\n## 📄 Example Usage\n\nIf you enter the feature name `UserProfile`, the following files will be generated:\n\n```bash\n# ./src/components/UserProfile/UserProfile.vue\n# ./src/components/UserProfile/user-profile.scss\n# ./src/components/UserProfile/userProfile.d.ts\n# ./src/docs/UserProfile/UserProfile.d.ts\n\n├── src\n│   ├── components\n│   │   ├── UserProfile\n│   │   │   ├── UserProfile.vue\n│   │   │   ├── user-profile.scss\n│   │   │   └── userProfile.d.ts\n│   ├── docs\n│   │   ├── UserProfile\n│   │   │   └── UserProfile.stories\n```\n\n```ts\n// ./src/components/UserProfile/userProfile.d.ts\nexport interface IUserProfileProps {\n}\n```\n\n## 🤝 Contributing\n\nIf you would like to contribute, please submit a Pull Request or report issues on [GitHub](https://github.com/adepranaya/gfeat).\n\n## 📜 License\n\nISC License\n","readmeFilename":"README.md"}