@form8ion/javascript 15.6.0 → 15.6.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/lib/index.js +7 -37
- package/lib/index.js.map +1 -1
- package/package.json +4 -3
- package/src/code-style/index.js +3 -0
- package/src/code-style/lifter.js +6 -0
- package/src/code-style/lifter.test.js +25 -0
- package/src/code-style/remark/index.js +3 -0
- package/src/code-style/remark/lifter.js +10 -0
- package/src/code-style/remark/lifter.test.js +28 -0
- package/src/code-style/remark/scaffolder.js +38 -0
- package/src/code-style/remark/scaffolder.test.js +102 -0
- package/src/code-style/remark/tester.js +11 -0
- package/src/code-style/remark/tester.test.js +46 -0
- package/src/code-style/scaffolder.js +26 -0
- package/src/code-style/scaffolder.test.js +87 -0
- package/src/code-style/tester.js +5 -0
- package/src/code-style/tester.test.js +23 -0
- package/src/corepack/index.js +1 -0
- package/src/corepack/lifter.js +5 -0
- package/src/corepack/lifter.test.js +22 -0
- package/src/coverage/index.js +3 -0
- package/src/coverage/lifter.js +31 -0
- package/src/coverage/lifter.test.js +58 -0
- package/src/coverage/nyc/index.js +2 -0
- package/src/coverage/nyc/remover.js +16 -0
- package/src/coverage/nyc/remover.test.js +24 -0
- package/src/coverage/nyc/tester.js +5 -0
- package/src/coverage/nyc/tester.test.js +29 -0
- package/src/coverage/scaffolder.js +7 -0
- package/src/coverage/scaffolder.test.js +25 -0
- package/src/coverage/tester.js +10 -0
- package/src/coverage/tester.test.js +50 -0
- package/src/dependencies/index.js +3 -0
- package/src/dependencies/installer.js +25 -0
- package/src/dependencies/installer.test.js +77 -0
- package/src/dependencies/package-managers.js +32 -0
- package/src/dependencies/package-managers.test.js +46 -0
- package/src/dependencies/processor.js +30 -0
- package/src/dependencies/processor.test.js +75 -0
- package/src/dependencies/remover.js +10 -0
- package/src/dependencies/remover.test.js +28 -0
- package/src/dialects/babel/config/ignore-adder.js +10 -0
- package/src/dialects/babel/config/ignore-adder.test.js +33 -0
- package/src/dialects/babel/config/index.js +3 -0
- package/src/dialects/babel/config/loader.js +5 -0
- package/src/dialects/babel/config/loader.test.js +21 -0
- package/src/dialects/babel/config/writer.js +6 -0
- package/src/dialects/babel/config/writer.test.js +20 -0
- package/src/dialects/babel/index.js +3 -0
- package/src/dialects/babel/lifter.js +7 -0
- package/src/dialects/babel/lifter.test.js +17 -0
- package/src/dialects/babel/predicate.js +5 -0
- package/src/dialects/babel/predicate.test.js +25 -0
- package/src/dialects/babel/scaffolder.js +14 -0
- package/src/dialects/babel/scaffolder.test.js +28 -0
- package/src/dialects/index.js +2 -0
- package/src/dialects/prompt-choices.js +10 -0
- package/src/dialects/prompt-choices.test.js +28 -0
- package/src/dialects/scaffolder.js +15 -0
- package/src/dialects/scaffolder.test.js +49 -0
- package/src/dialects/typescript/index.js +1 -0
- package/src/dialects/typescript/scaffolder.js +31 -0
- package/src/dialects/typescript/scaffolder.test.js +95 -0
- package/src/documentation/generation-command.js +11 -0
- package/src/documentation/generation-command.test.js +25 -0
- package/src/documentation/index.js +1 -0
- package/src/documentation/scaffolder.js +20 -0
- package/src/documentation/scaffolder.test.js +49 -0
- package/src/engines/index.js +2 -0
- package/src/engines/lifter.js +7 -0
- package/src/engines/lifter.test.js +18 -0
- package/src/engines/tester.js +7 -0
- package/src/engines/tester.test.js +37 -0
- package/src/index.js +9 -0
- package/src/lifter.js +55 -0
- package/src/lifter.test.js +96 -0
- package/src/linting/index.js +1 -0
- package/src/linting/scaffolder.js +5 -0
- package/src/linting/scaffolder.test.js +31 -0
- package/src/lockfile-lint/allowed-hosts-builder.js +6 -0
- package/src/lockfile-lint/allowed-hosts-builder.test.js +35 -0
- package/src/lockfile-lint/config.js +12 -0
- package/src/lockfile-lint/config.test.js +37 -0
- package/src/lockfile-lint/index.js +3 -0
- package/src/lockfile-lint/scaffolder.js +38 -0
- package/src/lockfile-lint/scaffolder.test.js +85 -0
- package/src/lockfile-lint/tester.js +5 -0
- package/src/lockfile-lint/tester.test.js +25 -0
- package/src/node-version/index.js +2 -0
- package/src/node-version/scaffolder.js +19 -0
- package/src/node-version/scaffolder.test.js +33 -0
- package/src/node-version/tasks.js +25 -0
- package/src/node-version/tasks.test.js +43 -0
- package/src/node-version/tester.js +5 -0
- package/src/node-version/tester.test.js +29 -0
- package/src/npm-config/index.js +5 -0
- package/src/npm-config/lifter.js +14 -0
- package/src/npm-config/lifter.test.js +23 -0
- package/src/npm-config/reader.js +11 -0
- package/src/npm-config/reader.test.js +33 -0
- package/src/npm-config/scaffolder.js +16 -0
- package/src/npm-config/scaffolder.test.js +54 -0
- package/src/npm-config/tester.js +5 -0
- package/src/npm-config/tester.test.js +29 -0
- package/src/npm-config/writer.js +6 -0
- package/src/npm-config/writer.test.js +24 -0
- package/src/options/schemas.js +14 -0
- package/src/options/schemas.test.js +147 -0
- package/src/options/validator.js +45 -0
- package/src/options/validator.test.js +79 -0
- package/src/package/details.js +18 -0
- package/src/package/details.test.js +51 -0
- package/src/package/index.js +2 -0
- package/src/package/lifter.js +47 -0
- package/src/package/lifter.test.js +100 -0
- package/src/package/package-name.js +13 -0
- package/src/package/package-name.test.js +52 -0
- package/src/package/property-sorter.js +38 -0
- package/src/package/property-sorter.test.js +56 -0
- package/src/package/scaffolder.js +32 -0
- package/src/package/scaffolder.test.js +46 -0
- package/src/package/scripts/index.js +1 -0
- package/src/package/scripts/lifter.js +14 -0
- package/src/package/scripts/lifter.test.js +31 -0
- package/src/package/scripts/script-comparator.js +46 -0
- package/src/package/scripts/script-comparator.test.js +119 -0
- package/src/package/scripts/scripts-sorter.js +7 -0
- package/src/package/scripts/scripts-sorter.test.js +20 -0
- package/src/package/scripts/test-script-updater.js +15 -0
- package/src/package/scripts/test-script-updater.test.js +32 -0
- package/src/package/vcs-host-details.js +12 -0
- package/src/package/vcs-host-details.test.js +16 -0
- package/src/package-managers/current-manager-resolver.js +21 -0
- package/src/package-managers/current-manager-resolver.test.js +51 -0
- package/src/package-managers/index.js +5 -0
- package/src/package-managers/lifter.js +7 -0
- package/src/package-managers/lifter.test.js +18 -0
- package/src/package-managers/lockfile-path-resolver.js +10 -0
- package/src/package-managers/lockfile-path-resolver.test.js +15 -0
- package/src/package-managers/npm/index.js +2 -0
- package/src/package-managers/npm/scaffolder.js +19 -0
- package/src/package-managers/npm/scaffolder.test.js +33 -0
- package/src/package-managers/npm/tester.js +11 -0
- package/src/package-managers/npm/tester.test.js +33 -0
- package/src/package-managers/scaffolder.js +11 -0
- package/src/package-managers/scaffolder.test.js +27 -0
- package/src/package-managers/tester.js +11 -0
- package/src/package-managers/tester.test.js +33 -0
- package/src/package-managers/yarn/index.js +2 -0
- package/src/package-managers/yarn/scaffolder.js +19 -0
- package/src/package-managers/yarn/scaffolder.test.js +33 -0
- package/src/package-managers/yarn/tester.js +11 -0
- package/src/package-managers/yarn/tester.test.js +33 -0
- package/src/plugins-schemas.js +4 -0
- package/src/plugins-schemas.test.js +28 -0
- package/src/project-type/application/index.js +2 -0
- package/src/project-type/application/predicate.js +3 -0
- package/src/project-type/application/predicate.test.js +14 -0
- package/src/project-type/application/scaffolder.js +24 -0
- package/src/project-type/application/scaffolder.test.js +35 -0
- package/src/project-type/cli/index.js +3 -0
- package/src/project-type/cli/lifter.js +5 -0
- package/src/project-type/cli/lifter.test.js +20 -0
- package/src/project-type/cli/scaffolder.js +52 -0
- package/src/project-type/cli/scaffolder.test.js +103 -0
- package/src/project-type/cli/tester.js +3 -0
- package/src/project-type/cli/tester.test.js +14 -0
- package/src/project-type/index.js +3 -0
- package/src/project-type/lifter.js +23 -0
- package/src/project-type/lifter.test.js +69 -0
- package/src/project-type/monorepo/index.js +1 -0
- package/src/project-type/monorepo/scaffolder.js +16 -0
- package/src/project-type/monorepo/scaffolder.test.js +27 -0
- package/src/project-type/package/build-details.js +56 -0
- package/src/project-type/package/build-details.test.js +111 -0
- package/src/project-type/package/documentation.js +34 -0
- package/src/project-type/package/documentation.test.js +106 -0
- package/src/project-type/package/index.js +3 -0
- package/src/project-type/package/lifter.js +5 -0
- package/src/project-type/package/lifter.test.js +20 -0
- package/src/project-type/package/scaffolder.js +84 -0
- package/src/project-type/package/scaffolder.test.js +267 -0
- package/src/project-type/package/tester.js +5 -0
- package/src/project-type/package/tester.test.js +28 -0
- package/src/project-type/publishable/access-level.js +3 -0
- package/src/project-type/publishable/access-level.test.js +13 -0
- package/src/project-type/publishable/badges.js +20 -0
- package/src/project-type/publishable/badges.test.js +29 -0
- package/src/project-type/publishable/bundler/index.js +1 -0
- package/src/project-type/publishable/bundler/prompt.js +16 -0
- package/src/project-type/publishable/bundler/prompt.test.js +35 -0
- package/src/project-type/publishable/bundler/scaffolder.js +8 -0
- package/src/project-type/publishable/bundler/scaffolder.test.js +33 -0
- package/src/project-type/publishable/index.js +2 -0
- package/src/project-type/publishable/lifter.js +24 -0
- package/src/project-type/publishable/lifter.test.js +49 -0
- package/src/project-type/publishable/provenance/index.js +1 -0
- package/src/project-type/publishable/provenance/lifter.js +15 -0
- package/src/project-type/publishable/provenance/lifter.test.js +56 -0
- package/src/project-type/publishable/provenance/slsa.js +17 -0
- package/src/project-type/publishable/provenance/slsa.test.js +21 -0
- package/src/project-type/publishable/registry-resolver.js +15 -0
- package/src/project-type/publishable/registry-resolver.test.js +60 -0
- package/src/project-type/publishable/scaffolder.js +7 -0
- package/src/project-type/publishable/scaffolder.test.js +23 -0
- package/src/project-type/scaffolder.js +56 -0
- package/src/project-type/scaffolder.test.js +115 -0
- package/src/project-type/tester.js +9 -0
- package/src/project-type/tester.test.js +51 -0
- package/src/project-type-plugin/index.js +1 -0
- package/src/project-type-plugin/prompt.js +16 -0
- package/src/project-type-plugin/prompt.test.js +39 -0
- package/src/project-type-plugin/scaffolder.js +28 -0
- package/src/project-type-plugin/scaffolder.test.js +70 -0
- package/src/prompts/conditionals.js +39 -0
- package/src/prompts/conditionals.test.js +95 -0
- package/src/prompts/question-names.js +17 -0
- package/src/prompts/questions.js +158 -0
- package/src/prompts/questions.test.js +247 -0
- package/src/prompts/validators.js +9 -0
- package/src/prompts/validators.test.js +19 -0
- package/src/registries/index.js +2 -0
- package/src/registries/lifter.js +43 -0
- package/src/registries/lifter.test.js +63 -0
- package/src/registries/npm-config/list-builder.js +9 -0
- package/src/registries/npm-config/list-builder.test.js +43 -0
- package/src/registries/tester.js +3 -0
- package/src/registries/tester.test.js +9 -0
- package/src/runkit/badge/index.js +1 -0
- package/src/runkit/badge/scaffolder.js +13 -0
- package/src/runkit/badge/scaffolder.test.js +22 -0
- package/src/runkit/index.js +4 -0
- package/src/runkit/lifter.js +5 -0
- package/src/runkit/lifter.test.js +17 -0
- package/src/runkit/remover.js +3 -0
- package/src/runkit/remover.test.js +9 -0
- package/src/runkit/scaffolder.js +11 -0
- package/src/runkit/scaffolder.test.js +35 -0
- package/src/runkit/tester.js +3 -0
- package/src/runkit/tester.test.js +16 -0
- package/src/scaffolder.js +154 -0
- package/src/scaffolder.test.js +238 -0
- package/src/tester.js +17 -0
- package/src/tester.test.js +37 -0
- package/src/testing/index.js +1 -0
- package/src/testing/scaffolder.js +20 -0
- package/src/testing/scaffolder.test.js +57 -0
- package/src/testing/unit/index.js +1 -0
- package/src/testing/unit/prompt.js +15 -0
- package/src/testing/unit/prompt.test.js +33 -0
- package/src/testing/unit/scaffolder.js +22 -0
- package/src/testing/unit/scaffolder.test.js +48 -0
- package/src/vcs/ignore-lists-builder.js +6 -0
- package/src/vcs/ignore-lists-builder.test.js +25 -0
- package/src/vcs/schema.js +7 -0
- package/src/vcs/schema.test.js +40 -0
- package/src/verification/index.js +1 -0
- package/src/verification/scaffolder.js +25 -0
- package/src/verification/scaffolder.test.js +54 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import any from '@travi/any';
|
|
2
|
+
import {describe, expect, it} from 'vitest';
|
|
3
|
+
|
|
4
|
+
import buildVcsIgnoreLists from './ignore-lists-builder.js';
|
|
5
|
+
|
|
6
|
+
describe('vcs-ignore lists builder', () => {
|
|
7
|
+
const vcsIgnore = {files: any.listOf(any.word), directories: any.listOf(any.word)};
|
|
8
|
+
|
|
9
|
+
it('should define the default lists', () => {
|
|
10
|
+
expect(buildVcsIgnoreLists(vcsIgnore))
|
|
11
|
+
.toEqual({files: vcsIgnore.files, directories: ['/node_modules/', ...vcsIgnore.directories]});
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('should default the file list to empty', () => {
|
|
15
|
+
expect(buildVcsIgnoreLists({...vcsIgnore, files: undefined}).files).toEqual([]);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('should default the directories list to contain `node_modules', () => {
|
|
19
|
+
expect(buildVcsIgnoreLists({...vcsIgnore, directories: undefined}).directories).toEqual(['/node_modules/']);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('should produce default lists when ignores are missing', () => {
|
|
23
|
+
expect(buildVcsIgnoreLists()).toEqual({files: [], directories: ['/node_modules/']});
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {validateOptions} from '@form8ion/core';
|
|
2
|
+
|
|
3
|
+
import {describe, expect, it} from 'vitest';
|
|
4
|
+
import any from '@travi/any';
|
|
5
|
+
|
|
6
|
+
import {vcsSchema} from './schema.js';
|
|
7
|
+
|
|
8
|
+
describe('vcs', () => {
|
|
9
|
+
it('should require `vcs` to be an object', () => {
|
|
10
|
+
expect(() => validateOptions(vcsSchema, [])).toThrowError('"value" must be of type object');
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should require `host`', () => {
|
|
14
|
+
expect(() => validateOptions(vcsSchema, {})).toThrowError('"host" is required');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('should require `host` to be a string', () => {
|
|
18
|
+
expect(() => validateOptions(vcsSchema, {host: any.integer()}))
|
|
19
|
+
.toThrowError('"host" must be a string');
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it('should require `owner`', () => {
|
|
23
|
+
expect(() => validateOptions(vcsSchema, {host: any.word()})).toThrowError('"owner" is required');
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('should require `owner` to be a string', () => {
|
|
27
|
+
expect(() => validateOptions(vcsSchema, {host: any.word(), owner: any.integer()}))
|
|
28
|
+
.toThrowError('"owner" must be a string');
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('should require `name`', () => {
|
|
32
|
+
expect(() => validateOptions(vcsSchema, {host: any.word(), owner: any.word()}))
|
|
33
|
+
.toThrowError('"name" is required');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('should require `name` to be a string', () => {
|
|
37
|
+
expect(() => validateOptions(vcsSchema, {host: any.word(), owner: any.word(), name: any.integer()}))
|
|
38
|
+
.toThrowError('"name" must be a string');
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {scaffoldVerification as scaffold} from './scaffolder.js';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import deepmerge from 'deepmerge';
|
|
2
|
+
import {scaffold as scaffoldHusky} from '@form8ion/husky';
|
|
3
|
+
|
|
4
|
+
import {scaffold as scaffoldTesting} from '../testing/index.js';
|
|
5
|
+
import {scaffold as scaffoldLinting} from '../linting/index.js';
|
|
6
|
+
|
|
7
|
+
export async function scaffoldVerification({
|
|
8
|
+
projectRoot,
|
|
9
|
+
dialect,
|
|
10
|
+
packageManager,
|
|
11
|
+
vcs,
|
|
12
|
+
registries,
|
|
13
|
+
tests,
|
|
14
|
+
unitTestFrameworks,
|
|
15
|
+
decisions,
|
|
16
|
+
pathWithinParent
|
|
17
|
+
}) {
|
|
18
|
+
const [testingResults, lintingResults, huskyResults] = await Promise.all([
|
|
19
|
+
scaffoldTesting({projectRoot, tests, unitTestFrameworks, decisions, dialect}),
|
|
20
|
+
scaffoldLinting({projectRoot, packageManager, registries, vcs, pathWithinParent}),
|
|
21
|
+
scaffoldHusky({projectRoot, packageManager, pathWithinParent})
|
|
22
|
+
]);
|
|
23
|
+
|
|
24
|
+
return deepmerge.all([testingResults, lintingResults, huskyResults]);
|
|
25
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import deepmerge from 'deepmerge';
|
|
2
|
+
import {scaffold as scaffoldHusky} from '@form8ion/husky';
|
|
3
|
+
|
|
4
|
+
import {describe, expect, it, vi} from 'vitest';
|
|
5
|
+
import any from '@travi/any';
|
|
6
|
+
import {when} from 'vitest-when';
|
|
7
|
+
|
|
8
|
+
import {scaffold as scaffoldTesting} from '../testing/index.js';
|
|
9
|
+
import {scaffold as scaffoldLinting} from '../linting/index.js';
|
|
10
|
+
import {scaffoldVerification} from './scaffolder.js';
|
|
11
|
+
|
|
12
|
+
vi.mock('deepmerge');
|
|
13
|
+
vi.mock('@form8ion/husky');
|
|
14
|
+
vi.mock('../testing/index.js');
|
|
15
|
+
vi.mock('../linting/index.js');
|
|
16
|
+
|
|
17
|
+
describe('verification scaffolder', () => {
|
|
18
|
+
it('should scaffold linting and testing', async () => {
|
|
19
|
+
const projectRoot = any.string();
|
|
20
|
+
const packageManager = any.string();
|
|
21
|
+
const dialect = any.word();
|
|
22
|
+
const vcs = any.simpleObject();
|
|
23
|
+
const tests = any.simpleObject();
|
|
24
|
+
const unitTestFrameworks = any.simpleObject();
|
|
25
|
+
const decisions = any.simpleObject();
|
|
26
|
+
const lintingResults = any.simpleObject();
|
|
27
|
+
const huskyResults = any.simpleObject();
|
|
28
|
+
const testingEslintResults = any.simpleObject();
|
|
29
|
+
const pathWithinParent = any.string();
|
|
30
|
+
const testingResults = {...any.simpleObject(), eslint: testingEslintResults};
|
|
31
|
+
const registries = any.simpleObject();
|
|
32
|
+
const mergedResults = any.simpleObject();
|
|
33
|
+
when(scaffoldLinting)
|
|
34
|
+
.calledWith({projectRoot, vcs, packageManager, registries, pathWithinParent})
|
|
35
|
+
.thenResolve(lintingResults);
|
|
36
|
+
when(scaffoldTesting)
|
|
37
|
+
.calledWith({projectRoot, tests, unitTestFrameworks, decisions, dialect})
|
|
38
|
+
.thenResolve(testingResults);
|
|
39
|
+
when(scaffoldHusky).calledWith({projectRoot, packageManager, pathWithinParent}).thenResolve(huskyResults);
|
|
40
|
+
when(deepmerge.all).calledWith([testingResults, lintingResults, huskyResults]).thenReturn(mergedResults);
|
|
41
|
+
|
|
42
|
+
expect(await scaffoldVerification({
|
|
43
|
+
projectRoot,
|
|
44
|
+
vcs,
|
|
45
|
+
dialect,
|
|
46
|
+
tests,
|
|
47
|
+
decisions,
|
|
48
|
+
unitTestFrameworks,
|
|
49
|
+
packageManager,
|
|
50
|
+
registries,
|
|
51
|
+
pathWithinParent
|
|
52
|
+
})).toEqual(mergedResults);
|
|
53
|
+
});
|
|
54
|
+
});
|