pob 9.2.0 → 9.4.0
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/CHANGELOG.md +47 -0
- package/lib/generators/app/PobAppGenerator.js +1 -0
- package/lib/generators/common/babel/CommonBabelGenerator.js +6 -2
- package/lib/generators/common/babel/templates/babel.config.cjs.ejs +1 -1
- package/lib/generators/common/format-lint/CommonLintGenerator.js +1 -1
- package/lib/generators/common/testing/CommonTestingGenerator.js +100 -75
- package/lib/generators/common/typescript/CommonTypescriptGenerator.js +8 -1
- package/lib/generators/common/typescript/templates/tsconfig.json.ejs +1 -1
- package/lib/generators/core/ci/CoreCIGenerator.js +7 -0
- package/lib/generators/core/ci/templates/github-action-node-workflow.yml.ejs +6 -0
- package/lib/generators/lib/PobLibGenerator.js +3 -0
- package/lib/generators/monorepo/PobMonorepoGenerator.js +9 -8
- package/lib/generators/monorepo/lerna/MonorepoLernaGenerator.js +0 -21
- package/lib/utils/package.js +3 -5
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,53 @@
|
|
|
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
|
+
# [9.4.0](https://github.com/christophehurpeau/pob/compare/pob@9.3.1...pob@9.4.0) (2021-12-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* monorepo testing generator ([b444042](https://github.com/christophehurpeau/pob/commit/b444042aa5203e4ac7a56a3d93f5a3b98c0fce11))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [9.3.1](https://github.com/christophehurpeau/pob/compare/pob@9.3.0...pob@9.3.1) (2021-12-11)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package pob
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [9.3.0](https://github.com/christophehurpeau/pob/compare/pob@9.2.1...pob@9.3.0) (2021-12-11)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* **pob:** newline in ci workflow ([78652a1](https://github.com/christophehurpeau/pob/commit/78652a1a412e04ab63fdb5ca7139e86f6e6a3dad))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Features
|
|
34
|
+
|
|
35
|
+
* **pob:** ci build ([1d1e76b](https://github.com/christophehurpeau/pob/commit/1d1e76b64e81fb08f3c1ea4de26363d162c9a15f))
|
|
36
|
+
* **pob:** typescript dom condition ([eecb027](https://github.com/christophehurpeau/pob/commit/eecb027d4415a20dfcc5612082d9b6ee3ad6a205))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
## [9.2.1](https://github.com/christophehurpeau/pob/compare/pob@9.2.0...pob@9.2.1) (2021-12-11)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### Bug Fixes
|
|
46
|
+
|
|
47
|
+
* bring back @babel/core as dev dependency ([9aa52ec](https://github.com/christophehurpeau/pob/commit/9aa52ecf895ac28d216e4957028bb8366c278f00))
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
6
53
|
# [9.2.0](https://github.com/christophehurpeau/pob/compare/pob@9.1.0...pob@9.2.0) (2021-12-11)
|
|
7
54
|
|
|
8
55
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import semver from 'semver';
|
|
3
3
|
import Generator from 'yeoman-generator';
|
|
4
|
+
import inLerna from '../../../utils/inLerna.js';
|
|
4
5
|
import * as packageUtils from '../../../utils/package.js';
|
|
5
6
|
|
|
6
7
|
export default class CommonBabelGenerator extends Generator {
|
|
@@ -321,7 +322,10 @@ export default class CommonBabelGenerator extends Generator {
|
|
|
321
322
|
|
|
322
323
|
/* dependencies */
|
|
323
324
|
|
|
324
|
-
packageUtils.addOrRemoveDevDependencies(pkg, useBabel, [
|
|
325
|
+
packageUtils.addOrRemoveDevDependencies(pkg, useBabel, [
|
|
326
|
+
'@babel/core',
|
|
327
|
+
'pob-babel',
|
|
328
|
+
]);
|
|
325
329
|
|
|
326
330
|
if (pkg.dependencies && pkg.dependencies['pob-babel']) {
|
|
327
331
|
// update pob-babel in alp-dev
|
|
@@ -337,7 +341,6 @@ export default class CommonBabelGenerator extends Generator {
|
|
|
337
341
|
]);
|
|
338
342
|
|
|
339
343
|
packageUtils.removeDevDependencies(pkg, [
|
|
340
|
-
'@babel/core',
|
|
341
344
|
'rollup',
|
|
342
345
|
'babel-preset-env', // now @babel/preset-env
|
|
343
346
|
'babel-preset-jsdoc',
|
|
@@ -732,6 +735,7 @@ export default class CommonBabelGenerator extends Generator {
|
|
|
732
735
|
{
|
|
733
736
|
hasReact,
|
|
734
737
|
testing: this.options.testing,
|
|
738
|
+
jestExperimentalESM: !inLerna,
|
|
735
739
|
},
|
|
736
740
|
);
|
|
737
741
|
} else {
|
|
@@ -9,6 +9,6 @@ module.exports = function babelConfig(api) {
|
|
|
9
9
|
|
|
10
10
|
return {
|
|
11
11
|
only: [path.resolve(__dirname, 'src')],
|
|
12
|
-
presets: [require.resolve('pob-babel/preset')],
|
|
12
|
+
presets: [[require.resolve('pob-babel/preset')<% if (!jestExperimentalESM) { %>, { modules: 'commonjs' }<% } %>]],
|
|
13
13
|
};
|
|
14
14
|
};
|
|
@@ -337,7 +337,7 @@ export default class CommonLintGenerator extends Generator {
|
|
|
337
337
|
? `{${pkg.type === 'commonjs' ? 'mjs' : 'cjs'},js}`
|
|
338
338
|
: `${hasReact ? '{ts,tsx}' : 'ts'}`;
|
|
339
339
|
|
|
340
|
-
const jestOverride = !
|
|
340
|
+
const jestOverride = !pkg.jest
|
|
341
341
|
? null
|
|
342
342
|
: {
|
|
343
343
|
files: [`**/*.test.${ext}`, `__tests__/**/*.${ext}`],
|
|
@@ -6,6 +6,12 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
6
6
|
constructor(args, opts) {
|
|
7
7
|
super(args, opts);
|
|
8
8
|
|
|
9
|
+
this.option('monorepo', {
|
|
10
|
+
type: Boolean,
|
|
11
|
+
defaults: false,
|
|
12
|
+
desc: 'is root monorepo',
|
|
13
|
+
});
|
|
14
|
+
|
|
9
15
|
this.option('enable', {
|
|
10
16
|
type: Boolean,
|
|
11
17
|
defaults: true,
|
|
@@ -44,10 +50,11 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
default() {
|
|
47
|
-
if (!inLerna) {
|
|
53
|
+
if (!inLerna || inLerna.root) {
|
|
48
54
|
this.composeWith('pob:core:ci', {
|
|
49
55
|
enable: this.options.ci,
|
|
50
|
-
testing: this.options.
|
|
56
|
+
testing: this.options.enable,
|
|
57
|
+
build: this.options.typescript,
|
|
51
58
|
typescript: this.options.typescript,
|
|
52
59
|
documentation: this.options.documentation,
|
|
53
60
|
codecov: this.options.codecov,
|
|
@@ -72,6 +79,12 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
72
79
|
'babel-jest',
|
|
73
80
|
]);
|
|
74
81
|
|
|
82
|
+
// const yoConfigPobMonorepo = inLerna && inLerna.pobMonorepoConfig;
|
|
83
|
+
// const globalTesting = yoConfigPobMonorepo && yoConfigPobMonorepo.testing;
|
|
84
|
+
const globalTesting = false;
|
|
85
|
+
|
|
86
|
+
const enableForMonorepo = this.options.monorepo && globalTesting;
|
|
87
|
+
|
|
75
88
|
if (!this.options.enable) {
|
|
76
89
|
packageUtils.removeDevDependencies(pkg, ['jest', '@types/jest']);
|
|
77
90
|
|
|
@@ -90,81 +103,93 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
90
103
|
|
|
91
104
|
this.fs.writeJSON(this.destinationPath('package.json'), pkg);
|
|
92
105
|
} else {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
: ''
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
packageUtils.addScripts(pkg, {
|
|
106
|
-
test: jestCommand,
|
|
107
|
-
'test:watch': `${jestCommand} --watch`,
|
|
108
|
-
'generate:test-coverage': [
|
|
109
|
-
'rm -Rf docs/coverage/',
|
|
110
|
-
`NODE_ENV=production ${
|
|
111
|
-
transpileWithBabel ? 'BABEL_ENV=test ' : ''
|
|
112
|
-
}${jestCommand} --coverage --coverageReporters=pob-lcov-reporter --coverageDirectory=docs/coverage/`,
|
|
113
|
-
].join(' ; '),
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
packageUtils.addDevDependencies(pkg, [
|
|
117
|
-
'pob-lcov-reporter',
|
|
118
|
-
'jest',
|
|
119
|
-
'@types/jest',
|
|
120
|
-
]);
|
|
121
|
-
|
|
122
|
-
const hasReact = transpileWithBabel && packageUtils.hasReact(pkg);
|
|
123
|
-
const srcDirectory = transpileWithBabel ? 'src' : 'lib';
|
|
124
|
-
|
|
125
|
-
if (!pkg.jest) pkg.jest = {};
|
|
126
|
-
Object.assign(pkg.jest, {
|
|
127
|
-
cacheDirectory: './node_modules/.cache/jest',
|
|
128
|
-
testMatch: [
|
|
129
|
-
`<rootDir>/${srcDirectory}/**/__tests__/**/*.${
|
|
130
|
-
transpileWithBabel ? 'ts' : '?(m)js'
|
|
131
|
-
}${hasReact ? '?(x)' : ''}`,
|
|
132
|
-
`<rootDir>/${srcDirectory}/**/*.test.${
|
|
133
|
-
transpileWithBabel ? 'ts' : '?(m)js'
|
|
134
|
-
}${hasReact ? '?(x)' : ''}`,
|
|
135
|
-
],
|
|
136
|
-
collectCoverageFrom: [
|
|
137
|
-
`${srcDirectory}/**/*.${transpileWithBabel ? 'ts' : '?(m)js'}${
|
|
138
|
-
hasReact ? '?(x)' : ''
|
|
139
|
-
}`,
|
|
140
|
-
],
|
|
141
|
-
moduleFileExtensions: [
|
|
142
|
-
transpileWithBabel && 'ts',
|
|
143
|
-
transpileWithBabel && hasReact && 'tsx',
|
|
144
|
-
'js',
|
|
145
|
-
// 'jsx',
|
|
146
|
-
'json',
|
|
147
|
-
].filter(Boolean),
|
|
148
|
-
extensionsToTreatAsEsm: [
|
|
149
|
-
transpileWithBabel && '.ts',
|
|
150
|
-
transpileWithBabel && hasReact && '.tsx',
|
|
151
|
-
].filter(Boolean),
|
|
152
|
-
// transform: {
|
|
153
|
-
// [`^.+\\.ts${hasReact ? 'x?' : ''}$`]: 'babel-jest',
|
|
154
|
-
// },
|
|
155
|
-
});
|
|
156
|
-
delete pkg.jest.transform;
|
|
157
|
-
|
|
158
|
-
if (
|
|
159
|
-
babelEnvs.length === 0 ||
|
|
160
|
-
babelEnvs.some((env) => env.target === 'node')
|
|
161
|
-
) {
|
|
162
|
-
pkg.jest.testEnvironment = 'node';
|
|
106
|
+
packageUtils.addOrRemoveDevDependencies(
|
|
107
|
+
pkg,
|
|
108
|
+
enableForMonorepo || !globalTesting,
|
|
109
|
+
['pob-lcov-reporter', 'jest', '@types/jest'],
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
if (this.options.monorepo) {
|
|
113
|
+
delete pkg.jest;
|
|
114
|
+
packageUtils.addScripts(pkg, {
|
|
115
|
+
test: 'yarn workspaces foreach --parallel -Av run test',
|
|
116
|
+
});
|
|
163
117
|
} else {
|
|
164
|
-
|
|
118
|
+
const babelEnvs = pkg.pob.babelEnvs || [];
|
|
119
|
+
const transpileWithBabel = packageUtils.transpileWithBabel(pkg);
|
|
120
|
+
|
|
121
|
+
const shouldUseExperimentalVmModules =
|
|
122
|
+
pkg.type === 'module' || (transpileWithBabel && !inLerna);
|
|
123
|
+
|
|
124
|
+
const jestCommand = `${
|
|
125
|
+
shouldUseExperimentalVmModules
|
|
126
|
+
? 'NODE_OPTIONS=--experimental-vm-modules '
|
|
127
|
+
: ''
|
|
128
|
+
}jest`;
|
|
129
|
+
|
|
130
|
+
packageUtils.addScripts(pkg, {
|
|
131
|
+
test: jestCommand,
|
|
132
|
+
'test:watch': `${jestCommand} --watch`,
|
|
133
|
+
'generate:test-coverage': [
|
|
134
|
+
'rm -Rf docs/coverage/',
|
|
135
|
+
`NODE_ENV=production ${
|
|
136
|
+
transpileWithBabel ? 'BABEL_ENV=test ' : ''
|
|
137
|
+
}${jestCommand} --coverage --coverageReporters=pob-lcov-reporter --coverageDirectory=docs/coverage/`,
|
|
138
|
+
].join(' ; '),
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
const hasReact = transpileWithBabel && packageUtils.hasReact(pkg);
|
|
142
|
+
const srcDirectory = transpileWithBabel ? 'src' : 'lib';
|
|
143
|
+
|
|
144
|
+
if (!pkg.jest) pkg.jest = {};
|
|
145
|
+
Object.assign(pkg.jest, {
|
|
146
|
+
cacheDirectory: './node_modules/.cache/jest',
|
|
147
|
+
testMatch: [
|
|
148
|
+
`<rootDir>/${srcDirectory}/**/__tests__/**/*.${
|
|
149
|
+
transpileWithBabel ? 'ts' : '?(m)js'
|
|
150
|
+
}${hasReact ? '?(x)' : ''}`,
|
|
151
|
+
`<rootDir>/${srcDirectory}/**/*.test.${
|
|
152
|
+
transpileWithBabel ? 'ts' : '?(m)js'
|
|
153
|
+
}${hasReact ? '?(x)' : ''}`,
|
|
154
|
+
],
|
|
155
|
+
collectCoverageFrom: [
|
|
156
|
+
`${srcDirectory}/**/*.${transpileWithBabel ? 'ts' : '?(m)js'}${
|
|
157
|
+
hasReact ? '?(x)' : ''
|
|
158
|
+
}`,
|
|
159
|
+
],
|
|
160
|
+
moduleFileExtensions: [
|
|
161
|
+
transpileWithBabel && 'ts',
|
|
162
|
+
transpileWithBabel && hasReact && 'tsx',
|
|
163
|
+
'js',
|
|
164
|
+
// 'jsx',
|
|
165
|
+
'json',
|
|
166
|
+
].filter(Boolean),
|
|
167
|
+
// transform: {
|
|
168
|
+
// [`^.+\\.ts${hasReact ? 'x?' : ''}$`]: 'babel-jest',
|
|
169
|
+
// },
|
|
170
|
+
});
|
|
171
|
+
delete pkg.jest.transform;
|
|
172
|
+
|
|
173
|
+
if (shouldUseExperimentalVmModules) {
|
|
174
|
+
pkg.jest.extensionsToTreatAsEsm = [
|
|
175
|
+
transpileWithBabel && '.ts',
|
|
176
|
+
transpileWithBabel && hasReact && '.tsx',
|
|
177
|
+
].filter(Boolean);
|
|
178
|
+
} else {
|
|
179
|
+
delete pkg.jest.extensionsToTreatAsEsm;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
if (
|
|
183
|
+
babelEnvs.length === 0 ||
|
|
184
|
+
babelEnvs.some((env) => env.target === 'node')
|
|
185
|
+
) {
|
|
186
|
+
pkg.jest.testEnvironment = 'node';
|
|
187
|
+
} else {
|
|
188
|
+
delete pkg.jest.testEnvironment;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
if (!transpileWithBabel) delete pkg.jest.transform;
|
|
165
192
|
}
|
|
166
|
-
|
|
167
|
-
if (!transpileWithBabel) delete pkg.jest.transform;
|
|
168
193
|
}
|
|
169
194
|
|
|
170
195
|
this.fs.writeJSON(this.destinationPath('package.json'), pkg);
|
|
@@ -20,6 +20,12 @@ export default class CommonTypescriptGenerator extends Generator {
|
|
|
20
20
|
desc: 'enable jsx with typescript',
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
+
this.option('dom', {
|
|
24
|
+
type: Boolean,
|
|
25
|
+
defaults: true,
|
|
26
|
+
desc: 'enable dom with typescript',
|
|
27
|
+
});
|
|
28
|
+
|
|
23
29
|
this.option('baseUrl', {
|
|
24
30
|
type: String,
|
|
25
31
|
defaults: '',
|
|
@@ -57,7 +63,7 @@ export default class CommonTypescriptGenerator extends Generator {
|
|
|
57
63
|
const tsconfigPath = this.destinationPath('tsconfig.json');
|
|
58
64
|
const tsconfigBuildPath = this.destinationPath('tsconfig.build.json');
|
|
59
65
|
if (this.options.enable) {
|
|
60
|
-
const { jsx } = this.options;
|
|
66
|
+
const { jsx, dom } = this.options;
|
|
61
67
|
let composite;
|
|
62
68
|
let monorepoPackageNames;
|
|
63
69
|
let monorepoPackageSrcPaths;
|
|
@@ -108,6 +114,7 @@ export default class CommonTypescriptGenerator extends Generator {
|
|
|
108
114
|
monorepoPackageNames,
|
|
109
115
|
monorepoPackageSrcPaths,
|
|
110
116
|
jsx,
|
|
117
|
+
dom,
|
|
111
118
|
baseUrl: this.options.baseUrl,
|
|
112
119
|
},
|
|
113
120
|
);
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
"target": "esnext", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
|
|
15
15
|
"module": "esnext", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
|
16
|
-
"lib": ["dom", "esnext"], /* Polyfills are imported either by babel or with polyfill.io */
|
|
16
|
+
"lib": [<%- dom ? '"dom", ' : '' %>"esnext"], /* Polyfills are imported either by babel or with polyfill.io */
|
|
17
17
|
<%= jsx ? '' : '// ' %>"jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
|
|
18
18
|
"isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
|
|
19
19
|
|
|
@@ -13,6 +13,12 @@ export default class CoreCIGenerator extends Generator {
|
|
|
13
13
|
desc: 'enable ci',
|
|
14
14
|
});
|
|
15
15
|
|
|
16
|
+
this.option('build', {
|
|
17
|
+
type: Boolean,
|
|
18
|
+
defaults: true,
|
|
19
|
+
desc: 'enable build',
|
|
20
|
+
});
|
|
21
|
+
|
|
16
22
|
this.option('typescript', {
|
|
17
23
|
type: Boolean,
|
|
18
24
|
defaults: true,
|
|
@@ -66,6 +72,7 @@ export default class CoreCIGenerator extends Generator {
|
|
|
66
72
|
testing: this.options.testing && !!pkg.scripts.test,
|
|
67
73
|
checks: !!pkg.scripts && !!pkg.scripts.checks,
|
|
68
74
|
documentation: this.options.documentation,
|
|
75
|
+
build: this.options.build,
|
|
69
76
|
typescript: this.options.typescript,
|
|
70
77
|
codecov: this.options.codecov,
|
|
71
78
|
},
|
|
@@ -54,6 +54,12 @@ jobs:
|
|
|
54
54
|
- name: Checks
|
|
55
55
|
run: <%= packageManager %> run checks
|
|
56
56
|
|
|
57
|
+
<% } -%>
|
|
58
|
+
<% if (build) { -%>
|
|
59
|
+
- name: Build
|
|
60
|
+
run: yarn run build
|
|
61
|
+
if: startsWith(matrix.node-version, '16.')
|
|
62
|
+
|
|
57
63
|
<% } -%>
|
|
58
64
|
- name: Prettier
|
|
59
65
|
run: <%= packageManager %> run lint:prettier
|
|
@@ -221,9 +221,12 @@ export default class PobLibGenerator extends Generator {
|
|
|
221
221
|
|
|
222
222
|
const withBabel = babelEnvs.length > 0;
|
|
223
223
|
const jsx = withBabel && pkg.pob.jsx === true;
|
|
224
|
+
const browser =
|
|
225
|
+
withBabel && babelEnvs.some((env) => env.target === 'browser');
|
|
224
226
|
|
|
225
227
|
this.composeWith('pob:common:typescript', {
|
|
226
228
|
enable: withBabel,
|
|
229
|
+
dom: browser,
|
|
227
230
|
jsx,
|
|
228
231
|
updateOnly: this.options.updateOnly,
|
|
229
232
|
baseUrl: './src',
|
|
@@ -194,18 +194,19 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
194
194
|
throw new Error('packages should not be empty');
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
this.composeWith('pob:
|
|
198
|
-
|
|
199
|
-
|
|
197
|
+
this.composeWith('pob:common:husky', {});
|
|
198
|
+
|
|
199
|
+
this.composeWith('pob:common:testing', {
|
|
200
|
+
monorepo: true,
|
|
201
|
+
enable: this.pobLernaConfig.testing,
|
|
200
202
|
testing: this.pobLernaConfig.testing,
|
|
201
|
-
|
|
202
|
-
documentation: this.pobLernaConfig.documentation,
|
|
203
|
-
|
|
203
|
+
typescript: this.pobLernaConfig.typescript,
|
|
204
|
+
documentation: !!this.pobLernaConfig.documentation,
|
|
205
|
+
codecov: this.pobLernaConfig.testing && this.pobLernaConfig.codecov,
|
|
206
|
+
ci: this.pobLernaConfig.ci,
|
|
204
207
|
packageManager: this.options.packageManager,
|
|
205
208
|
});
|
|
206
209
|
|
|
207
|
-
this.composeWith('pob:common:husky', {});
|
|
208
|
-
|
|
209
210
|
this.composeWith('pob:common:format-lint', {
|
|
210
211
|
monorepo: true,
|
|
211
212
|
documentation: this.pobLernaConfig.documentation,
|
|
@@ -152,19 +152,6 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
152
152
|
|
|
153
153
|
packageUtils.removeDevDependencies(pkg, ['standard-version']);
|
|
154
154
|
|
|
155
|
-
const getPobConfig = (config) => ({
|
|
156
|
-
...(config &&
|
|
157
|
-
config.pob &&
|
|
158
|
-
(config.pob['pob-config'] || config.pob.lib || config.pob.app)),
|
|
159
|
-
});
|
|
160
|
-
// ynnub doesnt use babel but still have typescript
|
|
161
|
-
// const withTypescript = this.packagePaths.some((packagePath) =>
|
|
162
|
-
// this.fs.exists(this.destinationPath(`${packagePath}/tsconfig.json`)),
|
|
163
|
-
// );
|
|
164
|
-
const withTests = this.packagesConfig.some(
|
|
165
|
-
(config) => getPobConfig(config).testing,
|
|
166
|
-
);
|
|
167
|
-
|
|
168
155
|
const monorepoConfig = this.config.get('monorepo');
|
|
169
156
|
const packageManager = this.npm ? 'npm' : 'yarn';
|
|
170
157
|
const useYarnWorkspacesCommand =
|
|
@@ -205,14 +192,6 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
205
192
|
),
|
|
206
193
|
);
|
|
207
194
|
|
|
208
|
-
packageUtils.addOrRemoveScripts(pkg, withTests, {
|
|
209
|
-
test: `${
|
|
210
|
-
useYarnWorkspacesCommand
|
|
211
|
-
? 'yarn workspaces foreach --parallel -Av run'
|
|
212
|
-
: 'lerna run --stream'
|
|
213
|
-
} test`,
|
|
214
|
-
});
|
|
215
|
-
|
|
216
195
|
packageUtils.addOrRemoveScripts(pkg, withBabel, {
|
|
217
196
|
build: `${
|
|
218
197
|
useYarnWorkspacesCommand
|
package/lib/utils/package.js
CHANGED
|
@@ -37,9 +37,6 @@ export const hasReact = (pkg) =>
|
|
|
37
37
|
(pkg.peerDependencies && pkg.peerDependencies.react)
|
|
38
38
|
);
|
|
39
39
|
|
|
40
|
-
export const hasJest = (pkg) =>
|
|
41
|
-
!!(pkg.devDependencies && pkg.devDependencies.jest);
|
|
42
|
-
|
|
43
40
|
export const sort = function sort(pkg) {
|
|
44
41
|
return sortPkg(pkg);
|
|
45
42
|
};
|
|
@@ -80,8 +77,9 @@ const internalRemoveDependencies = (pkg, type, dependencyKeys) => {
|
|
|
80
77
|
internalRemoveFromObject(pkg, type, dependencyKeys);
|
|
81
78
|
};
|
|
82
79
|
|
|
83
|
-
const getVersionFromDependencyName = (dependency) =>
|
|
84
|
-
pobDependencies[dependency];
|
|
80
|
+
const getVersionFromDependencyName = (dependency) => {
|
|
81
|
+
return pobDependencies[dependency];
|
|
82
|
+
};
|
|
85
83
|
|
|
86
84
|
const internalAddDependencies = (pkg, type, dependencies, cleaned, prefix) => {
|
|
87
85
|
const ignoreDependencies =
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pob",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.4.0",
|
|
4
4
|
"description": "Pile of bones, library generator with git/babel/typescript/typedoc/readme/jest",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"skeleton"
|
|
@@ -63,12 +63,12 @@
|
|
|
63
63
|
"mem-fs-editor": "8.1.2",
|
|
64
64
|
"minimist-argv": "^1.1.0",
|
|
65
65
|
"parse-author": "^2.0.0",
|
|
66
|
-
"pob-dependencies": "^6.0.
|
|
66
|
+
"pob-dependencies": "^6.0.6",
|
|
67
67
|
"prettier": "2.5.1",
|
|
68
68
|
"semver": "^7.3.4",
|
|
69
69
|
"update-notifier": "^5.0.1",
|
|
70
70
|
"yeoman-environment": "^3.5.1",
|
|
71
71
|
"yeoman-generator": "^5.4.0"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "578f2d74ffe7819f88444604226014077a3ba869"
|
|
74
74
|
}
|