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
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
birthpec init
Generate birthpec config file and templates directory.
birthpec basic src/index.ts
Generate spec file.
For example:
__birthpec/
└── basic
└── index.ejs
template-name
is basic.
For example:
src/
└── index.ts
If you want to generate spec file of index.ts
, src/index.ts
is target-file-path.
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
module.exports = {
templates: `__birthpec`,
};
In this case, when run birthpec basic src/index.ts
, birthpec see __birthpec/basic/index.ejs
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 |
export const foo = 1;
export const fn = () => 2;
// exportItems => ['foo', 'fn']
birthpec use @typescript-eslint/parser.
commonjs has not supported yet.
You can use front-matter syntax in ejs template file. Now supports:
- to
- generate path
Please create .birthpecrc.js
on your root.
Select templates directory.
module.exports = {
templates: `__birthpec`,
};
Now supports change-case.
<%= helper.changeCase.camelCase('foo bar') %>
// => fooBar
Of course, you can add your helper.
module.exports = {
helper: {
projectName: 'project',
src(name) {
return `path/to/images/${name}`;
},
},
};
<%= helper.projectName %>
// => project
<%= helper.src('aaaaa') %>
// => path/to/images/aaaaa
npm run build
npm run sandbox
cd ./sandbox
birthpec init
See LICENSE