@form8ion/git 2.2.0 → 3.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -4
- package/example.js +8 -2
- package/lib/index.js +11 -12
- package/lib/index.js.map +1 -1
- package/package.json +32 -29
- package/src/attributes/scaffolder.js +1 -1
- package/src/ignore/lifter.js +2 -4
- package/src/ignore/lifter.test.js +11 -7
- package/src/ignore/scaffolder.js +1 -1
- package/src/ignore/tester.js +1 -1
- package/src/lifter.js +2 -2
- package/src/lifter.test.js +3 -2
- package/src/scaffolder.js +2 -3
- package/src/scaffolder.test.js +2 -1
- package/src/tester.js +1 -1
package/README.md
CHANGED
|
@@ -58,11 +58,17 @@ import {scaffold, test, lift} from '@form8ion/git';
|
|
|
58
58
|
|
|
59
59
|
```javascript
|
|
60
60
|
const projectRoot = process.cwd();
|
|
61
|
+
const logger = {
|
|
62
|
+
info: () => undefined,
|
|
63
|
+
success: () => undefined,
|
|
64
|
+
warn: () => undefined,
|
|
65
|
+
error: () => undefined
|
|
66
|
+
};
|
|
61
67
|
|
|
62
|
-
await scaffold({projectRoot});
|
|
68
|
+
await scaffold({projectRoot}, {logger});
|
|
63
69
|
|
|
64
70
|
if (await test({projectRoot})) {
|
|
65
|
-
await lift({projectRoot, results: {vcsIgnore: {file: [], directories: []}}});
|
|
71
|
+
await lift({projectRoot, results: {vcsIgnore: {file: [], directories: []}}}, {logger});
|
|
66
72
|
}
|
|
67
73
|
```
|
|
68
74
|
|
|
@@ -105,7 +111,7 @@ $ npm test
|
|
|
105
111
|
|
|
106
112
|
[renovate-link]: https://renovatebot.com
|
|
107
113
|
|
|
108
|
-
[renovate-badge]: https://img.shields.io/badge/renovate-enabled-brightgreen.svg?logo=
|
|
114
|
+
[renovate-badge]: https://img.shields.io/badge/renovate-enabled-brightgreen.svg?logo=renovate
|
|
109
115
|
|
|
110
116
|
[PRs-link]: https://makeapullrequest.com
|
|
111
117
|
|
|
@@ -117,7 +123,7 @@ $ npm test
|
|
|
117
123
|
|
|
118
124
|
[coverage-link]: https://codecov.io/github/form8ion/git
|
|
119
125
|
|
|
120
|
-
[coverage-badge]: https://img.shields.io/codecov/c/github/form8ion/git?logo=codecov
|
|
126
|
+
[coverage-badge]: https://img.shields.io/codecov/c/github/form8ion/git/master?logo=codecov
|
|
121
127
|
|
|
122
128
|
[slsa-badge]: https://slsa.dev/images/gh-badge-level2.svg
|
|
123
129
|
|
package/example.js
CHANGED
|
@@ -9,9 +9,15 @@ stubbedFs();
|
|
|
9
9
|
// #### Execute
|
|
10
10
|
|
|
11
11
|
const projectRoot = process.cwd();
|
|
12
|
+
const logger = {
|
|
13
|
+
info: () => undefined,
|
|
14
|
+
success: () => undefined,
|
|
15
|
+
warn: () => undefined,
|
|
16
|
+
error: () => undefined
|
|
17
|
+
};
|
|
12
18
|
|
|
13
|
-
await scaffold({projectRoot});
|
|
19
|
+
await scaffold({projectRoot}, {logger});
|
|
14
20
|
|
|
15
21
|
if (await test({projectRoot})) {
|
|
16
|
-
await lift({projectRoot, results: {vcsIgnore: {file: [], directories: []}}});
|
|
22
|
+
await lift({projectRoot, results: {vcsIgnore: {file: [], directories: []}}}, {logger});
|
|
17
23
|
}
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import simpleGit from 'simple-git';
|
|
2
|
-
import { info } from '@travi/cli-messages';
|
|
3
2
|
import { write, exists, read } from '@form8ion/ignore-file';
|
|
4
3
|
import '@form8ion/core';
|
|
5
4
|
import { promises } from 'node:fs';
|
|
@@ -8,7 +7,7 @@ function writeGitIgnore({projectRoot, ignores}) {
|
|
|
8
7
|
return write({projectRoot, name: 'git', ignores});
|
|
9
8
|
}
|
|
10
9
|
|
|
11
|
-
function
|
|
10
|
+
function scaffoldeIgnore({projectRoot}) {
|
|
12
11
|
return writeGitIgnore({projectRoot, ignores: []});
|
|
13
12
|
}
|
|
14
13
|
|
|
@@ -30,9 +29,9 @@ async function appendToIgnoreFile({projectRoot, ignores}) {
|
|
|
30
29
|
await writeGitIgnore({projectRoot, ignores: [...existingIgnores, ...ignores]});
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
async function liftIgnore
|
|
32
|
+
async function liftIgnore({projectRoot, results: {vcsIgnore}}, {logger}) {
|
|
34
33
|
if (vcsIgnore) {
|
|
35
|
-
info('Updating files and directories to be ignored from version control', {level: 'secondary'});
|
|
34
|
+
logger.info('Updating files and directories to be ignored from version control', {level: 'secondary'});
|
|
36
35
|
|
|
37
36
|
const {directories = [], files = []} = vcsIgnore;
|
|
38
37
|
|
|
@@ -42,37 +41,37 @@ async function liftIgnore ({projectRoot, results: {vcsIgnore}}) {
|
|
|
42
41
|
return {};
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
async function
|
|
46
|
-
info('Initializing Git Repository');
|
|
44
|
+
async function scaffoldGit({projectRoot}, {logger}) {
|
|
45
|
+
logger.info('Initializing Git Repository');
|
|
47
46
|
|
|
48
47
|
const git = simpleGit({baseDir: projectRoot});
|
|
49
48
|
|
|
50
49
|
await Promise.all([
|
|
51
|
-
|
|
50
|
+
scaffoldeIgnore({projectRoot}),
|
|
52
51
|
git.init()
|
|
53
52
|
]);
|
|
54
53
|
|
|
55
54
|
return {};
|
|
56
55
|
}
|
|
57
56
|
|
|
58
|
-
function
|
|
57
|
+
function projectVersionedWithGit({projectRoot}) {
|
|
59
58
|
const git = simpleGit({baseDir: projectRoot});
|
|
60
59
|
|
|
61
60
|
return git.checkIsRepo('root');
|
|
62
61
|
}
|
|
63
62
|
|
|
64
|
-
function scaffoldAttributes
|
|
63
|
+
function scaffoldAttributes({projectRoot}) {
|
|
65
64
|
return promises.writeFile(`${projectRoot}/.gitattributes`, '* text=auto');
|
|
66
65
|
}
|
|
67
66
|
|
|
68
|
-
async function
|
|
67
|
+
async function liftGit({projectRoot, results}, dependencies) {
|
|
69
68
|
await Promise.all([
|
|
70
69
|
scaffoldAttributes({projectRoot}),
|
|
71
|
-
liftIgnore({projectRoot, results})
|
|
70
|
+
liftIgnore({projectRoot, results}, dependencies)
|
|
72
71
|
]);
|
|
73
72
|
|
|
74
73
|
return {};
|
|
75
74
|
}
|
|
76
75
|
|
|
77
|
-
export {
|
|
76
|
+
export { liftGit as lift, scaffoldGit as scaffold, projectVersionedWithGit as test };
|
|
78
77
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/ignore/writer.js","../src/ignore/scaffolder.js","../src/ignore/existence-checker.js","../src/ignore/reader.js","../src/ignore/appender.js","../src/ignore/lifter.js","../src/scaffolder.js","../src/tester.js","../src/attributes/scaffolder.js","../src/lifter.js"],"sourcesContent":["import {write} from '@form8ion/ignore-file';\n\nexport default function writeGitIgnore({projectRoot, ignores}) {\n return write({projectRoot, name: 'git', ignores});\n}\n","import write from './writer.js';\n\nexport default function ({projectRoot}) {\n return write({projectRoot, ignores: []});\n}\n","import {exists} from '@form8ion/ignore-file';\n\nexport default function gitignoreExists({projectRoot} = {}) {\n return exists({projectRoot, name: 'git'});\n}\n","import {read} from '@form8ion/ignore-file';\n\nexport default function readGitIgnore({projectRoot}) {\n return read({projectRoot, name: 'git'});\n}\n","import gitignoreExists from './existence-checker.js';\nimport readGitIgnore from './reader.js';\nimport writeGitIgnore from './writer.js';\n\nexport default async function appendToIgnoreFile({projectRoot, ignores}) {\n let existingIgnores = [];\n\n if (await gitignoreExists({projectRoot})) {\n existingIgnores = await readGitIgnore({projectRoot});\n }\n\n await writeGitIgnore({projectRoot, ignores: [...existingIgnores, ...ignores]});\n}\n","import
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/ignore/writer.js","../src/ignore/scaffolder.js","../src/ignore/existence-checker.js","../src/ignore/reader.js","../src/ignore/appender.js","../src/ignore/lifter.js","../src/scaffolder.js","../src/tester.js","../src/attributes/scaffolder.js","../src/lifter.js"],"sourcesContent":["import {write} from '@form8ion/ignore-file';\n\nexport default function writeGitIgnore({projectRoot, ignores}) {\n return write({projectRoot, name: 'git', ignores});\n}\n","import write from './writer.js';\n\nexport default function scaffoldeIgnore({projectRoot}) {\n return write({projectRoot, ignores: []});\n}\n","import {exists} from '@form8ion/ignore-file';\n\nexport default function gitignoreExists({projectRoot} = {}) {\n return exists({projectRoot, name: 'git'});\n}\n","import {read} from '@form8ion/ignore-file';\n\nexport default function readGitIgnore({projectRoot}) {\n return read({projectRoot, name: 'git'});\n}\n","import gitignoreExists from './existence-checker.js';\nimport readGitIgnore from './reader.js';\nimport writeGitIgnore from './writer.js';\n\nexport default async function appendToIgnoreFile({projectRoot, ignores}) {\n let existingIgnores = [];\n\n if (await gitignoreExists({projectRoot})) {\n existingIgnores = await readGitIgnore({projectRoot});\n }\n\n await writeGitIgnore({projectRoot, ignores: [...existingIgnores, ...ignores]});\n}\n","import appendIgnores from './appender.js';\n\nexport default async function liftIgnore({projectRoot, results: {vcsIgnore}}, {logger}) {\n if (vcsIgnore) {\n logger.info('Updating files and directories to be ignored from version control', {level: 'secondary'});\n\n const {directories = [], files = []} = vcsIgnore;\n\n await appendIgnores({projectRoot, ignores: [...directories, ...files]});\n }\n\n return {};\n}\n","import simpleGit from 'simple-git';\n\nimport {scaffold as scaffoldIgnore} from './ignore/index.js';\n\nexport default async function scaffoldGit({projectRoot}, {logger}) {\n logger.info('Initializing Git Repository');\n\n const git = simpleGit({baseDir: projectRoot});\n\n await Promise.all([\n scaffoldIgnore({projectRoot}),\n git.init()\n ]);\n\n return {};\n}\n","import simpleGit from 'simple-git';\n\nexport default function projectVersionedWithGit({projectRoot}) {\n const git = simpleGit({baseDir: projectRoot});\n\n return git.checkIsRepo('root');\n}\n","import {promises as fs} from 'node:fs';\n\nexport default function scaffoldAttributes({projectRoot}) {\n return fs.writeFile(`${projectRoot}/.gitattributes`, '* text=auto');\n}\n","import {scaffold as scaffoldAttributes} from './attributes/index.js';\nimport {lift as liftIgnore} from './ignore/index.js';\n\nexport default async function liftGit({projectRoot, results}, dependencies) {\n await Promise.all([\n scaffoldAttributes({projectRoot}),\n liftIgnore({projectRoot, results}, dependencies)\n ]);\n\n return {};\n}\n"],"names":["write","appendIgnores","scaffoldIgnore","fs"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,47 +2,51 @@
|
|
|
2
2
|
"name": "@form8ion/git",
|
|
3
3
|
"description": "form8ion plugin for managing projects versioned with git",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "3.0.0-beta.2",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": "^
|
|
8
|
+
"node": "^22.22.2 || >=24.15"
|
|
9
9
|
},
|
|
10
10
|
"author": "Matt Travi <npm@travi.org> (https://matt.travi.org)",
|
|
11
|
-
"repository":
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/form8ion/git.git"
|
|
14
|
+
},
|
|
12
15
|
"bugs": "https://github.com/form8ion/git/issues",
|
|
13
|
-
"homepage": "https://
|
|
16
|
+
"homepage": "https://www.npmjs.com/package/@form8ion/git",
|
|
14
17
|
"runkitExampleFilename": "./example.js",
|
|
15
18
|
"exports": "./lib/index.js",
|
|
16
19
|
"main": "./lib/index.js",
|
|
17
20
|
"sideEffects": false,
|
|
18
21
|
"scripts": {
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"pregenerate:md": "run-s build",
|
|
26
|
-
"test:unit": "cross-env NODE_ENV=test c8 run-s test:unit:base",
|
|
27
|
-
"test:unit:base": "DEBUG=any vitest run",
|
|
22
|
+
"pretest": "run-s build",
|
|
23
|
+
"test": "npm-run-all --print-label --parallel lint:* --parallel test:*",
|
|
24
|
+
"lint:engines": "ls-engines",
|
|
25
|
+
"lint:gherkin": "gplint --config .gplintrc.json",
|
|
26
|
+
"lint:js": "eslint . --cache",
|
|
27
|
+
"lint:js:fix": "run-s 'lint:js -- --fix'",
|
|
28
28
|
"lint:lockfile": "lockfile-lint",
|
|
29
|
-
"prepare": "husky",
|
|
30
29
|
"lint:md": "remark . --frail",
|
|
31
|
-
"generate:md": "remark . --output",
|
|
32
30
|
"lint:peer": "npm ls >/dev/null",
|
|
33
|
-
"
|
|
31
|
+
"lint:publish": "publint --strict",
|
|
32
|
+
"test:unit": "run-s 'test:unit:base -- --coverage'",
|
|
33
|
+
"test:unit:base": "NODE_ENV=test DEBUG=any vitest run src/",
|
|
34
34
|
"test:integration": "run-s 'test:integration:base -- --profile noWip'",
|
|
35
|
+
"pretest:integration:base": "run-s build",
|
|
35
36
|
"test:integration:base": "NODE_OPTIONS=--enable-source-maps DEBUG=any cucumber-js test/integration",
|
|
36
37
|
"test:integration:debug": "DEBUG=test run-s test:integration",
|
|
38
|
+
"test:integration:focus": "run-s 'test:integration:base -- --profile focus'",
|
|
37
39
|
"test:integration:wip": "run-s 'test:integration:base -- --profile wip'",
|
|
38
40
|
"test:integration:wip:debug": "DEBUG=test run-s 'test:integration:wip'",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
41
|
+
"prebuild": "run-s clean",
|
|
42
|
+
"build": "npm-run-all --print-label --parallel build:*",
|
|
43
|
+
"build:js": "rollup --config",
|
|
44
|
+
"clean": "rimraf ./lib",
|
|
45
|
+
"pregenerate:md": "run-s build",
|
|
46
|
+
"generate:md": "remark . --output",
|
|
47
|
+
"prepack": "run-s build",
|
|
48
|
+
"prepare": "husky",
|
|
49
|
+
"watch": "run-s 'build:js -- --watch'"
|
|
46
50
|
},
|
|
47
51
|
"files": [
|
|
48
52
|
"example.js",
|
|
@@ -55,23 +59,22 @@
|
|
|
55
59
|
},
|
|
56
60
|
"packageManager": "npm@11.12.1+sha512.cdca14b85d647b3192028d02aadbe82d75f79a446aceea9874be98e6d768f20ebd3555770a48d0e9906106007877bbc690f715e9372f2e2dc644a3c3157fb14c",
|
|
57
61
|
"dependencies": {
|
|
58
|
-
"@form8ion/core": "^
|
|
62
|
+
"@form8ion/core": "^5.0.0-beta.15",
|
|
59
63
|
"@form8ion/ignore-file": "^1.0.0",
|
|
60
|
-
"@travi/cli-messages": "^1.1.1",
|
|
61
64
|
"simple-git": "^3.25.0"
|
|
62
65
|
},
|
|
63
66
|
"devDependencies": {
|
|
64
67
|
"@cucumber/cucumber": "11.3.0",
|
|
65
68
|
"@form8ion/commitlint-config": "2.0.11",
|
|
66
|
-
"@form8ion/eslint-config": "7.0.
|
|
69
|
+
"@form8ion/eslint-config": "7.1.0-beta.1",
|
|
67
70
|
"@form8ion/eslint-config-cucumber": "1.4.1",
|
|
68
71
|
"@form8ion/remark-lint-preset": "6.0.7",
|
|
69
72
|
"@travi/any": "3.3.0",
|
|
70
|
-
"
|
|
73
|
+
"@vitest/coverage-v8": "4.1.4",
|
|
71
74
|
"chai": "6.2.2",
|
|
72
|
-
"cross-env": "10.1.0",
|
|
73
75
|
"cz-conventional-changelog": "3.3.0",
|
|
74
|
-
"
|
|
76
|
+
"debug": "4.4.3",
|
|
77
|
+
"gplint": "2.5.2",
|
|
75
78
|
"husky": "9.1.7",
|
|
76
79
|
"lockfile-lint": "5.0.0",
|
|
77
80
|
"ls-engines": "0.9.4",
|
package/src/ignore/lifter.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import {info} from '@travi/cli-messages';
|
|
2
|
-
|
|
3
1
|
import appendIgnores from './appender.js';
|
|
4
2
|
|
|
5
|
-
export default async function ({projectRoot, results: {vcsIgnore}}) {
|
|
3
|
+
export default async function liftIgnore({projectRoot, results: {vcsIgnore}}, {logger}) {
|
|
6
4
|
if (vcsIgnore) {
|
|
7
|
-
info('Updating files and directories to be ignored from version control', {level: 'secondary'});
|
|
5
|
+
logger.info('Updating files and directories to be ignored from version control', {level: 'secondary'});
|
|
8
6
|
|
|
9
7
|
const {directories = [], files = []} = vcsIgnore;
|
|
10
8
|
|
|
@@ -10,31 +10,35 @@ describe('gitignore lifter', () => {
|
|
|
10
10
|
const projectRoot = any.string();
|
|
11
11
|
const ignoredDirectories = any.listOf(any.word);
|
|
12
12
|
const ignoredFiles = any.listOf(any.word);
|
|
13
|
+
const logger = {info: () => undefined};
|
|
13
14
|
|
|
14
15
|
it('should append the provided ignores to the gitignore file', async () => {
|
|
15
|
-
expect(
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
expect(await liftGitIgnore(
|
|
17
|
+
{projectRoot, results: {vcsIgnore: {directories: ignoredDirectories, files: ignoredFiles}}},
|
|
18
|
+
{logger}
|
|
19
|
+
)).toEqual({});
|
|
18
20
|
|
|
19
21
|
expect(appendToIgnores).toHaveBeenCalledWith({projectRoot, ignores: [...ignoredDirectories, ...ignoredFiles]});
|
|
20
22
|
});
|
|
21
23
|
|
|
22
24
|
it('should append provided directories to ignore', async () => {
|
|
23
|
-
expect(await liftGitIgnore(
|
|
24
|
-
|
|
25
|
+
expect(await liftGitIgnore(
|
|
26
|
+
{projectRoot, results: {vcsIgnore: {directories: ignoredDirectories}}},
|
|
27
|
+
{logger}
|
|
28
|
+
)).toEqual({});
|
|
25
29
|
|
|
26
30
|
expect(appendToIgnores).toHaveBeenCalledWith({projectRoot, ignores: ignoredDirectories});
|
|
27
31
|
});
|
|
28
32
|
|
|
29
33
|
it('should append provided directories to ignore', async () => {
|
|
30
|
-
expect(await liftGitIgnore({projectRoot, results: {vcsIgnore: {files: ignoredFiles}}}))
|
|
34
|
+
expect(await liftGitIgnore({projectRoot, results: {vcsIgnore: {files: ignoredFiles}}}, {logger}))
|
|
31
35
|
.toEqual({});
|
|
32
36
|
|
|
33
37
|
expect(appendToIgnores).toHaveBeenCalledWith({projectRoot, ignores: ignoredFiles});
|
|
34
38
|
});
|
|
35
39
|
|
|
36
40
|
it('should not update the ignore file if no additional ignores are provided', async () => {
|
|
37
|
-
expect(await liftGitIgnore({projectRoot, results: {}})).toEqual({});
|
|
41
|
+
expect(await liftGitIgnore({projectRoot, results: {}}, {logger})).toEqual({});
|
|
38
42
|
|
|
39
43
|
expect(appendToIgnores).not.toHaveBeenCalledWith({projectRoot});
|
|
40
44
|
});
|
package/src/ignore/scaffolder.js
CHANGED
package/src/ignore/tester.js
CHANGED
package/src/lifter.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {scaffold as scaffoldAttributes} from './attributes/index.js';
|
|
2
2
|
import {lift as liftIgnore} from './ignore/index.js';
|
|
3
3
|
|
|
4
|
-
export default async function ({projectRoot, results}) {
|
|
4
|
+
export default async function liftGit({projectRoot, results}, dependencies) {
|
|
5
5
|
await Promise.all([
|
|
6
6
|
scaffoldAttributes({projectRoot}),
|
|
7
|
-
liftIgnore({projectRoot, results})
|
|
7
|
+
liftIgnore({projectRoot, results}, dependencies)
|
|
8
8
|
]);
|
|
9
9
|
|
|
10
10
|
return {};
|
package/src/lifter.test.js
CHANGED
|
@@ -12,11 +12,12 @@ describe('git lifter', () => {
|
|
|
12
12
|
it('should define the attributes file', async () => {
|
|
13
13
|
const projectRoot = any.string();
|
|
14
14
|
const results = any.simpleObject();
|
|
15
|
+
const dependencies = any.simpleObject();
|
|
15
16
|
|
|
16
|
-
const result = await lift({projectRoot, results});
|
|
17
|
+
const result = await lift({projectRoot, results}, dependencies);
|
|
17
18
|
|
|
18
19
|
expect(result).toEqual({});
|
|
19
20
|
expect(scaffoldAttributes).toHaveBeenCalledWith({projectRoot});
|
|
20
|
-
expect(liftIgnore).toHaveBeenCalledWith({projectRoot, results});
|
|
21
|
+
expect(liftIgnore).toHaveBeenCalledWith({projectRoot, results}, dependencies);
|
|
21
22
|
});
|
|
22
23
|
});
|
package/src/scaffolder.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import simpleGit from 'simple-git';
|
|
2
|
-
import {info} from '@travi/cli-messages';
|
|
3
2
|
|
|
4
3
|
import {scaffold as scaffoldIgnore} from './ignore/index.js';
|
|
5
4
|
|
|
6
|
-
export default async function ({projectRoot}) {
|
|
7
|
-
info('Initializing Git Repository');
|
|
5
|
+
export default async function scaffoldGit({projectRoot}, {logger}) {
|
|
6
|
+
logger.info('Initializing Git Repository');
|
|
8
7
|
|
|
9
8
|
const git = simpleGit({baseDir: projectRoot});
|
|
10
9
|
|
package/src/scaffolder.test.js
CHANGED
|
@@ -16,9 +16,10 @@ describe('scaffold', () => {
|
|
|
16
16
|
it('should initialize the repo', async () => {
|
|
17
17
|
const projectRoot = any.string();
|
|
18
18
|
const init = vi.fn();
|
|
19
|
+
const logger = {info: () => undefined};
|
|
19
20
|
when(simpleGit.simpleGit).calledWith({baseDir: projectRoot}).thenReturn({init});
|
|
20
21
|
|
|
21
|
-
const results = await scaffold({projectRoot});
|
|
22
|
+
const results = await scaffold({projectRoot}, {logger});
|
|
22
23
|
|
|
23
24
|
expect(results).toEqual({});
|
|
24
25
|
expect(init).toHaveBeenCalled();
|