birthpec
Birth spec file 👶
🚧WIP🚧
- Generate spec file
- Supports
- js
- ts
- jsx
- tsx
- Supports
- Read export item's identifier
- Be able to config with
.birthpecrc.js
- Be able to edit template with ejs
Usage
npm install -D birthpec
birthpec -h Usage: birthpec <template-name> <target-file-path> Run config initialization wizard Options: -v, --version Print version of birthpec -h, --help Show help Commands: init Example: $ birthpec basic src/shared/helpers/sum.ts $ birthpec init
Commands
birthpec init
birthpec init
Generate birthpec config file and templates directory.
birthpec
birthpec basic src/index.ts
Generate spec file.
template-name
For example:
__birthpec/└── basic └── index.ejs
template-name
is basic.
target-file-path
For example:
src/└── index.ts
If you want to generate spec file of index.ts
, src/index.ts
is target-file-path.
template
birthpec supports ejs and front-matter for generate spec file's template. You can also edit template file.
__birthpec/└── basic └── index.ejs
__birthpec/basic/index.ejs
---to: <%= dirName %>/__tests__/<%= fileName %>.spec.<%= extensionName %>---import {<% for (const exportItem of exportItems) { %> <%= exportItem %>, <% } %>} from '../<%= fileName %>'; describe('<%= helper.projectName %> <%= helper.changeCase.camelCase(fileName) %>', () => { <% for (const exportItem of exportItems) { %> describe('<%= exportItem %>', () => { it('', () => { }); }); <% } %>});
You should include index.ejs
into the template directory.
For example:
./├── __birthpec│ └── basic│ └── index.ejs└── src └── index.ts
.birthpecrc.js
moduleexports = templates: `__birthpec`;
In this case, when run birthpec basic src/index.ts
, birthpec see __birthpec/basic/index.ejs
Reserved words
You can edit template.
Also these items helps you to edit template with ejs.
name | type | description | example |
---|---|---|---|
<%= fileName %> |
string | file name | path/to/file.js => file |
<%= dirName %> |
string | directory name | path/to/file.js => path/to |
<%= extensionName %> |
string | file extension name | path/to/file.js => js |
<%= exportItems %> |
string[] | export items | See |
<%= helper %> |
object | helper functions | See |
exportItems
const foo = 1;const fn = 2; // exportItems => ['foo', 'fn']
birthpec use @typescript-eslint/parser.
commonjs has not supported yet.
front-matter
You can use front-matter syntax in ejs template file. Now supports:
- to
- generate path
Config
Please create .birthpecrc.js
on your root.
templates
Select templates directory.
moduleexports = templates: `__birthpec`;
helper
Now supports change-case.
<%= helperchangeCase %>// => fooBar
Of course, you can add your helper.
moduleexports = helper: projectName: 'project' { return `path/to/images/`; } ;
<%= helperprojectName %>// => project <%= helper %>// => path/to/images/aaaaa
Development
npm run buildnpm run sandbox cd ./sandbox birthpec init
Inspired by
LICENSE (MIT)
See LICENSE