Skip to content

Commit 8515444

Browse files
committed
feat(api): add commit API module with commitlint scope helper
1 parent 65c153d commit 8515444

File tree

6 files changed

+49
-0
lines changed

6 files changed

+49
-0
lines changed

src/api/__tests__/__fixtures__/ls/configs/.foorc.json

Whitespace-only changes.

src/api/__tests__/__fixtures__/ls/configs/foo.config.js

Whitespace-only changes.

src/api/__tests__/__fixtures__/ls/configs/foo.js

Whitespace-only changes.

src/api/__tests__/__fixtures__/ls/configs/foo.setup.ts

Whitespace-only changes.

src/api/__tests__/commit.js

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const {ls} = require('../commit')
2+
3+
const fixtures = './src/api/__tests__/__fixtures__'
4+
5+
describe('ls', () => {
6+
test('configs', () => {
7+
const result = ls.configs(`${fixtures}/ls/configs`)
8+
9+
const expected = [
10+
'configs/.foorc',
11+
'configs/foo',
12+
'configs/foo.setup',
13+
'configs/foo',
14+
]
15+
16+
expect(result.sort()).toEqual(expected.sort())
17+
})
18+
})

src/api/commit.js

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
const {readdirSync, statSync} = require('fs')
2+
const {join, sep} = require('path')
3+
4+
/**
5+
* Enumerate config files
6+
*
7+
* Example
8+
*
9+
* - `dir/foo.js`
10+
* - `dir/bar.config.js`
11+
* - `dir/baz.json`
12+
* - `dir/qux.ts`
13+
*
14+
* `ls.config('./dir') → ['dir/foo', 'dir/bar', 'dir/baz', 'dir/qux']`
15+
*
16+
* @param {string} path - directory to enumerate
17+
*/
18+
const configs = path =>
19+
readdirSync(path)
20+
.filter(f => statSync(join(path, f)).isFile())
21+
.map(
22+
f =>
23+
`${path.split(sep).reverse()[0]}/${f.replace(
24+
/(\.config)?.(json|js|ts)/,
25+
'',
26+
)}`,
27+
)
28+
29+
const ls = {configs}
30+
31+
module.exports = {ls}

0 commit comments

Comments
 (0)