@w5s/mrm-preset 1.0.0-alpha.6 → 1.0.0-alpha.9
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/.turbo/turbo-build.log +1 -0
- package/.turbo/turbo-docs.log +43 -0
- package/.turbo/turbo-lint.log +52 -0
- package/.turbo/turbo-test.log +21 -0
- package/CHANGELOG.md +36 -0
- package/README.md +1 -1
- package/bootstrap/index.js +11 -20
- package/core/block.js +1 -1
- package/core/git.js +3 -1
- package/core/npm.js +32 -3
- package/core/pkg.js +3 -7
- package/core/typedoc.js +3 -16
- package/core/vscode.js +1 -1
- package/editorconfig/index.js +2 -0
- package/githooks/index.js +37 -41
- package/jest/index.js +11 -15
- package/lang/.eslintrc.json +4 -1
- package/lang/index.js +8 -6
- package/package.json +5 -5
- package/project/index.js +60 -30
- package/release/index.js +1 -1
- package/renovate/index.js +1 -1
- package/tsconfig.json +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[32m@w5s/mrm-preset:build: [0mcache hit, replaying output [2m5afc39bc33a830a1[0m
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
[33m@w5s/mrm-preset:docs: [0mcache hit, replaying output [2m76013214939cb771[0m
|
|
2
|
+
[33m@w5s/mrm-preset:docs: [0mStarting markdown-magic [ '**/*.md', '!node_modules/**' ]
|
|
3
|
+
[33m@w5s/mrm-preset:docs: [0mℹ Notice:
|
|
4
|
+
[33m@w5s/mrm-preset:docs: [0m Missing transforms "BASIC_RULES","JSX_RULES" in _tester/node_modules/eslint-plugin-react/README.md
|
|
5
|
+
[33m@w5s/mrm-preset:docs: [0m
|
|
6
|
+
[33m@w5s/mrm-preset:docs: [0m✔ README.md Updated
|
|
7
|
+
[33m@w5s/mrm-preset:docs: [0m Transforms run
|
|
8
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=# W5s Mrm Preset _(${name})_
|
|
9
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=> ${description}&unknownTxt=
|
|
10
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[${license}][license-url] © ${author}
|
|
11
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[package-version-svg]: https://img.shields.io/npm/v/${name}.svg?style=flat-square
|
|
12
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[package-url]: https://www.npmjs.com/package/${name}
|
|
13
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[license-image]: https://img.shields.io/badge/license-${license}-green.svg?style=flat-square
|
|
14
|
+
[33m@w5s/mrm-preset:docs: [0m
|
|
15
|
+
[33m@w5s/mrm-preset:docs: [0m✔ _tester/node_modules/@w5s/mrm-preset/README.md Updated
|
|
16
|
+
[33m@w5s/mrm-preset:docs: [0m Transforms run
|
|
17
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=# W5s Mrm Preset _(${name})_
|
|
18
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=> ${description}&unknownTxt=
|
|
19
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[${license}][license-url] © ${author}
|
|
20
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[package-version-svg]: https://img.shields.io/npm/v/${name}.svg?style=flat-square
|
|
21
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[package-url]: https://www.npmjs.com/package/${name}
|
|
22
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[license-image]: https://img.shields.io/badge/license-${license}-green.svg?style=flat-square
|
|
23
|
+
[33m@w5s/mrm-preset:docs: [0m
|
|
24
|
+
[33m@w5s/mrm-preset:docs: [0m✔ _tester/node_modules/@w5s/eslint-config/README.md Updated
|
|
25
|
+
[33m@w5s/mrm-preset:docs: [0m Transforms run
|
|
26
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=# W5s ESLint configuration _(${name})_
|
|
27
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=> ${description}&unknownTxt=
|
|
28
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=```console\nnpm install --save-dev ${name}\n```
|
|
29
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[${license}][license-url] © ${author}
|
|
30
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[package-version-svg]: https://img.shields.io/npm/v/${name}.svg?style=flat-square
|
|
31
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[package-url]: https://www.npmjs.com/package/${name}
|
|
32
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[license-image]: https://img.shields.io/badge/license-${license}-green.svg?style=flat-square
|
|
33
|
+
[33m@w5s/mrm-preset:docs: [0m
|
|
34
|
+
[33m@w5s/mrm-preset:docs: [0m✔ _tester/node_modules/@w5s/ts-config/README.md Updated
|
|
35
|
+
[33m@w5s/mrm-preset:docs: [0m Transforms run
|
|
36
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=# W5s Typescript configuration _(${name})_
|
|
37
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=> ${description}&unknownTxt=
|
|
38
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=```console\nnpm install --save-dev ${name}\n```
|
|
39
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[${license}][license-url] © ${author}
|
|
40
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[package-version-svg]: https://img.shields.io/npm/v/${name}.svg?style=flat-square
|
|
41
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[package-url]: https://www.npmjs.com/package/${name}
|
|
42
|
+
[33m@w5s/mrm-preset:docs: [0m ⁕ PKGJSON:template=[license-image]: https://img.shields.io/badge/license-${license}-green.svg?style=flat-square
|
|
43
|
+
[33m@w5s/mrm-preset:docs: [0m
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
[32m@w5s/mrm-preset:lint: [0mcache hit, replaying output [2mdd62d06a650bdfa1[0m
|
|
2
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
3
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/ci/gitlab.js
|
|
4
|
+
[32m@w5s/mrm-preset:lint: [0m 5:0 warning Syntax error in type: typeof import('sync-directory')['default'] jsdoc/valid-types
|
|
5
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
6
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/core/commitlint.js
|
|
7
|
+
[32m@w5s/mrm-preset:lint: [0m 6:0 warning Syntax error in type: {state: 'present'|'absent',preset: string,} jsdoc/valid-types
|
|
8
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
9
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/core/cspell.js
|
|
10
|
+
[32m@w5s/mrm-preset:lint: [0m 5:0 warning Syntax error in type: {version: '0.2',language: string,words?: string[],flagWords?: string[],ignorePaths?: string[],ignoreWords?: string[],ignoreRegExpList?: string[],import?: string[]} jsdoc/valid-types
|
|
11
|
+
[32m@w5s/mrm-preset:lint: [0m 17:0 warning Syntax error in type: {state: 'present'|'absent'update?: (config: CSpellConfig) => CSpellConfig} jsdoc/valid-types
|
|
12
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
13
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/core/file.js
|
|
14
|
+
[32m@w5s/mrm-preset:lint: [0m 5:0 warning Syntax error in type: {path: string,state: 'file'|'absent',update?: (content: string) => string | undefined,} jsdoc/valid-types
|
|
15
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
16
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/core/githooks.js
|
|
17
|
+
[32m@w5s/mrm-preset:lint: [0m 10:0 warning Syntax error in type: {state: 'present'|'absent',} jsdoc/valid-types
|
|
18
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
19
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/core/jsonFile.js
|
|
20
|
+
[32m@w5s/mrm-preset:lint: [0m 35:0 warning Syntax error in type: {path: undefined | string | string[],state: 'present'|'absent',update?: T | ((previousValue: T) => T)default?: T | (() => T)} jsdoc/valid-types
|
|
21
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
22
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/core/npm.js
|
|
23
|
+
[32m@w5s/mrm-preset:lint: [0m 28:0 warning Missing JSDoc @property "dev" description jsdoc/require-property-description
|
|
24
|
+
[32m@w5s/mrm-preset:lint: [0m 29:0 warning Missing JSDoc @property "yarn" description jsdoc/require-property-description
|
|
25
|
+
[32m@w5s/mrm-preset:lint: [0m 30:0 warning Missing JSDoc @property "versions" description jsdoc/require-property-description
|
|
26
|
+
[32m@w5s/mrm-preset:lint: [0m 35:0 warning Missing JSDoc @property "dev" description jsdoc/require-property-description
|
|
27
|
+
[32m@w5s/mrm-preset:lint: [0m 36:0 warning Missing JSDoc @property "remove" description jsdoc/require-property-description
|
|
28
|
+
[32m@w5s/mrm-preset:lint: [0m 37:0 warning Missing JSDoc @property "stdio" description jsdoc/require-property-description
|
|
29
|
+
[32m@w5s/mrm-preset:lint: [0m 38:0 warning Missing JSDoc @property "cwd" description jsdoc/require-property-description
|
|
30
|
+
[32m@w5s/mrm-preset:lint: [0m 56:0 warning Tag @type must have a type jsdoc/valid-types
|
|
31
|
+
[32m@w5s/mrm-preset:lint: [0m 169:0 warning Missing JSDoc @returns description jsdoc/require-returns-description
|
|
32
|
+
[32m@w5s/mrm-preset:lint: [0m 184:0 warning Missing JSDoc @returns description jsdoc/require-returns-description
|
|
33
|
+
[32m@w5s/mrm-preset:lint: [0m 197:0 warning Missing JSDoc @returns description jsdoc/require-returns-description
|
|
34
|
+
[32m@w5s/mrm-preset:lint: [0m 256:0 warning Syntax error in type: 'npm'|`yarn@${'classic'|'berry'}` jsdoc/valid-types
|
|
35
|
+
[32m@w5s/mrm-preset:lint: [0m 284:0 warning Syntax error in type: {name: string|string[]|Record<string, string>,state: 'present'|'absent',dev?: boolean,yarn?: boolean,} jsdoc/valid-types
|
|
36
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
37
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/core/pkg.js
|
|
38
|
+
[32m@w5s/mrm-preset:lint: [0m 25:0 warning Syntax error in type: {name: string,state: 'present'|'absent'|'default',script: string,} jsdoc/valid-types
|
|
39
|
+
[32m@w5s/mrm-preset:lint: [0m 43:0 warning Missing JSDoc @returns description jsdoc/require-returns-description
|
|
40
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
41
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/core/typedoc.js
|
|
42
|
+
[32m@w5s/mrm-preset:lint: [0m 7:0 warning Syntax error in type: {out?: string,tsconfig?: string,exclude?: Array<string>,excludePrivate?: boolean,excludeExternals?: boolean,readme?: string,theme?: string,} jsdoc/valid-types
|
|
43
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
44
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/core/vscode.js
|
|
45
|
+
[32m@w5s/mrm-preset:lint: [0m 47:0 warning Syntax error in type: {name: string,state: 'present'|'absent',snippets: {[key: string]: {scope: string,prefix: string,body: string|string[],description?: string,}}} jsdoc/valid-types
|
|
46
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
47
|
+
[32m@w5s/mrm-preset:lint: [0m/Users/jpolo/Workspace/w5s/project-config/packages/mrm-preset/editorconfig/index.js
|
|
48
|
+
[32m@w5s/mrm-preset:lint: [0m 7:0 warning Syntax error in type: Record<string, Partial<{charset: string,continuation_indent_size: number,curly_bracket_next_line: boolean,end_of_line: 'lf'|'crlf',indent_brace_style: 'Stroustrup',indent_size: number,indent_style: 'tab'|'space',insert_final_newline: boolean|'ignore',max_line_length: number,quote_type: 'single'|'double',root: boolean,spaces_around_brackets: 'outside',spaces_around_operators: boolean,trim_trailing_whitespace: boolean,}>> jsdoc/valid-types
|
|
49
|
+
[32m@w5s/mrm-preset:lint: [0m 29:0 warning Missing JSDoc @param "existing" type jsdoc/require-param-type
|
|
50
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
51
|
+
[32m@w5s/mrm-preset:lint: [0m✖ 26 problems (0 errors, 26 warnings)
|
|
52
|
+
[32m@w5s/mrm-preset:lint: [0m
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
[35m@w5s/mrm-preset:test: [0mcache hit, replaying output [2mb355f87af4d1ba14[0m
|
|
2
|
+
[35m@w5s/mrm-preset:test: [0mmkdir: _tester: File exists
|
|
3
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning bootstrap...[39m
|
|
4
|
+
[35m@w5s/mrm-preset:test: [0m[33mRunning alias configure...[39m
|
|
5
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning gitignore...[39m
|
|
6
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning project...[39m
|
|
7
|
+
[35m@w5s/mrm-preset:test: [0m[32mUpdate package.json[39m
|
|
8
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning contributing...[39m
|
|
9
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning release...[39m
|
|
10
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning ci...[39m
|
|
11
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning lang...[39m
|
|
12
|
+
[35m@w5s/mrm-preset:test: [0m[32mUpdate tsconfig.settings.json[39m
|
|
13
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning commitlint...[39m
|
|
14
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning editorconfig...[39m
|
|
15
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning eslint...[39m
|
|
16
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning cspell...[39m
|
|
17
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning jest...[39m
|
|
18
|
+
[35m@w5s/mrm-preset:test: [0m[32mUpdate package.json[39m
|
|
19
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning renovate...[39m
|
|
20
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning githooks...[39m
|
|
21
|
+
[35m@w5s/mrm-preset:test: [0m[36mRunning postconfigure...[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,42 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.0.0-alpha.9](https://github.com/w5s/project-config/compare/@w5s/mrm-preset@1.0.0-alpha.8...@w5s/mrm-preset@1.0.0-alpha.9) (2022-04-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* correct default mrm task ([1a59cb1](https://github.com/w5s/project-config/commit/1a59cb1a114c2cba091c4729b5e66e5a5354004e))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [1.0.0-alpha.8](https://github.com/w5s/project-config/compare/@w5s/mrm-preset@1.0.0-alpha.7...@w5s/mrm-preset@1.0.0-alpha.8) (2022-03-08)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* add missing $schema for tsconfig ([c33c7ae](https://github.com/w5s/project-config/commit/c33c7aeba405d651eba19187436724780dd90aff))
|
|
23
|
+
* remove unused typedoc script ([51238f0](https://github.com/w5s/project-config/commit/51238f04b8f3d95baac7f0a367ba1c07061d2ce4))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
# [1.0.0-alpha.7](https://github.com/w5s/project-config/compare/@w5s/mrm-preset@1.0.0-alpha.6...@w5s/mrm-preset@1.0.0-alpha.7) (2022-03-01)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Bug Fixes
|
|
33
|
+
|
|
34
|
+
* correct bootstrap step ([da7f539](https://github.com/w5s/project-config/commit/da7f539560ba143f830c9ea824b0d79c6a50522c))
|
|
35
|
+
* correct is-ci script that fails in some yarn berry ([4e4707d](https://github.com/w5s/project-config/commit/4e4707d7e8c0cd2c88e1dc6bc94705317dcf9e98))
|
|
36
|
+
* improve yarn check ([3af241a](https://github.com/w5s/project-config/commit/3af241af004d747518733983260eb295aa75e5cb))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
6
42
|
# [1.0.0-alpha.6](https://github.com/w5s/project-config/compare/@w5s/mrm-preset@1.0.0-alpha.5...@w5s/mrm-preset@1.0.0-alpha.6) (2022-02-23)
|
|
7
43
|
|
|
8
44
|
|
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ Initialize your project using this command :
|
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
# from the root of your project
|
|
22
|
-
npm exec
|
|
22
|
+
npm exec --package=@w5s/mrm-preset -- mrm bootstrap --preset @w5s/mrm-preset
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
This will install in `package.json` the npm scripts
|
package/bootstrap/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/* eslint-disable sort-keys-fix/sort-keys-fix */
|
|
2
2
|
const path = require('path');
|
|
3
|
-
const { packageJson, file
|
|
4
|
-
// @ts-ignore
|
|
5
|
-
const execCommand = require('mrm-core/src/util/execCommand');
|
|
3
|
+
const { packageJson, file } = require('mrm-core');
|
|
6
4
|
const npm = require('../core/npm');
|
|
7
5
|
const pkg = require('../core/pkg');
|
|
8
6
|
const { gitIgnoreTemplate } = require('../core/git');
|
|
@@ -12,17 +10,11 @@ const { gitIgnoreTemplate } = require('../core/git');
|
|
|
12
10
|
* mrmPreset: string,
|
|
13
11
|
* mrmTask: string,
|
|
14
12
|
* packageArchetype: 'application'|'library'|'workspace',
|
|
15
|
-
* packageManager: 'npm'|'yarn'
|
|
13
|
+
* packageManager: 'npm'|'yarn@classic'|'yarn@berry'
|
|
16
14
|
* }} config
|
|
17
15
|
* @returns {void}
|
|
18
16
|
*/
|
|
19
17
|
function task({ mrmPreset, mrmTask, packageArchetype, packageManager }) {
|
|
20
|
-
const isYarn = file('package-lock.json').exists()
|
|
21
|
-
? false
|
|
22
|
-
: file('yarn.lock').exists()
|
|
23
|
-
? true
|
|
24
|
-
: packageManager === 'yarn';
|
|
25
|
-
const isYarnBerry = false;
|
|
26
18
|
/**
|
|
27
19
|
* setup package.json from following object
|
|
28
20
|
*/
|
|
@@ -35,29 +27,28 @@ function task({ mrmPreset, mrmTask, packageArchetype, packageManager }) {
|
|
|
35
27
|
description: '',
|
|
36
28
|
}).save();
|
|
37
29
|
gitIgnoreTemplate(['macOS', 'NodeJS', 'VisualStudioCode']);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
execCommand(undefined, 'yarn', ['install']);
|
|
42
|
-
}
|
|
30
|
+
|
|
31
|
+
npm.bootstrap(packageManager);
|
|
32
|
+
|
|
43
33
|
npm.dependency({
|
|
44
34
|
dev: true,
|
|
45
35
|
name: ['mrm', mrmPreset],
|
|
46
|
-
yarn: isYarn,
|
|
47
36
|
state: 'present',
|
|
48
37
|
});
|
|
49
38
|
|
|
50
39
|
pkg.withPackageJson((packageFile) => {
|
|
40
|
+
const currentPackageManager = pkg.manager(packageFile);
|
|
41
|
+
|
|
51
42
|
// Add MRM default scripts
|
|
52
43
|
pkg.script(packageFile, {
|
|
53
44
|
name: 'configure',
|
|
54
45
|
state: 'default',
|
|
55
|
-
script:
|
|
46
|
+
script: currentPackageManager === 'npm' ? `npm run mrm -- ${mrmTask}` : `yarn mrm ${mrmTask}`,
|
|
56
47
|
});
|
|
57
48
|
pkg.script(packageFile, {
|
|
58
49
|
name: 'mrm',
|
|
59
50
|
state: 'default',
|
|
60
|
-
script:
|
|
51
|
+
script: `mrm --preset ${mrmPreset}`,
|
|
61
52
|
});
|
|
62
53
|
});
|
|
63
54
|
|
|
@@ -97,8 +88,8 @@ task.parameters = {
|
|
|
97
88
|
type: 'input',
|
|
98
89
|
},
|
|
99
90
|
packageManager: {
|
|
100
|
-
default: 'yarn',
|
|
101
|
-
choices: ['yarn', 'npm'],
|
|
91
|
+
default: 'yarn@berry',
|
|
92
|
+
choices: ['yarn@berry', 'yarn@classic', 'npm'],
|
|
102
93
|
message: 'Which default package manager ?',
|
|
103
94
|
name: 'packageManager',
|
|
104
95
|
type: 'input',
|
package/core/block.js
CHANGED
|
@@ -53,7 +53,7 @@ function block({
|
|
|
53
53
|
const replaceBlock = beginBlock + EOL + blockContent + EOL + endBlock;
|
|
54
54
|
|
|
55
55
|
if (found.exists) {
|
|
56
|
-
return fullContent.
|
|
56
|
+
return fullContent.slice(0, Math.max(0, found.startIndex)) + replaceBlock + fullContent.slice(found.endIndex);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
// insert
|
package/core/git.js
CHANGED
|
@@ -13,17 +13,19 @@ function remoteSync() {
|
|
|
13
13
|
? [
|
|
14
14
|
/**
|
|
15
15
|
* 1. filter github URL
|
|
16
|
+
*
|
|
16
17
|
* @param {string} returnValue
|
|
17
18
|
*/
|
|
18
19
|
(returnValue) => returnValue.replace(/^git@github.com:/, 'https://github.com/'),
|
|
19
20
|
/**
|
|
20
21
|
* 2. filter gitlab URL
|
|
22
|
+
*
|
|
21
23
|
* @param {string} returnValue
|
|
22
24
|
*/
|
|
23
25
|
(returnValue) => returnValue.replace(/^git@gitlab.com:/, 'https://gitlab.com/'),
|
|
24
26
|
].reduce((returnValue, filter) => filter(returnValue), remoteURL)
|
|
25
27
|
: remoteURL;
|
|
26
|
-
} catch
|
|
28
|
+
} catch {
|
|
27
29
|
// ignore error
|
|
28
30
|
}
|
|
29
31
|
|
package/core/npm.js
CHANGED
|
@@ -18,11 +18,10 @@ const log = require('mrm-core/src/util/log');
|
|
|
18
18
|
// @ts-ignore
|
|
19
19
|
const execCommand = require('mrm-core/src/util/execCommand');
|
|
20
20
|
// @ts-ignore
|
|
21
|
-
const json = require('mrm-core/src/formats/json');
|
|
22
|
-
// @ts-ignore
|
|
23
21
|
const packageJson = require('mrm-core/src/files/packageJson');
|
|
24
22
|
// @ts-ignore
|
|
25
23
|
const MrmError = require('mrm-core/src/error');
|
|
24
|
+
const { yaml, json } = require('mrm-core');
|
|
26
25
|
|
|
27
26
|
/**
|
|
28
27
|
* @typedef Options
|
|
@@ -249,7 +248,36 @@ function isUsingWorkspaces() {
|
|
|
249
248
|
}
|
|
250
249
|
|
|
251
250
|
function isYarnBerry() {
|
|
252
|
-
|
|
251
|
+
const yamlRC = yaml('.yarnrc.yml');
|
|
252
|
+
return yamlRC.exists() && !(yamlRC.get('yarnPath') || '').includes('.yarn/releases/yarn-1.');
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* @param {'npm'|`yarn@${'classic'|'berry'}`} defaultPackageManager
|
|
257
|
+
*/
|
|
258
|
+
function bootstrap(defaultPackageManager) {
|
|
259
|
+
const packageFile = json(`./package.json`);
|
|
260
|
+
const isYarn = isUsingYarn() || defaultPackageManager.startsWith('yarn@');
|
|
261
|
+
if (!packageFile.get('packageManager') && isYarn) {
|
|
262
|
+
execCommand(undefined, 'yarn', ['set', 'version', 'berry']);
|
|
263
|
+
yaml('.yarnrc.yml')
|
|
264
|
+
.merge({
|
|
265
|
+
nodeLinker: 'node-modules',
|
|
266
|
+
})
|
|
267
|
+
.save();
|
|
268
|
+
// Downgrade
|
|
269
|
+
if (defaultPackageManager.endsWith('@classic')) {
|
|
270
|
+
execCommand(undefined, 'yarn', ['set', 'version', 'classic']);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// lock files
|
|
275
|
+
if (isYarn && !fs.existsSync('yarn.lock')) {
|
|
276
|
+
execCommand(undefined, 'yarn', ['install']);
|
|
277
|
+
}
|
|
278
|
+
if (!isYarn && !fs.existsSync('package-lock.json')) {
|
|
279
|
+
execCommand(undefined, 'npm', ['install']);
|
|
280
|
+
}
|
|
253
281
|
}
|
|
254
282
|
|
|
255
283
|
/**
|
|
@@ -269,5 +297,6 @@ function dependency({ name, state, ...options }) {
|
|
|
269
297
|
}
|
|
270
298
|
|
|
271
299
|
module.exports = {
|
|
300
|
+
bootstrap,
|
|
272
301
|
dependency,
|
|
273
302
|
};
|
package/core/pkg.js
CHANGED
|
@@ -100,18 +100,14 @@ function engineMinVersion(packageFile, engineVersionMap) {
|
|
|
100
100
|
const currentVersion = packageFile.get(`engines.${engineName}`, defaultVersion);
|
|
101
101
|
try {
|
|
102
102
|
return intersect(currentVersion, defaultVersion);
|
|
103
|
-
} catch
|
|
103
|
+
} catch {
|
|
104
104
|
return currentVersion; // leave unchanged
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
107
|
|
|
108
108
|
packageFile.merge({
|
|
109
|
-
engines: Object.
|
|
110
|
-
(
|
|
111
|
-
...acc,
|
|
112
|
-
[engineName]: engineConstraint(engineName),
|
|
113
|
-
}),
|
|
114
|
-
{}
|
|
109
|
+
engines: Object.fromEntries(
|
|
110
|
+
Object.keys(engineVersionMap).map((engineName) => [engineName, engineConstraint(engineName)])
|
|
115
111
|
),
|
|
116
112
|
});
|
|
117
113
|
}
|
package/core/typedoc.js
CHANGED
|
@@ -26,14 +26,6 @@ function typedoc({ state, update }) {
|
|
|
26
26
|
const hasWorkspaces = pkg.hasWorkspaces(packageFileDefault);
|
|
27
27
|
const hasTypedoc = state === 'present';
|
|
28
28
|
|
|
29
|
-
pkg.withPackageJson((packageFile) => {
|
|
30
|
-
pkg.script(packageFile, {
|
|
31
|
-
name: 'typedoc',
|
|
32
|
-
script: 'typedoc',
|
|
33
|
-
state: !hasTypedoc || hasWorkspaces ? 'absent' : 'present',
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
|
|
37
29
|
const typedocFile = json('typedoc.json');
|
|
38
30
|
|
|
39
31
|
if (hasTypedoc) {
|
|
@@ -44,11 +36,11 @@ function typedoc({ state, update }) {
|
|
|
44
36
|
...update(config),
|
|
45
37
|
...(hasWorkspaces
|
|
46
38
|
? {
|
|
47
|
-
|
|
48
|
-
entryPoints:
|
|
39
|
+
entryPointStrategy: 'packages',
|
|
40
|
+
entryPoints: undefined,
|
|
49
41
|
}
|
|
50
42
|
: {
|
|
51
|
-
|
|
43
|
+
entryPointStrategy: undefined,
|
|
52
44
|
entryPoints: ['src/index.ts'],
|
|
53
45
|
}),
|
|
54
46
|
}),
|
|
@@ -70,11 +62,6 @@ function typedoc({ state, update }) {
|
|
|
70
62
|
name: ['typedoc'],
|
|
71
63
|
state: hasTypedoc ? 'present' : 'absent',
|
|
72
64
|
});
|
|
73
|
-
npm.dependency({
|
|
74
|
-
dev: true,
|
|
75
|
-
name: ['@strictsoftware/typedoc-plugin-monorepo'],
|
|
76
|
-
state: hasTypedoc && hasWorkspaces ? 'present' : 'absent',
|
|
77
|
-
});
|
|
78
65
|
}
|
|
79
66
|
|
|
80
67
|
module.exports = {
|
package/core/vscode.js
CHANGED
|
@@ -31,7 +31,7 @@ function vscodeTask(newTask) {
|
|
|
31
31
|
* @type {Array<any>}
|
|
32
32
|
*/
|
|
33
33
|
const tasks = vscodeTaskFile.get('tasks', []);
|
|
34
|
-
if (tasks.
|
|
34
|
+
if (tasks.some((task) => task.script === newTask.script)) {
|
|
35
35
|
vscodeTaskFile.set(
|
|
36
36
|
'tasks',
|
|
37
37
|
tasks.map((task) => (task.script === newTask.script ? newTask : task))
|
package/editorconfig/index.js
CHANGED
|
@@ -26,6 +26,7 @@ function createEditorConfig(defaults) {
|
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* @param {string} section
|
|
29
|
+
* @param existing
|
|
29
30
|
*/
|
|
30
31
|
function mergeSection(section, existing = {}) {
|
|
31
32
|
return Object.assign(existing, defaults[section] || {});
|
|
@@ -52,6 +53,7 @@ function createEditorConfig(defaults) {
|
|
|
52
53
|
|
|
53
54
|
module.exports = createEditorConfig({
|
|
54
55
|
'*': {
|
|
56
|
+
// eslint-disable-next-line unicorn/text-encoding-identifier-case
|
|
55
57
|
charset: 'utf-8',
|
|
56
58
|
continuation_indent_size: 4,
|
|
57
59
|
curly_bracket_next_line: false,
|
package/githooks/index.js
CHANGED
|
@@ -7,48 +7,44 @@ const { gitHook, husky } = require('../core/githooks');
|
|
|
7
7
|
const { lintStaged } = require('../core/lintStaged');
|
|
8
8
|
const { file } = require('../core/file');
|
|
9
9
|
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const hasTsc = pkg.hasDependency(packageFile, 'typescript', 'dev');
|
|
10
|
+
function task() {
|
|
11
|
+
const gitSupported = hasGit();
|
|
12
|
+
const packageFile = packageJson();
|
|
13
|
+
const hasESLint = pkg.hasDependency(packageFile, 'eslint', 'dev');
|
|
14
|
+
const hasTsc = pkg.hasDependency(packageFile, 'typescript', 'dev');
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
16
|
+
husky({
|
|
17
|
+
state: gitSupported ? 'present' : 'absent',
|
|
18
|
+
});
|
|
19
|
+
lintStaged({
|
|
20
|
+
state: gitSupported ? 'present' : 'absent',
|
|
21
|
+
update: (config) => ({
|
|
22
|
+
...config,
|
|
23
|
+
'*.json': [...(hasESLint ? ['eslint'] : [])],
|
|
24
|
+
'*.js?(x)': [...(hasTsc ? ["bash -c 'tsc --noEmit'"] : []), ...(hasESLint ? ['eslint'] : [])],
|
|
25
|
+
'*.ts?(x)': [...(hasTsc ? ["bash -c 'tsc --noEmit'"] : []), ...(hasESLint ? ['eslint'] : [])],
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
28
|
+
gitHook({
|
|
29
|
+
name: 'pre-commit',
|
|
30
|
+
content: `npm exec --no -- lint-staged`,
|
|
31
|
+
state: gitSupported ? 'present' : 'absent',
|
|
32
|
+
});
|
|
33
|
+
gitHook({
|
|
34
|
+
name: 'pre-push',
|
|
35
|
+
content: `npm run ${project.validate}`,
|
|
36
|
+
state: gitSupported ? 'present' : 'absent',
|
|
37
|
+
});
|
|
39
38
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
task.description = 'Setup Git hooks';
|
|
49
|
-
task.parameters = {};
|
|
50
|
-
|
|
51
|
-
return task;
|
|
39
|
+
file({
|
|
40
|
+
path: 'CODEOWNERS',
|
|
41
|
+
state: gitSupported ? 'file' : 'absent',
|
|
42
|
+
update: (content) =>
|
|
43
|
+
content.length === 0 ? template('', path.join(__dirname, 'templates', 'CODEOWNERS')).apply().get() : undefined,
|
|
44
|
+
});
|
|
52
45
|
}
|
|
53
46
|
|
|
54
|
-
|
|
47
|
+
task.description = 'Setup Git hooks';
|
|
48
|
+
task.parameters = {};
|
|
49
|
+
|
|
50
|
+
module.exports = task;
|
package/jest/index.js
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
const { jest } = require('../core/jest');
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
task.description = 'Setup Jest';
|
|
14
|
-
task.parameters = {};
|
|
15
|
-
|
|
16
|
-
return task;
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
function task() {
|
|
7
|
+
jest({
|
|
8
|
+
state: 'present',
|
|
9
|
+
});
|
|
17
10
|
}
|
|
18
11
|
|
|
19
|
-
|
|
12
|
+
task.description = 'Setup Jest';
|
|
13
|
+
task.parameters = {};
|
|
14
|
+
|
|
15
|
+
module.exports = task;
|
package/lang/.eslintrc.json
CHANGED
package/lang/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const path = require('path');
|
|
2
2
|
const { json, file, template, packageJson } = require('mrm-core');
|
|
3
3
|
const npm = require('../core/npm');
|
|
4
4
|
const { gitIgnore } = require('../core/git');
|
|
@@ -11,14 +11,14 @@ const pkg = require('../core/pkg');
|
|
|
11
11
|
*
|
|
12
12
|
* @param {{
|
|
13
13
|
* language: 'typescript',
|
|
14
|
-
* tsConfig: string
|
|
14
|
+
* tsConfig: string
|
|
15
15
|
* }} config
|
|
16
16
|
*/
|
|
17
17
|
function createLang({ language: languageDefault = 'typescript', tsConfig: tsConfigDefault }) {
|
|
18
18
|
/**
|
|
19
19
|
*
|
|
20
20
|
* @param {{
|
|
21
|
-
* language: 'typescript'
|
|
21
|
+
* language: 'typescript'
|
|
22
22
|
* }} config
|
|
23
23
|
*/
|
|
24
24
|
function task({ language }) {
|
|
@@ -43,6 +43,7 @@ function createLang({ language: languageDefault = 'typescript', tsConfig: tsConf
|
|
|
43
43
|
.unset('compilerOptions.outDir')
|
|
44
44
|
.unset('include')
|
|
45
45
|
.merge({
|
|
46
|
+
$schema: 'https://json.schemastore.org/tsconfig',
|
|
46
47
|
extends: `./${tsConfigSettingsName}`,
|
|
47
48
|
})
|
|
48
49
|
.save();
|
|
@@ -52,6 +53,7 @@ function createLang({ language: languageDefault = 'typescript', tsConfig: tsConf
|
|
|
52
53
|
} else {
|
|
53
54
|
tsConfigSettings
|
|
54
55
|
.merge({
|
|
56
|
+
$schema: 'https://json.schemastore.org/tsconfig',
|
|
55
57
|
compilerOptions: {},
|
|
56
58
|
extends: tsConfigPreset,
|
|
57
59
|
})
|
|
@@ -68,12 +70,12 @@ function createLang({ language: languageDefault = 'typescript', tsConfig: tsConf
|
|
|
68
70
|
.save();
|
|
69
71
|
|
|
70
72
|
// Create default index
|
|
71
|
-
const templateDir = join(__dirname, 'templates');
|
|
73
|
+
const templateDir = path.join(__dirname, 'templates');
|
|
72
74
|
if (!file('src/index.ts').exists()) {
|
|
73
|
-
template('src/index.ts', join(templateDir, 'index.ts')).apply().save();
|
|
75
|
+
template('src/index.ts', path.join(templateDir, 'index.ts')).apply().save();
|
|
74
76
|
}
|
|
75
77
|
if (!file('src/index.spec.ts').exists()) {
|
|
76
|
-
template('src/index.spec.ts', join(templateDir, 'index.spec.ts')).apply().save();
|
|
78
|
+
template('src/index.spec.ts', path.join(templateDir, 'index.spec.ts')).apply().save();
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
81
|
// Application setup
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@w5s/mrm-preset",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.9",
|
|
4
4
|
"description": "Mrm configuration presets",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mrm",
|
|
@@ -26,17 +26,17 @@
|
|
|
26
26
|
"docs": "md-magic --path '**/*.md' --ignore='node_modules'",
|
|
27
27
|
"format": "eslint . --fix",
|
|
28
28
|
"lint": "eslint .",
|
|
29
|
-
"test": "mkdir _tester; cd _tester;
|
|
29
|
+
"test": "mkdir _tester; cd _tester; mrm bootstrap --dir ..; mrm configure --dir .."
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"debug": "^4.3.3",
|
|
33
|
-
"mrm-core": "^
|
|
33
|
+
"mrm-core": "^7.0.0",
|
|
34
34
|
"semver-intersect": "^1.4.0",
|
|
35
35
|
"sync-directory": "^4.0.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/debug": "^4.1.7",
|
|
39
|
-
"mrm": "
|
|
39
|
+
"mrm": "4.0.0"
|
|
40
40
|
},
|
|
41
41
|
"engines": {
|
|
42
42
|
"node": ">=12.x",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"publishConfig": {
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "3b3ef6ecc88302f17d9dd8e47f7853e88dae142d"
|
|
49
49
|
}
|
package/project/index.js
CHANGED
|
@@ -6,37 +6,36 @@ const { vscodeTask } = require('../core/vscode');
|
|
|
6
6
|
const project = require('../core/project');
|
|
7
7
|
const mrmPackageJson = require('../package.json');
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @param {string} script
|
|
12
|
+
*/
|
|
13
|
+
const npmRun = (script) => {
|
|
14
|
+
switch (script) {
|
|
15
|
+
case project.install:
|
|
16
|
+
case project.test:
|
|
17
|
+
return `npm ${script}`;
|
|
18
|
+
default:
|
|
19
|
+
return `npm run ${script}`;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param {string} script
|
|
25
|
+
*/
|
|
26
|
+
const turboRun = (script) => `turbo run ${script}`;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
* @param {string} script
|
|
31
|
+
*/
|
|
32
|
+
const npmRunAll = (script) => `npm-run-all -p "${script}:*"`;
|
|
9
33
|
function task() {
|
|
10
34
|
const packageFile = packageJson();
|
|
11
35
|
const gitSupported = git.hasGit();
|
|
12
36
|
const useWorkspace = packageFile.get('mrmConfig.packageArchetype') === 'workspace';
|
|
13
37
|
const packageManager = pkg.manager(packageFile);
|
|
14
38
|
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
* @param {string} script
|
|
18
|
-
*/
|
|
19
|
-
const npmRun = (script) => {
|
|
20
|
-
switch (script) {
|
|
21
|
-
case project.install:
|
|
22
|
-
case project.test:
|
|
23
|
-
return `npm ${script}`;
|
|
24
|
-
default:
|
|
25
|
-
return `npm run ${script}`;
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* @param {string} script
|
|
31
|
-
*/
|
|
32
|
-
const lernaRun = (script) => `lerna run ${script}`;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
36
|
-
* @param {string} script
|
|
37
|
-
*/
|
|
38
|
-
const npmRunAll = (script) => `npm-run-all -p "${script}:*"`;
|
|
39
|
-
|
|
40
39
|
// Detect git repository
|
|
41
40
|
pkg.value(packageFile, {
|
|
42
41
|
path: 'repository',
|
|
@@ -67,12 +66,12 @@ function task() {
|
|
|
67
66
|
});
|
|
68
67
|
pkg.script(packageFile, {
|
|
69
68
|
name: `${project.build}:packages`,
|
|
70
|
-
script:
|
|
69
|
+
script: turboRun(project.build),
|
|
71
70
|
state: useWorkspace ? 'present' : 'absent',
|
|
72
71
|
});
|
|
73
72
|
pkg.script(packageFile, {
|
|
74
73
|
name: project.clean,
|
|
75
|
-
script: useWorkspace ?
|
|
74
|
+
script: useWorkspace ? turboRun(project.clean) : pkg.emptyScript,
|
|
76
75
|
state: useWorkspace ? 'present' : 'default',
|
|
77
76
|
});
|
|
78
77
|
|
|
@@ -103,8 +102,18 @@ function task() {
|
|
|
103
102
|
});
|
|
104
103
|
pkg.script(packageFile, {
|
|
105
104
|
name: project.test,
|
|
106
|
-
script:
|
|
107
|
-
state:
|
|
105
|
+
script: npmRunAll(project.test),
|
|
106
|
+
state: 'present',
|
|
107
|
+
});
|
|
108
|
+
pkg.script(packageFile, {
|
|
109
|
+
name: `${project.prepare}:empty`,
|
|
110
|
+
script: pkg.emptyScript,
|
|
111
|
+
state: 'default',
|
|
112
|
+
});
|
|
113
|
+
pkg.script(packageFile, {
|
|
114
|
+
name: `${project.prepare}:packages`,
|
|
115
|
+
script: turboRun(project.test),
|
|
116
|
+
state: useWorkspace ? 'present' : 'absent',
|
|
108
117
|
});
|
|
109
118
|
pkg.script(packageFile, {
|
|
110
119
|
name: project.validate,
|
|
@@ -151,6 +160,25 @@ function task() {
|
|
|
151
160
|
});
|
|
152
161
|
|
|
153
162
|
// workspace
|
|
163
|
+
const turboConfig = json('turbo.json', {
|
|
164
|
+
$schema: 'https://turborepo.org/schema.json',
|
|
165
|
+
pipeline: {
|
|
166
|
+
[project.build]: {
|
|
167
|
+
dependsOn: ['^build'],
|
|
168
|
+
outputs: ['lib/**', 'dist/**', '.next/**'],
|
|
169
|
+
},
|
|
170
|
+
[project.test]: {},
|
|
171
|
+
[project.lint]: {},
|
|
172
|
+
[project.format]: {},
|
|
173
|
+
[project.clean]: {
|
|
174
|
+
cache: false,
|
|
175
|
+
},
|
|
176
|
+
[project.develop]: {
|
|
177
|
+
cache: false,
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
globalDependencies: ['tsconfig.settings.json'],
|
|
181
|
+
});
|
|
154
182
|
const lernaConfig = json('lerna.json', {
|
|
155
183
|
version: packageFile.get('version'),
|
|
156
184
|
});
|
|
@@ -172,10 +200,12 @@ function task() {
|
|
|
172
200
|
useWorkspaces: useWorkspace,
|
|
173
201
|
});
|
|
174
202
|
lernaConfig.save();
|
|
203
|
+
turboConfig.save();
|
|
175
204
|
makeDirs('packages');
|
|
176
205
|
} else {
|
|
177
206
|
packageFile.unset('workspaces');
|
|
178
207
|
lernaConfig.delete();
|
|
208
|
+
turboConfig.delete();
|
|
179
209
|
}
|
|
180
210
|
|
|
181
211
|
// Engine
|
|
@@ -200,7 +230,7 @@ function task() {
|
|
|
200
230
|
});
|
|
201
231
|
npm.dependency({
|
|
202
232
|
dev: true,
|
|
203
|
-
name: ['lerna'],
|
|
233
|
+
name: ['lerna', 'turbo'],
|
|
204
234
|
state: useWorkspace ? 'present' : 'absent',
|
|
205
235
|
});
|
|
206
236
|
|
package/release/index.js
CHANGED
|
@@ -11,7 +11,7 @@ function task() {
|
|
|
11
11
|
pkg.script(packageFile, {
|
|
12
12
|
name: project.release,
|
|
13
13
|
// eslint-disable-next-line no-template-curly-in-string
|
|
14
|
-
script: useWorkspace ? '
|
|
14
|
+
script: useWorkspace ? 'is-ci && lerna publish --yes || lerna publish' : semanticRelease.command(),
|
|
15
15
|
state: 'present',
|
|
16
16
|
});
|
|
17
17
|
});
|
package/renovate/index.js
CHANGED