@w5s/mrm-preset 1.0.0-alpha.6 → 1.0.0-alpha.7

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.
@@ -0,0 +1 @@
1
+ @w5s/mrm-preset:build: cache hit, replaying output 65d77d6fca114214
@@ -0,0 +1,43 @@
1
+ @w5s/mrm-preset:docs: cache hit, replaying output f34cf75e082653a5
2
+ @w5s/mrm-preset:docs: Starting markdown-magic [ '**/*.md', '!node_modules/**' ]
3
+ @w5s/mrm-preset:docs: ℹ Notice:
4
+ @w5s/mrm-preset:docs:  Missing transforms "BASIC_RULES","JSX_RULES" in _tester/node_modules/eslint-plugin-react/README.md
5
+ @w5s/mrm-preset:docs: 
6
+ @w5s/mrm-preset:docs: ✔ README.md Updated
7
+ @w5s/mrm-preset:docs:  Transforms run
8
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=# W5s Mrm Preset _(${name})_
9
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=> ${description}&unknownTxt=
10
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[${license}][license-url] © ${author}
11
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[package-version-svg]: https://img.shields.io/npm/v/${name}.svg?style=flat-square
12
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[package-url]: https://www.npmjs.com/package/${name}
13
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[license-image]: https://img.shields.io/badge/license-${license}-green.svg?style=flat-square
14
+ @w5s/mrm-preset:docs: 
15
+ @w5s/mrm-preset:docs: ✔ _tester/node_modules/@w5s/mrm-preset/README.md Updated
16
+ @w5s/mrm-preset:docs:  Transforms run
17
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=# W5s Mrm Preset _(${name})_
18
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=> ${description}&unknownTxt=
19
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[${license}][license-url] © ${author}
20
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[package-version-svg]: https://img.shields.io/npm/v/${name}.svg?style=flat-square
21
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[package-url]: https://www.npmjs.com/package/${name}
22
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[license-image]: https://img.shields.io/badge/license-${license}-green.svg?style=flat-square
23
+ @w5s/mrm-preset:docs: 
24
+ @w5s/mrm-preset:docs: ✔ _tester/node_modules/@w5s/eslint-config/README.md Updated
25
+ @w5s/mrm-preset:docs:  Transforms run
26
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=# W5s ESLint configuration _(${name})_
27
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=> ${description}&unknownTxt=
28
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=```console\nnpm install --save-dev ${name}\n```
29
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[${license}][license-url] © ${author}
30
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[package-version-svg]: https://img.shields.io/npm/v/${name}.svg?style=flat-square
31
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[package-url]: https://www.npmjs.com/package/${name}
32
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[license-image]: https://img.shields.io/badge/license-${license}-green.svg?style=flat-square
33
+ @w5s/mrm-preset:docs: 
34
+ @w5s/mrm-preset:docs: ✔ _tester/node_modules/@w5s/ts-config/README.md Updated
35
+ @w5s/mrm-preset:docs:  Transforms run
36
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=# W5s Typescript configuration _(${name})_
37
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=> ${description}&unknownTxt=
38
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=```console\nnpm install --save-dev ${name}\n```
39
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[${license}][license-url] © ${author}
40
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[package-version-svg]: https://img.shields.io/npm/v/${name}.svg?style=flat-square
41
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[package-url]: https://www.npmjs.com/package/${name}
42
+ @w5s/mrm-preset:docs:  ⁕ PKGJSON:template=[license-image]: https://img.shields.io/badge/license-${license}-green.svg?style=flat-square
43
+ @w5s/mrm-preset:docs: 
@@ -0,0 +1,20 @@
1
+ @w5s/mrm-preset:test: cache hit, replaying output 6b4f5273625c6ddf
2
+ @w5s/mrm-preset:test: mkdir: _tester: File exists
3
+ @w5s/mrm-preset:test: Running bootstrap...
4
+ @w5s/mrm-preset:test: Running alias configure...
5
+ @w5s/mrm-preset:test: Running gitignore...
6
+ @w5s/mrm-preset:test: Running project...
7
+ @w5s/mrm-preset:test: Update package.json
8
+ @w5s/mrm-preset:test: Running contributing...
9
+ @w5s/mrm-preset:test: Running release...
10
+ @w5s/mrm-preset:test: Running ci...
11
+ @w5s/mrm-preset:test: Running lang...
12
+ @w5s/mrm-preset:test: Running commitlint...
13
+ @w5s/mrm-preset:test: Running editorconfig...
14
+ @w5s/mrm-preset:test: Running eslint...
15
+ @w5s/mrm-preset:test: Running cspell...
16
+ @w5s/mrm-preset:test: Running jest...
17
+ @w5s/mrm-preset:test: Update package.json
18
+ @w5s/mrm-preset:test: Running renovate...
19
+ @w5s/mrm-preset:test: Running githooks...
20
+ @w5s/mrm-preset:test: Running postconfigure...
package/CHANGELOG.md CHANGED
@@ -3,6 +3,19 @@
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.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)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * correct bootstrap step ([da7f539](https://github.com/w5s/project-config/commit/da7f539560ba143f830c9ea824b0d79c6a50522c))
12
+ * correct is-ci script that fails in some yarn berry ([4e4707d](https://github.com/w5s/project-config/commit/4e4707d7e8c0cd2c88e1dc6bc94705317dcf9e98))
13
+ * improve yarn check ([3af241a](https://github.com/w5s/project-config/commit/3af241af004d747518733983260eb295aa75e5cb))
14
+
15
+
16
+
17
+
18
+
6
19
  # [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
20
 
8
21
 
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 -p mrm -p @w5s/mrm-preset -- mrm bootstrap --preset @w5s/mrm-preset
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
@@ -1,8 +1,6 @@
1
1
  /* eslint-disable sort-keys-fix/sort-keys-fix */
2
2
  const path = require('path');
3
- const { packageJson, file, yaml } = require('mrm-core');
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
- if (isYarn && isYarnBerry) {
39
- execCommand(undefined, 'yarn', ['set', 'version', 'berry']);
40
- yaml('.yarnrc.yml').set('nodeLinker', 'node-modules').save();
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: `${packageManager} run mrm -- ${mrmTask}`,
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: `${packageManager} --preset ${mrmPreset}`,
51
+ script: `${currentPackageManager} --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/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,38 @@ function isUsingWorkspaces() {
249
248
  }
250
249
 
251
250
  function isYarnBerry() {
252
- return fs.existsSync('.yarnrc.yml');
251
+ const yamlRC = yaml('.yarnrc.yml');
252
+ return yamlRC.exists() && (yamlRC.get('yarnPath') || '').indexOf('.yarn/releases/yarn-1.') < 0;
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')) {
262
+ if (isYarn) {
263
+ execCommand(undefined, 'yarn', ['set', 'version', 'berry']);
264
+ yaml('.yarnrc.yml')
265
+ .merge({
266
+ nodeLinker: 'node-modules',
267
+ })
268
+ .save();
269
+ // Downgrade
270
+ if (defaultPackageManager.endsWith('@classic')) {
271
+ execCommand(undefined, 'yarn', ['set', 'version', 'classic']);
272
+ }
273
+ }
274
+ }
275
+
276
+ // lock files
277
+ if (isYarn && !fs.existsSync('yarn.lock')) {
278
+ execCommand(undefined, 'yarn', ['install']);
279
+ }
280
+ if (!isYarn && !fs.existsSync('package-lock.json')) {
281
+ execCommand(undefined, 'npm', ['install']);
282
+ }
253
283
  }
254
284
 
255
285
  /**
@@ -269,5 +299,6 @@ function dependency({ name, state, ...options }) {
269
299
  }
270
300
 
271
301
  module.exports = {
302
+ bootstrap,
272
303
  dependency,
273
304
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@w5s/mrm-preset",
3
- "version": "1.0.0-alpha.6",
3
+ "version": "1.0.0-alpha.7",
4
4
  "description": "Mrm configuration presets",
5
5
  "keywords": [
6
6
  "mrm",
@@ -26,7 +26,7 @@
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; ../node_modules/.bin/mrm bootstrap --dir ..; ../node_modules/.bin/mrm configure --dir .."
29
+ "test": "mkdir _tester; cd _tester; mrm bootstrap --dir ..; mrm configure --dir .."
30
30
  },
31
31
  "dependencies": {
32
32
  "debug": "^4.3.3",
@@ -45,5 +45,5 @@
45
45
  "publishConfig": {
46
46
  "access": "public"
47
47
  },
48
- "gitHead": "0bf05f35388f1ddb53438a017186cf64d2ce99f2"
48
+ "gitHead": "791ae3e63ac1278f1299c4e8af2a88786b2b6683"
49
49
  }
package/project/index.js CHANGED
@@ -29,7 +29,7 @@ function task() {
29
29
  *
30
30
  * @param {string} script
31
31
  */
32
- const lernaRun = (script) => `lerna run ${script}`;
32
+ const turboRun = (script) => `turbo run ${script}`;
33
33
 
34
34
  /**
35
35
  *
@@ -67,12 +67,12 @@ function task() {
67
67
  });
68
68
  pkg.script(packageFile, {
69
69
  name: `${project.build}:packages`,
70
- script: lernaRun(project.build),
70
+ script: turboRun(project.build),
71
71
  state: useWorkspace ? 'present' : 'absent',
72
72
  });
73
73
  pkg.script(packageFile, {
74
74
  name: project.clean,
75
- script: useWorkspace ? lernaRun(project.clean) : pkg.emptyScript,
75
+ script: useWorkspace ? turboRun(project.clean) : pkg.emptyScript,
76
76
  state: useWorkspace ? 'present' : 'default',
77
77
  });
78
78
 
@@ -103,8 +103,18 @@ function task() {
103
103
  });
104
104
  pkg.script(packageFile, {
105
105
  name: project.test,
106
- script: useWorkspace ? lernaRun(project.test) : pkg.emptyScript,
107
- state: useWorkspace ? 'present' : 'default',
106
+ script: npmRunAll(project.test),
107
+ state: 'present',
108
+ });
109
+ pkg.script(packageFile, {
110
+ name: `${project.prepare}:empty`,
111
+ script: pkg.emptyScript,
112
+ state: 'default',
113
+ });
114
+ pkg.script(packageFile, {
115
+ name: `${project.prepare}:packages`,
116
+ script: turboRun(project.test),
117
+ state: useWorkspace ? 'present' : 'absent',
108
118
  });
109
119
  pkg.script(packageFile, {
110
120
  name: project.validate,
@@ -151,6 +161,25 @@ function task() {
151
161
  });
152
162
 
153
163
  // workspace
164
+ const turboConfig = json('turbo.json', {
165
+ $schema: 'https://turborepo.org/schema.json',
166
+ pipeline: {
167
+ [project.build]: {
168
+ dependsOn: ['^build'],
169
+ outputs: ['lib/**', 'dist/**', '.next/**'],
170
+ },
171
+ [project.test]: {},
172
+ [project.lint]: {},
173
+ [project.format]: {},
174
+ [project.clean]: {
175
+ cache: false,
176
+ },
177
+ [project.develop]: {
178
+ cache: false,
179
+ },
180
+ },
181
+ globalDependencies: ['tsconfig.settings.json'],
182
+ });
154
183
  const lernaConfig = json('lerna.json', {
155
184
  version: packageFile.get('version'),
156
185
  });
@@ -172,10 +201,12 @@ function task() {
172
201
  useWorkspaces: useWorkspace,
173
202
  });
174
203
  lernaConfig.save();
204
+ turboConfig.save();
175
205
  makeDirs('packages');
176
206
  } else {
177
207
  packageFile.unset('workspaces');
178
208
  lernaConfig.delete();
209
+ turboConfig.delete();
179
210
  }
180
211
 
181
212
  // Engine
@@ -200,7 +231,7 @@ function task() {
200
231
  });
201
232
  npm.dependency({
202
233
  dev: true,
203
- name: ['lerna'],
234
+ name: ['lerna', 'turbo'],
204
235
  state: useWorkspace ? 'present' : 'absent',
205
236
  });
206
237
 
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 ? 'CI=$(is-ci) lerna publish ${CI:+"--yes"}' : semanticRelease.command(),
14
+ script: useWorkspace ? 'is-ci && lerna publish --yes || lerna publish' : semanticRelease.command(),
15
15
  state: 'present',
16
16
  });
17
17
  });