@form8ion/javascript 15.8.3 → 16.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 +4 -4
- package/example.js +2 -2
- package/lib/index.js +77 -63
- package/lib/index.js.map +1 -1
- package/package.json +18 -18
- package/src/code-style/lifter.js +2 -2
- package/src/dependencies/installer.js +5 -5
- package/src/dependencies/installer.test.js +8 -22
- package/src/dependencies/processor.js +10 -8
- package/src/dependencies/processor.test.js +31 -18
- package/src/dependencies/remover.js +2 -3
- package/src/dependencies/remover.test.js +4 -2
- package/src/lifter.js +8 -5
- package/src/lifter.test.js +12 -11
- package/src/node-version/scaffolder.js +4 -5
- package/src/node-version/scaffolder.test.js +5 -4
- package/src/node-version/tasks.js +4 -6
- package/src/node-version/tasks.test.js +5 -8
- package/src/options/schemas.js +2 -1
- package/src/options/schemas.test.js +12 -6
- package/src/options/validator.js +2 -1
- package/src/options/validator.test.js +2 -1
- package/src/package/lifter.js +3 -4
- package/src/package/lifter.test.js +8 -4
- package/src/package/scaffolder.js +2 -3
- package/src/package/scaffolder.test.js +3 -1
- package/src/project-type/application/scaffolder.js +2 -3
- package/src/project-type/application/scaffolder.test.js +3 -5
- package/src/project-type/monorepo/scaffolder.js +2 -3
- package/src/project-type/monorepo/scaffolder.test.js +3 -6
- package/src/project-type/package/scaffolder.js +2 -3
- package/src/project-type/package/scaffolder.test.js +6 -5
- package/src/project-type/publishable/access-level.js +1 -1
- package/src/project-type/publishable/access-level.test.js +6 -4
- package/src/project-type/scaffolder.js +4 -4
- package/src/project-type/scaffolder.test.js +15 -16
- package/src/prompts/conditionals.js +1 -1
- package/src/prompts/conditionals.test.js +27 -6
- package/src/prompts/questions.js +4 -4
- package/src/prompts/questions.test.js +21 -6
- package/src/prompts/validators.js +7 -2
- package/src/prompts/validators.test.js +9 -6
- package/src/scaffolder.js +7 -8
- package/src/scaffolder.test.js +6 -5
- package/src/tester.js +2 -4
- package/src/tester.test.js +5 -8
package/src/scaffolder.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import deepmerge from 'deepmerge';
|
|
2
|
-
import {info} from '@travi/cli-messages';
|
|
3
2
|
import {projectTypes, scaffoldChoice} from '@form8ion/javascript-core';
|
|
4
3
|
import {scaffold as scaffoldCommitConvention} from '@form8ion/commit-convention';
|
|
5
4
|
|
|
@@ -18,8 +17,8 @@ import buildDocumentationCommand from './documentation/generation-command.js';
|
|
|
18
17
|
import {scaffold as scaffoldVerification} from './verification/index.js';
|
|
19
18
|
import {scaffold as scaffoldCodeStyle} from './code-style/index.js';
|
|
20
19
|
|
|
21
|
-
export default async function scaffoldJavascript(options) {
|
|
22
|
-
info('Initializing JavaScript project');
|
|
20
|
+
export default async function scaffoldJavascript(options, {logger}) {
|
|
21
|
+
logger.info('Initializing JavaScript project');
|
|
23
22
|
|
|
24
23
|
const {
|
|
25
24
|
projectRoot,
|
|
@@ -55,9 +54,9 @@ export default async function scaffoldJavascript(options) {
|
|
|
55
54
|
provideExample,
|
|
56
55
|
packageManager,
|
|
57
56
|
dialect
|
|
58
|
-
} = await prompt(ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);
|
|
57
|
+
} = await prompt(ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent, {logger});
|
|
59
58
|
|
|
60
|
-
info('Writing project files', {level: 'secondary'});
|
|
59
|
+
logger.info('Writing project files', {level: 'secondary'});
|
|
61
60
|
|
|
62
61
|
const {packageName} = await scaffoldPackage({
|
|
63
62
|
projectRoot,
|
|
@@ -67,7 +66,7 @@ export default async function scaffoldJavascript(options) {
|
|
|
67
66
|
license,
|
|
68
67
|
author,
|
|
69
68
|
description
|
|
70
|
-
});
|
|
69
|
+
}, {logger});
|
|
71
70
|
const projectTypeResults = await scaffoldProjectType({
|
|
72
71
|
projectType,
|
|
73
72
|
projectRoot,
|
|
@@ -86,7 +85,7 @@ export default async function scaffoldJavascript(options) {
|
|
|
86
85
|
dialect,
|
|
87
86
|
provideExample,
|
|
88
87
|
publishRegistry: configs.registries.publish
|
|
89
|
-
});
|
|
88
|
+
}, {logger});
|
|
90
89
|
const verificationResults = await scaffoldVerification({
|
|
91
90
|
projectRoot,
|
|
92
91
|
dialect,
|
|
@@ -100,7 +99,7 @@ export default async function scaffoldJavascript(options) {
|
|
|
100
99
|
pathWithinParent
|
|
101
100
|
});
|
|
102
101
|
const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([
|
|
103
|
-
scaffoldNodeVersion({projectRoot, nodeVersionCategory}),
|
|
102
|
+
scaffoldNodeVersion({projectRoot, nodeVersionCategory}, {logger}),
|
|
104
103
|
scaffoldNpmConfig({projectType, projectRoot}),
|
|
105
104
|
scaffoldDialect({
|
|
106
105
|
dialect,
|
package/src/scaffolder.test.js
CHANGED
|
@@ -62,6 +62,7 @@ describe('javascript project scaffolder', () => {
|
|
|
62
62
|
const mergedVcsIgnore = any.simpleObject();
|
|
63
63
|
const mergedNextSteps = any.listOf(any.simpleObject);
|
|
64
64
|
const mergedResults = {...any.simpleObject(), vcsIgnore: mergedVcsIgnore, nextSteps: mergedNextSteps};
|
|
65
|
+
const logger = {info: () => undefined};
|
|
65
66
|
|
|
66
67
|
beforeEach(() => {
|
|
67
68
|
const projectName = any.word();
|
|
@@ -121,7 +122,7 @@ describe('javascript project scaffolder', () => {
|
|
|
121
122
|
}
|
|
122
123
|
});
|
|
123
124
|
when(prompt)
|
|
124
|
-
.calledWith(ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent)
|
|
125
|
+
.calledWith(ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent, {logger})
|
|
125
126
|
.thenResolve({
|
|
126
127
|
packageManager,
|
|
127
128
|
dialect,
|
|
@@ -138,7 +139,7 @@ describe('javascript project scaffolder', () => {
|
|
|
138
139
|
when(scaffoldDocumentation).calledWith({packageManager, projectTypeResults}).thenReturn(documentation);
|
|
139
140
|
when(buildDocumentationCommand).calledWith(packageManager).thenReturn(documentationCommand);
|
|
140
141
|
when(scaffoldPackage)
|
|
141
|
-
.calledWith({projectRoot, projectName, scope, dialect, license, author, description})
|
|
142
|
+
.calledWith({projectRoot, projectName, scope, dialect, license, author, description}, {logger})
|
|
142
143
|
.thenResolve(packageResults);
|
|
143
144
|
when(scaffoldProjectType)
|
|
144
145
|
.calledWith({
|
|
@@ -159,7 +160,7 @@ describe('javascript project scaffolder', () => {
|
|
|
159
160
|
scope,
|
|
160
161
|
tests,
|
|
161
162
|
publishRegistry
|
|
162
|
-
})
|
|
163
|
+
}, {logger})
|
|
163
164
|
.thenResolve(projectTypeResults);
|
|
164
165
|
when(scaffoldVerification)
|
|
165
166
|
.calledWith({
|
|
@@ -175,7 +176,7 @@ describe('javascript project scaffolder', () => {
|
|
|
175
176
|
integrationTestFrameworks
|
|
176
177
|
})
|
|
177
178
|
.thenResolve(verificationResults);
|
|
178
|
-
when(scaffoldNodeVersion).calledWith({projectRoot, nodeVersionCategory}).thenResolve(nodeVersionResults);
|
|
179
|
+
when(scaffoldNodeVersion).calledWith({projectRoot, nodeVersionCategory}, {logger}).thenResolve(nodeVersionResults);
|
|
179
180
|
when(scaffoldDialect)
|
|
180
181
|
.calledWith({dialect, configs, projectRoot, projectType, testFilenamePattern})
|
|
181
182
|
.thenResolve(dialectResults);
|
|
@@ -235,7 +236,7 @@ describe('javascript project scaffolder', () => {
|
|
|
235
236
|
});
|
|
236
237
|
|
|
237
238
|
it('should scaffold the javascript details', async () => {
|
|
238
|
-
const results = await scaffold(options);
|
|
239
|
+
const results = await scaffold(options, {logger});
|
|
239
240
|
|
|
240
241
|
expect(scaffoldPackageManager).toHaveBeenCalledWith({projectRoot, packageManager});
|
|
241
242
|
expect(results).toEqual({
|
package/src/tester.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {info} from '@travi/cli-messages';
|
|
2
|
-
|
|
3
1
|
import {test as nvmIsUsed} from './node-version/index.js';
|
|
4
2
|
import {test as jsPackageManagerIsUsed} from './package-managers/index.js';
|
|
5
3
|
|
|
6
|
-
export default async function projectUsesJavaScript({projectRoot}) {
|
|
4
|
+
export default async function projectUsesJavaScript({projectRoot}, {logger}) {
|
|
7
5
|
const [nvmFound, jsPackageManagerFound] = await Promise.all([
|
|
8
6
|
nvmIsUsed({projectRoot}),
|
|
9
7
|
jsPackageManagerIsUsed({projectRoot})
|
|
@@ -11,7 +9,7 @@ export default async function projectUsesJavaScript({projectRoot}) {
|
|
|
11
9
|
|
|
12
10
|
const jsProjectFound = nvmFound || jsPackageManagerFound;
|
|
13
11
|
|
|
14
|
-
if (jsProjectFound) info('JavaScript Project Detected');
|
|
12
|
+
if (jsProjectFound) logger.info('JavaScript Project Detected');
|
|
15
13
|
|
|
16
14
|
return jsProjectFound;
|
|
17
15
|
}
|
package/src/tester.test.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {describe, expect, it, vi} from 'vitest';
|
|
2
2
|
import any from '@travi/any';
|
|
3
3
|
import {when} from 'vitest-when';
|
|
4
4
|
|
|
@@ -11,27 +11,24 @@ vi.mock('./package-managers/index.js');
|
|
|
11
11
|
|
|
12
12
|
describe('javascript predicate', () => {
|
|
13
13
|
const projectRoot = any.string();
|
|
14
|
-
|
|
15
|
-
afterEach(() => {
|
|
16
|
-
vi.clearAllMocks();
|
|
17
|
-
});
|
|
14
|
+
const logger = {info: () => undefined};
|
|
18
15
|
|
|
19
16
|
it('should return `true` if nvm is detected', async () => {
|
|
20
17
|
when(nvmIsUsed).calledWith({projectRoot}).thenResolve(true);
|
|
21
18
|
|
|
22
|
-
expect(await testApplicability({projectRoot})).toBe(true);
|
|
19
|
+
expect(await testApplicability({projectRoot}, {logger})).toBe(true);
|
|
23
20
|
});
|
|
24
21
|
|
|
25
22
|
it('should return `true` if a javascript package manager is detected', async () => {
|
|
26
23
|
when(jsPackageManagerIsUsed).calledWith({projectRoot}).thenResolve(true);
|
|
27
24
|
|
|
28
|
-
expect(await testApplicability({projectRoot})).toBe(true);
|
|
25
|
+
expect(await testApplicability({projectRoot}, {logger})).toBe(true);
|
|
29
26
|
});
|
|
30
27
|
|
|
31
28
|
it('should return `false` if neither nvm nor a js package manager is found', async () => {
|
|
32
29
|
when(nvmIsUsed).calledWith({projectRoot}).thenResolve(false);
|
|
33
30
|
when(jsPackageManagerIsUsed).calledWith({projectRoot}).thenResolve(false);
|
|
34
31
|
|
|
35
|
-
expect(await testApplicability({projectRoot})).toBe(false);
|
|
32
|
+
expect(await testApplicability({projectRoot}, {logger})).toBe(false);
|
|
36
33
|
});
|
|
37
34
|
});
|