pob 20.0.0 → 21.0.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 +48 -0
- package/lib/generators/app/PobAppGenerator.js +12 -10
- package/lib/generators/app/e2e-testing/AppE2ETestingGenerator.js +2 -2
- package/lib/generators/app/ignorePaths.js +1 -0
- package/lib/generators/app/nextjs/AppNextjsGenerator.js +1 -1
- package/lib/generators/common/babel/CommonBabelGenerator.js +44 -28
- package/lib/generators/common/format-lint/CommonLintGenerator.js +33 -28
- package/lib/generators/common/format-lint/updateEslintConfig.js +5 -5
- package/lib/generators/common/husky/CommonHuskyGenerator.js +4 -4
- package/lib/generators/common/husky/templates/lint-staged.config.js.txt +1 -1
- package/lib/generators/common/release/CommonReleaseGenerator.js +14 -13
- package/lib/generators/common/release/templates/workflow-release.yml.ejs +2 -2
- package/lib/generators/common/testing/CommonTestingGenerator.js +46 -44
- package/lib/generators/common/transpiler/CommonTranspilerGenerator.js +18 -25
- package/lib/generators/common/typescript/CommonTypescriptGenerator.js +28 -24
- package/lib/generators/core/ci/CoreCIGenerator.js +20 -25
- package/lib/generators/core/clean/CoreCleanGenerator.js +1 -1
- package/lib/generators/core/editorconfig/CoreEditorConfigGenerator.js +1 -1
- package/lib/generators/core/git/CoreGitGenerator.js +6 -6
- package/lib/generators/core/git/generators/github/CoreGitGithubGenerator.js +8 -8
- package/lib/generators/core/gitignore/CoreGitignoreGenerator.js +7 -11
- package/lib/generators/core/npm/CoreNpmGenerator.js +4 -4
- package/lib/generators/core/package/CorePackageGenerator.js +18 -18
- package/lib/generators/core/renovate/CoreRenovateGenerator.js +5 -5
- package/lib/generators/core/sort-package/CoreSortPackageGenerator.js +1 -1
- package/lib/generators/core/vscode/CoreVSCodeGenerator.js +13 -12
- package/lib/generators/core/yarn/CoreYarnGenerator.js +32 -27
- package/lib/generators/lib/PobLibGenerator.js +22 -20
- package/lib/generators/lib/doc/LibDocGenerator.js +9 -9
- package/lib/generators/lib/readme/LibReadmeGenerator.js +7 -7
- package/lib/generators/monorepo/PobMonorepoGenerator.js +19 -18
- package/lib/generators/monorepo/lerna/MonorepoLernaGenerator.js +19 -15
- package/lib/generators/monorepo/typescript/MonorepoTypescriptGenerator.js +6 -6
- package/lib/generators/monorepo/workspaces/MonorepoWorkspacesGenerator.js +23 -19
- package/lib/generators/pob/PobBaseGenerator.js +7 -7
- package/lib/pob.js +33 -33
- package/lib/utils/ensureJsonFileFormatted.js +1 -1
- package/lib/utils/inMonorepo.js +1 -1
- package/lib/utils/package.js +7 -7
- package/lib/utils/packagejson.js +5 -0
- package/lib/utils/templateUtils.js +1 -1
- package/lib/utils/writeAndFormat.js +2 -2
- package/package.json +21 -17
- package/lib/utils/packagejson.cjs +0 -3
|
@@ -19,7 +19,7 @@ export const createYarnProject = async () => {
|
|
|
19
19
|
const configuration = await Configuration.find(
|
|
20
20
|
portablePath,
|
|
21
21
|
// eslint-disable-next-line unicorn/no-array-method-this-argument -- not an array
|
|
22
|
-
getPluginConfiguration()
|
|
22
|
+
getPluginConfiguration(),
|
|
23
23
|
);
|
|
24
24
|
// eslint-disable-next-line unicorn/no-array-method-this-argument -- not an array
|
|
25
25
|
const { project } = await Project.find(configuration, portablePath);
|
|
@@ -28,7 +28,7 @@ export const createYarnProject = async () => {
|
|
|
28
28
|
|
|
29
29
|
const getAppTypes = (configs) => {
|
|
30
30
|
const appConfigs = configs.filter(
|
|
31
|
-
(config) => config && config.project && config.project.type === "app"
|
|
31
|
+
(config) => config && config.project && config.project.type === "app",
|
|
32
32
|
);
|
|
33
33
|
|
|
34
34
|
const appTypes = new Set();
|
|
@@ -44,10 +44,9 @@ const hasDist = (packages, configs) =>
|
|
|
44
44
|
(config, index) =>
|
|
45
45
|
!!(config && config.project && config.project.type === "lib") &&
|
|
46
46
|
!!(
|
|
47
|
-
packages[index].pob
|
|
48
|
-
packages[index].pob
|
|
49
|
-
|
|
50
|
-
)
|
|
47
|
+
packages[index].pob?.babelEnvs?.length > 0 ||
|
|
48
|
+
packages[index].pob?.envs?.length > 0
|
|
49
|
+
),
|
|
51
50
|
);
|
|
52
51
|
|
|
53
52
|
const hasBuild = (packages, configs) =>
|
|
@@ -58,7 +57,7 @@ const hasBuild = (packages, configs) =>
|
|
|
58
57
|
config.project &&
|
|
59
58
|
config.project.type === "app" &&
|
|
60
59
|
config.app.type === "alp-node"
|
|
61
|
-
)
|
|
60
|
+
),
|
|
62
61
|
);
|
|
63
62
|
|
|
64
63
|
export default class PobMonorepoGenerator extends Generator {
|
|
@@ -69,40 +68,42 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
69
68
|
type: Boolean,
|
|
70
69
|
required: false,
|
|
71
70
|
default: false,
|
|
72
|
-
|
|
71
|
+
description: "Avoid asking questions",
|
|
73
72
|
});
|
|
74
73
|
|
|
75
74
|
this.option("isAppProject", {
|
|
76
75
|
type: Boolean,
|
|
77
76
|
required: false,
|
|
78
77
|
default: false,
|
|
79
|
-
|
|
78
|
+
description: "app project, no pusblishing on npm",
|
|
80
79
|
});
|
|
81
80
|
|
|
82
81
|
this.option("packageManager", {
|
|
83
82
|
type: String,
|
|
84
83
|
default: "yarn",
|
|
85
|
-
|
|
84
|
+
description: "yarn or npm",
|
|
86
85
|
});
|
|
87
86
|
|
|
88
87
|
this.option("yarnNodeLinker", {
|
|
89
88
|
type: String,
|
|
90
89
|
required: false,
|
|
91
90
|
default: "pnp",
|
|
92
|
-
|
|
91
|
+
description:
|
|
92
|
+
"Defines what linker should be used for installing Node packages (useful to enable the node-modules plugin), one of: pnp, node-modules.",
|
|
93
93
|
});
|
|
94
94
|
|
|
95
95
|
this.option("onlyLatestLTS", {
|
|
96
96
|
type: Boolean,
|
|
97
97
|
required: true,
|
|
98
|
-
|
|
98
|
+
description: "only latest lts",
|
|
99
99
|
});
|
|
100
100
|
|
|
101
101
|
this.option("disableYarnGitCache", {
|
|
102
102
|
type: Boolean,
|
|
103
103
|
required: false,
|
|
104
104
|
default: false,
|
|
105
|
-
|
|
105
|
+
description:
|
|
106
|
+
"Disable git cache. See https://yarnpkg.com/features/caching#offline-mirror.",
|
|
106
107
|
});
|
|
107
108
|
}
|
|
108
109
|
|
|
@@ -110,7 +111,7 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
110
111
|
const yarnProject = await createYarnProject(this.destinationPath());
|
|
111
112
|
const batches = buildTopologicalOrderBatches(
|
|
112
113
|
yarnProject,
|
|
113
|
-
buildDependenciesMaps(yarnProject)
|
|
114
|
+
buildDependenciesMaps(yarnProject),
|
|
114
115
|
);
|
|
115
116
|
|
|
116
117
|
this.packages = [];
|
|
@@ -119,7 +120,7 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
119
120
|
for (const batch of batches) {
|
|
120
121
|
// sort by name to ensure consistent ordering
|
|
121
122
|
batch.sort((a, b) =>
|
|
122
|
-
getWorkspaceName(a).localeCompare(getWorkspaceName(b), "en")
|
|
123
|
+
getWorkspaceName(a).localeCompare(getWorkspaceName(b), "en"),
|
|
123
124
|
);
|
|
124
125
|
|
|
125
126
|
batch.forEach((workspace) => {
|
|
@@ -208,7 +209,7 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
208
209
|
const packagePaths = this.packageLocations.filter(
|
|
209
210
|
this.pobLernaConfig.typescript
|
|
210
211
|
? (packagePath) => fs.existsSync(`${packagePath}/tsconfig.json`)
|
|
211
|
-
: Boolean
|
|
212
|
+
: Boolean,
|
|
212
213
|
);
|
|
213
214
|
|
|
214
215
|
if (packagePaths.length === 0 && packageNames.length > 0) {
|
|
@@ -313,7 +314,7 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
313
314
|
|
|
314
315
|
if (platform !== "win32") {
|
|
315
316
|
execSync(
|
|
316
|
-
`rm -Rf ${["lib-*", "coverage", "docs"].filter(Boolean).join(" ")}
|
|
317
|
+
`rm -Rf ${["lib-*", "coverage", "docs"].filter(Boolean).join(" ")}`,
|
|
317
318
|
);
|
|
318
319
|
}
|
|
319
320
|
}
|
|
@@ -340,7 +341,7 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
340
341
|
this.destinationPath("rollup.config.mjs"),
|
|
341
342
|
{
|
|
342
343
|
configLocations: rollupConfigs,
|
|
343
|
-
}
|
|
344
|
+
},
|
|
344
345
|
);
|
|
345
346
|
} else {
|
|
346
347
|
this.fs.delete("rollup.config.mjs");
|
|
@@ -10,20 +10,21 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
10
10
|
this.option("isAppProject", {
|
|
11
11
|
type: Boolean,
|
|
12
12
|
default: true,
|
|
13
|
-
|
|
13
|
+
description: "is app project",
|
|
14
14
|
});
|
|
15
15
|
|
|
16
16
|
this.option("packageManager", {
|
|
17
17
|
type: String,
|
|
18
18
|
default: "yarn",
|
|
19
|
-
|
|
19
|
+
description: "yarn or npm",
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
this.option("disableYarnGitCache", {
|
|
23
23
|
type: Boolean,
|
|
24
24
|
required: false,
|
|
25
25
|
default: false,
|
|
26
|
-
|
|
26
|
+
description:
|
|
27
|
+
"Disable git cache. See https://yarnpkg.com/features/caching#offline-mirror.",
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
|
|
@@ -37,18 +38,18 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
37
38
|
this.packagePaths = packagesPaths.flatMap((packagesPath) =>
|
|
38
39
|
existsSync(`${packagesPath}/`)
|
|
39
40
|
? readdirSync(`${packagesPath}/`).map(
|
|
40
|
-
(packageName) => `${packagesPath}/${packageName}
|
|
41
|
+
(packageName) => `${packagesPath}/${packageName}`,
|
|
41
42
|
)
|
|
42
|
-
: []
|
|
43
|
+
: [],
|
|
43
44
|
);
|
|
44
45
|
this.packages = this.packagePaths
|
|
45
46
|
.map((packagePath) =>
|
|
46
|
-
this.fs.readJSON(this.destinationPath(`${packagePath}/package.json`))
|
|
47
|
+
this.fs.readJSON(this.destinationPath(`${packagePath}/package.json`)),
|
|
47
48
|
)
|
|
48
49
|
.filter(Boolean);
|
|
49
50
|
this.packagesConfig = this.packagePaths
|
|
50
51
|
.map((packagePath) =>
|
|
51
|
-
this.fs.readJSON(this.destinationPath(`${packagePath}/.yo-rc.json`))
|
|
52
|
+
this.fs.readJSON(this.destinationPath(`${packagePath}/.yo-rc.json`)),
|
|
52
53
|
)
|
|
53
54
|
.filter(Boolean);
|
|
54
55
|
}
|
|
@@ -58,7 +59,7 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
58
59
|
|
|
59
60
|
const lernaCurrentConfig = this.fs.readJSON(
|
|
60
61
|
this.destinationPath("lerna.json"),
|
|
61
|
-
pkg.lerna || {}
|
|
62
|
+
pkg.lerna || {},
|
|
62
63
|
);
|
|
63
64
|
|
|
64
65
|
this.npm =
|
|
@@ -88,7 +89,7 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
88
89
|
writeAndFormatJson(
|
|
89
90
|
this.fs,
|
|
90
91
|
this.destinationPath("lerna.json"),
|
|
91
|
-
lernaConfig
|
|
92
|
+
lernaConfig,
|
|
92
93
|
);
|
|
93
94
|
}
|
|
94
95
|
|
|
@@ -106,14 +107,17 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
106
107
|
babelEnvs: [],
|
|
107
108
|
...(config && config.pob),
|
|
108
109
|
});
|
|
109
|
-
const withBabel = this.packages.some(
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
const withBabel = this.packages.some((config) => {
|
|
111
|
+
const pobConfig = getPackagePobConfig(config);
|
|
112
|
+
return (
|
|
113
|
+
pobConfig.babelEnvs.length > 0 || pobConfig.bundler === "rollup-babel"
|
|
114
|
+
);
|
|
115
|
+
});
|
|
112
116
|
|
|
113
117
|
// lerna.json
|
|
114
118
|
const lernaConfig = this.fs.readJSON(
|
|
115
119
|
this.destinationPath("lerna.json"),
|
|
116
|
-
{}
|
|
120
|
+
{},
|
|
117
121
|
);
|
|
118
122
|
|
|
119
123
|
// TODO pass that to yarn plugin
|
|
@@ -139,7 +143,7 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
139
143
|
writeAndFormatJson(
|
|
140
144
|
this.fs,
|
|
141
145
|
this.destinationPath("lerna.json"),
|
|
142
|
-
lernaConfig
|
|
146
|
+
lernaConfig,
|
|
143
147
|
);
|
|
144
148
|
}
|
|
145
149
|
|
|
@@ -153,7 +157,7 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
153
157
|
{
|
|
154
158
|
version:
|
|
155
159
|
"YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn && git add yarn.lock",
|
|
156
|
-
}
|
|
160
|
+
},
|
|
157
161
|
);
|
|
158
162
|
|
|
159
163
|
this.fs.writeJSON(this.destinationPath("package.json"), pkg);
|
|
@@ -10,13 +10,13 @@ export default class MonorepoTypescriptGenerator extends Generator {
|
|
|
10
10
|
this.option("enable", {
|
|
11
11
|
type: Boolean,
|
|
12
12
|
default: true,
|
|
13
|
-
|
|
13
|
+
description: "enable typescript",
|
|
14
14
|
});
|
|
15
15
|
|
|
16
16
|
this.option("isAppProject", {
|
|
17
17
|
type: Boolean,
|
|
18
18
|
default: true,
|
|
19
|
-
|
|
19
|
+
description: "app project, no building definitions",
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
this.option("packageNames", {
|
|
@@ -53,7 +53,7 @@ export default class MonorepoTypescriptGenerator extends Generator {
|
|
|
53
53
|
packageUtils.addOrRemoveDevDependencies(
|
|
54
54
|
pkg,
|
|
55
55
|
pkg.name === "@pob/eslint-config-monorepo" || this.options.enable,
|
|
56
|
-
["typescript"]
|
|
56
|
+
["typescript"],
|
|
57
57
|
);
|
|
58
58
|
|
|
59
59
|
if (this.options.enable) {
|
|
@@ -109,7 +109,7 @@ export default class MonorepoTypescriptGenerator extends Generator {
|
|
|
109
109
|
{
|
|
110
110
|
packagePaths,
|
|
111
111
|
tsConfigSuffix: false,
|
|
112
|
-
}
|
|
112
|
+
},
|
|
113
113
|
);
|
|
114
114
|
|
|
115
115
|
if (this.options.testRunner === "node") {
|
|
@@ -119,10 +119,10 @@ export default class MonorepoTypescriptGenerator extends Generator {
|
|
|
119
119
|
tsconfigTestPath,
|
|
120
120
|
{
|
|
121
121
|
packagePaths: packagePaths.filter((packagePath) =>
|
|
122
|
-
existsSync(`${packagePath}/tsconfig.test.json`)
|
|
122
|
+
existsSync(`${packagePath}/tsconfig.test.json`),
|
|
123
123
|
),
|
|
124
124
|
tsConfigSuffix: "test",
|
|
125
|
-
}
|
|
125
|
+
},
|
|
126
126
|
);
|
|
127
127
|
}
|
|
128
128
|
|
|
@@ -11,20 +11,21 @@ export default class MonorepoWorkspacesGenerator extends Generator {
|
|
|
11
11
|
this.option("isAppProject", {
|
|
12
12
|
type: Boolean,
|
|
13
13
|
default: true,
|
|
14
|
-
|
|
14
|
+
description: "is app project",
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
this.option("packageManager", {
|
|
18
18
|
type: String,
|
|
19
19
|
default: "yarn",
|
|
20
|
-
|
|
20
|
+
description: "yarn or npm",
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
this.option("disableYarnGitCache", {
|
|
24
24
|
type: Boolean,
|
|
25
25
|
required: false,
|
|
26
26
|
default: false,
|
|
27
|
-
|
|
27
|
+
description:
|
|
28
|
+
"Disable git cache. See https://yarnpkg.com/features/caching#offline-mirror.",
|
|
28
29
|
});
|
|
29
30
|
}
|
|
30
31
|
|
|
@@ -37,18 +38,18 @@ export default class MonorepoWorkspacesGenerator extends Generator {
|
|
|
37
38
|
this.packagePaths = packagesPaths.flatMap((packagesPath) =>
|
|
38
39
|
existsSync(`${packagesPath}/`)
|
|
39
40
|
? readdirSync(`${packagesPath}/`).map(
|
|
40
|
-
(packageName) => `${packagesPath}/${packageName}
|
|
41
|
+
(packageName) => `${packagesPath}/${packageName}`,
|
|
41
42
|
)
|
|
42
|
-
: []
|
|
43
|
+
: [],
|
|
43
44
|
);
|
|
44
45
|
this.packages = this.packagePaths
|
|
45
46
|
.map((packagePath) =>
|
|
46
|
-
this.fs.readJSON(this.destinationPath(`${packagePath}/package.json`))
|
|
47
|
+
this.fs.readJSON(this.destinationPath(`${packagePath}/package.json`)),
|
|
47
48
|
)
|
|
48
49
|
.filter(Boolean);
|
|
49
50
|
this.packagesConfig = this.packagePaths
|
|
50
51
|
.map((packagePath) =>
|
|
51
|
-
this.fs.readJSON(this.destinationPath(`${packagePath}/.yo-rc.json`))
|
|
52
|
+
this.fs.readJSON(this.destinationPath(`${packagePath}/.yo-rc.json`)),
|
|
52
53
|
)
|
|
53
54
|
.filter(Boolean);
|
|
54
55
|
}
|
|
@@ -60,16 +61,19 @@ export default class MonorepoWorkspacesGenerator extends Generator {
|
|
|
60
61
|
babelEnvs: [],
|
|
61
62
|
...(config && config.pob),
|
|
62
63
|
});
|
|
63
|
-
const withBabel = this.packages.some(
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
const withBabel = this.packages.some((config) => {
|
|
65
|
+
const pobConfig = getPackagePobConfig(config);
|
|
66
|
+
return (
|
|
67
|
+
pobConfig.babelEnvs.length > 0 || pobConfig.bundler === "rollup-babel"
|
|
68
|
+
);
|
|
69
|
+
});
|
|
66
70
|
|
|
67
71
|
// package.json
|
|
68
72
|
const pkg = this.fs.readJSON(this.destinationPath("package.json"), {});
|
|
69
73
|
packageUtils.removeDependencies(pkg, ["@pob/lerna-light"]);
|
|
70
74
|
packageUtils.removeDevDependencies(pkg, ["@pob/lerna-light"]);
|
|
71
75
|
|
|
72
|
-
if (this.npm) {
|
|
76
|
+
if (this.options.packageManager === "npm") {
|
|
73
77
|
if (!pkg.engines) pkg.engines = {};
|
|
74
78
|
pkg.engines.yarn = "< 0.0.0";
|
|
75
79
|
pkg.engines.npm = ">= 6.4.0";
|
|
@@ -84,7 +88,7 @@ export default class MonorepoWorkspacesGenerator extends Generator {
|
|
|
84
88
|
}
|
|
85
89
|
|
|
86
90
|
const monorepoConfig = this.config.get("monorepo");
|
|
87
|
-
const packageManager = this.
|
|
91
|
+
const packageManager = this.options.packageManager;
|
|
88
92
|
|
|
89
93
|
packageUtils.addScripts(pkg, {
|
|
90
94
|
lint: `${packageManager} run lint:prettier && ${packageManager} run lint:eslint`,
|
|
@@ -100,11 +104,11 @@ export default class MonorepoWorkspacesGenerator extends Generator {
|
|
|
100
104
|
: ""
|
|
101
105
|
}eslint --report-unused-disable-directives --resolve-plugins-relative-to . --quiet .`
|
|
102
106
|
: // eslint-disable-next-line unicorn/no-nested-ternary
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
this.options.packageManager === "yarn"
|
|
108
|
+
? `NODE_OPTIONS=--max_old_space_size=4096 eslint --report-unused-disable-directives --resolve-plugins-relative-to . --quiet . --ignore-pattern ${pkg.workspaces.join(
|
|
109
|
+
",",
|
|
110
|
+
)} && yarn workspaces foreach --parallel -Av run lint:eslint`
|
|
111
|
+
: "npm run lint:eslint --workspaces",
|
|
108
112
|
});
|
|
109
113
|
|
|
110
114
|
packageUtils.addOrRemoveScripts(
|
|
@@ -113,7 +117,7 @@ export default class MonorepoWorkspacesGenerator extends Generator {
|
|
|
113
117
|
{
|
|
114
118
|
version:
|
|
115
119
|
"YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn && git add yarn.lock",
|
|
116
|
-
}
|
|
120
|
+
},
|
|
117
121
|
);
|
|
118
122
|
|
|
119
123
|
packageUtils.addOrRemoveScripts(pkg, withBabel, {
|
|
@@ -187,7 +191,7 @@ export default class MonorepoWorkspacesGenerator extends Generator {
|
|
|
187
191
|
{
|
|
188
192
|
cwd: packagePath,
|
|
189
193
|
stdio: "inherit",
|
|
190
|
-
}
|
|
194
|
+
},
|
|
191
195
|
);
|
|
192
196
|
});
|
|
193
197
|
|
|
@@ -11,31 +11,31 @@ export default class PobBaseGenerator extends Generator {
|
|
|
11
11
|
this.option("monorepo", {
|
|
12
12
|
type: Boolean,
|
|
13
13
|
required: false,
|
|
14
|
-
|
|
14
|
+
description: "monorepo",
|
|
15
15
|
});
|
|
16
16
|
|
|
17
17
|
this.option("type", {
|
|
18
18
|
type: String,
|
|
19
19
|
required: true,
|
|
20
|
-
|
|
20
|
+
description: "Type of generator",
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
this.option("updateOnly", {
|
|
24
24
|
type: Boolean,
|
|
25
25
|
required: true,
|
|
26
|
-
|
|
26
|
+
description: "Don't ask questions if we already have the answers",
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
this.option("fromPob", {
|
|
30
30
|
type: Boolean,
|
|
31
31
|
required: true,
|
|
32
|
-
|
|
32
|
+
description: "Don't run yarn or build",
|
|
33
33
|
});
|
|
34
34
|
|
|
35
35
|
this.option("force", {
|
|
36
36
|
type: Boolean,
|
|
37
37
|
required: true,
|
|
38
|
-
|
|
38
|
+
description: "Don't check diff",
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
|
|
@@ -203,7 +203,7 @@ export default class PobBaseGenerator extends Generator {
|
|
|
203
203
|
this.composeWith(
|
|
204
204
|
// pob:monorepo <= for searching PobMonorepoGenerator.js
|
|
205
205
|
fileURLToPath(
|
|
206
|
-
new URL("../monorepo/PobMonorepoGenerator.js", import.meta.url)
|
|
206
|
+
new URL("../monorepo/PobMonorepoGenerator.js", import.meta.url),
|
|
207
207
|
),
|
|
208
208
|
{
|
|
209
209
|
updateOnly: this.options.updateOnly,
|
|
@@ -212,7 +212,7 @@ export default class PobBaseGenerator extends Generator {
|
|
|
212
212
|
packageManager: this.projectConfig.packageManager,
|
|
213
213
|
yarnNodeLinker: this.projectConfig.yarnNodeLinker,
|
|
214
214
|
onlyLatestLTS,
|
|
215
|
-
}
|
|
215
|
+
},
|
|
216
216
|
);
|
|
217
217
|
} else {
|
|
218
218
|
switch (this.projectConfig.type) {
|
package/lib/pob.js
CHANGED
|
@@ -83,157 +83,157 @@ process.on("uncaughtException", (err) => {
|
|
|
83
83
|
env.registerStub(
|
|
84
84
|
PobBaseGenerator,
|
|
85
85
|
"pob",
|
|
86
|
-
`${__dirname}/generators/app/PobAppGenerator.js
|
|
86
|
+
`${__dirname}/generators/app/PobAppGenerator.js`,
|
|
87
87
|
);
|
|
88
88
|
env.registerStub(
|
|
89
89
|
PobAppGenerator,
|
|
90
90
|
"pob:app",
|
|
91
|
-
`${__dirname}/generators/app/PobAppGenerator.js
|
|
91
|
+
`${__dirname}/generators/app/PobAppGenerator.js`,
|
|
92
92
|
);
|
|
93
93
|
env.registerStub(
|
|
94
94
|
AppE2ETestingGenerator,
|
|
95
95
|
"pob:app:e2e-testing",
|
|
96
|
-
`${__dirname}/generators/app/e2e-testing/AppE2ETestingGenerator.js
|
|
96
|
+
`${__dirname}/generators/app/e2e-testing/AppE2ETestingGenerator.js`,
|
|
97
97
|
);
|
|
98
98
|
env.registerStub(
|
|
99
99
|
AppNextjsGenerator,
|
|
100
100
|
"pob:app:nextjs",
|
|
101
|
-
`${__dirname}/generators/app/nextjs/AppNextjsGenerator.js
|
|
101
|
+
`${__dirname}/generators/app/nextjs/AppNextjsGenerator.js`,
|
|
102
102
|
);
|
|
103
103
|
env.registerStub(
|
|
104
104
|
AppRemixGenerator,
|
|
105
105
|
"pob:app:remix",
|
|
106
|
-
`${__dirname}/generators/app/nextjs/AppRemixGenerator.js
|
|
106
|
+
`${__dirname}/generators/app/nextjs/AppRemixGenerator.js`,
|
|
107
107
|
);
|
|
108
108
|
env.registerStub(
|
|
109
109
|
CommonBabelGenerator,
|
|
110
110
|
"pob:common:babel",
|
|
111
|
-
`${__dirname}/generators/common/babel/CommonBabelGenerator.js
|
|
111
|
+
`${__dirname}/generators/common/babel/CommonBabelGenerator.js`,
|
|
112
112
|
);
|
|
113
113
|
env.registerStub(
|
|
114
114
|
CommonTranspilerGenerator,
|
|
115
115
|
"pob:common:transpiler",
|
|
116
|
-
`${__dirname}/generators/common/transpiler/CommonTranspilerGenerator.js
|
|
116
|
+
`${__dirname}/generators/common/transpiler/CommonTranspilerGenerator.js`,
|
|
117
117
|
);
|
|
118
118
|
env.registerStub(
|
|
119
119
|
CommonLintGenerator,
|
|
120
120
|
"pob:common:format-lint",
|
|
121
|
-
`${__dirname}/generators/common/format-lint/CommonLintGenerator.js
|
|
121
|
+
`${__dirname}/generators/common/format-lint/CommonLintGenerator.js`,
|
|
122
122
|
);
|
|
123
123
|
env.registerStub(
|
|
124
124
|
CommonHuskyGenerator,
|
|
125
125
|
"pob:common:husky",
|
|
126
|
-
`${__dirname}/generators/common/husky/CommonHuskyGenerator.js
|
|
126
|
+
`${__dirname}/generators/common/husky/CommonHuskyGenerator.js`,
|
|
127
127
|
);
|
|
128
128
|
env.registerStub(
|
|
129
129
|
CommonRemoveOldDependenciesGenerator,
|
|
130
130
|
"pob:common:remove-old-dependencies",
|
|
131
|
-
`${__dirname}/generators/common/old-dependencies/CommonRemoveOldDependenciesGenerator.js
|
|
131
|
+
`${__dirname}/generators/common/old-dependencies/CommonRemoveOldDependenciesGenerator.js`,
|
|
132
132
|
);
|
|
133
133
|
env.registerStub(
|
|
134
134
|
CommonReleaseGenerator,
|
|
135
135
|
"pob:common:release",
|
|
136
|
-
`${__dirname}/generators/common/release/CommonReleaseGenerator.js
|
|
136
|
+
`${__dirname}/generators/common/release/CommonReleaseGenerator.js`,
|
|
137
137
|
);
|
|
138
138
|
env.registerStub(
|
|
139
139
|
CommonTestingGenerator,
|
|
140
140
|
"pob:common:testing",
|
|
141
|
-
`${__dirname}/generators/common/testing/CommonTestingGenerator.js
|
|
141
|
+
`${__dirname}/generators/common/testing/CommonTestingGenerator.js`,
|
|
142
142
|
);
|
|
143
143
|
env.registerStub(
|
|
144
144
|
CommonTypescriptGenerator,
|
|
145
145
|
"pob:common:typescript",
|
|
146
|
-
`${__dirname}/generators/common/typescript/CommonTypescriptGenerator.js
|
|
146
|
+
`${__dirname}/generators/common/typescript/CommonTypescriptGenerator.js`,
|
|
147
147
|
);
|
|
148
148
|
env.registerStub(
|
|
149
149
|
CoreCIGenerator,
|
|
150
150
|
"pob:core:ci",
|
|
151
|
-
`${__dirname}/generators/core/ci/CoreCIGenerator.js
|
|
151
|
+
`${__dirname}/generators/core/ci/CoreCIGenerator.js`,
|
|
152
152
|
);
|
|
153
153
|
env.registerStub(
|
|
154
154
|
CoreCleanGenerator,
|
|
155
155
|
"pob:core:clean",
|
|
156
|
-
`${__dirname}/generators/core/clean/CoreCleanGenerator.js
|
|
156
|
+
`${__dirname}/generators/core/clean/CoreCleanGenerator.js`,
|
|
157
157
|
);
|
|
158
158
|
env.registerStub(
|
|
159
159
|
CoreEditorConfigGenerator,
|
|
160
160
|
"pob:core:editorconfig",
|
|
161
|
-
`${__dirname}/generators/core/editorconfig/CoreEditorConfigGenerator.js
|
|
161
|
+
`${__dirname}/generators/core/editorconfig/CoreEditorConfigGenerator.js`,
|
|
162
162
|
);
|
|
163
163
|
env.registerStub(
|
|
164
164
|
CoreGitGenerator,
|
|
165
165
|
"pob:core:git",
|
|
166
|
-
`${__dirname}/generators/core/git/CoreGitGenerator.js
|
|
166
|
+
`${__dirname}/generators/core/git/CoreGitGenerator.js`,
|
|
167
167
|
);
|
|
168
168
|
env.registerStub(
|
|
169
169
|
CoreGitGithubGenerator,
|
|
170
170
|
"pob:core:git:github",
|
|
171
|
-
`${__dirname}/generators/core/git/generators/github/CoreGitGithubGenerator.js
|
|
171
|
+
`${__dirname}/generators/core/git/generators/github/CoreGitGithubGenerator.js`,
|
|
172
172
|
);
|
|
173
173
|
env.registerStub(
|
|
174
174
|
CoreGitignoreGenerator,
|
|
175
175
|
"pob:core:gitignore",
|
|
176
|
-
`${__dirname}/generators/core/gitignore/CoreGitignoreGenerator.js
|
|
176
|
+
`${__dirname}/generators/core/gitignore/CoreGitignoreGenerator.js`,
|
|
177
177
|
);
|
|
178
178
|
env.registerStub(
|
|
179
179
|
CoreNpmGenerator,
|
|
180
180
|
"pob:core:npm",
|
|
181
|
-
`${__dirname}/generators/core/npm/CoreNpmGenerator.js
|
|
181
|
+
`${__dirname}/generators/core/npm/CoreNpmGenerator.js`,
|
|
182
182
|
);
|
|
183
183
|
env.registerStub(
|
|
184
184
|
CorePackageGenerator,
|
|
185
185
|
"pob:core:package",
|
|
186
|
-
`${__dirname}/generators/core/package/CorePackageGenerator.js
|
|
186
|
+
`${__dirname}/generators/core/package/CorePackageGenerator.js`,
|
|
187
187
|
);
|
|
188
188
|
env.registerStub(
|
|
189
189
|
CoreRenovateGenerator,
|
|
190
190
|
"pob:core:renovate",
|
|
191
|
-
`${__dirname}/generators/core/renovate/CoreRenovateGenerator.js
|
|
191
|
+
`${__dirname}/generators/core/renovate/CoreRenovateGenerator.js`,
|
|
192
192
|
);
|
|
193
193
|
env.registerStub(
|
|
194
194
|
CoreSortPackageGenerator,
|
|
195
195
|
"pob:core:sort-package",
|
|
196
|
-
`${__dirname}/generators/core/sort-package/CoreSortPackageGenerator.js
|
|
196
|
+
`${__dirname}/generators/core/sort-package/CoreSortPackageGenerator.js`,
|
|
197
197
|
);
|
|
198
198
|
env.registerStub(
|
|
199
199
|
CoreVSCodeGenerator,
|
|
200
200
|
"pob:core:vscode",
|
|
201
|
-
`${__dirname}/generators/core/vscode/CoreVSCodeGenerator.js
|
|
201
|
+
`${__dirname}/generators/core/vscode/CoreVSCodeGenerator.js`,
|
|
202
202
|
);
|
|
203
203
|
env.registerStub(
|
|
204
204
|
CoreYarnGenerator,
|
|
205
205
|
"pob:core:yarn",
|
|
206
|
-
`${__dirname}/generators/core/yarn/CoreYarnGenerator.js
|
|
206
|
+
`${__dirname}/generators/core/yarn/CoreYarnGenerator.js`,
|
|
207
207
|
);
|
|
208
208
|
env.registerStub(
|
|
209
209
|
PobLibGenerator,
|
|
210
210
|
"pob:lib",
|
|
211
|
-
`${__dirname}/generators/lib/PobLibGenerator.js
|
|
211
|
+
`${__dirname}/generators/lib/PobLibGenerator.js`,
|
|
212
212
|
);
|
|
213
213
|
env.registerStub(
|
|
214
214
|
LibDocGenerator,
|
|
215
215
|
"pob:lib:doc",
|
|
216
|
-
`${__dirname}/generators/lib/doc/LibDocGenerator.js
|
|
216
|
+
`${__dirname}/generators/lib/doc/LibDocGenerator.js`,
|
|
217
217
|
);
|
|
218
218
|
env.registerStub(
|
|
219
219
|
LibReadmeGenerator,
|
|
220
220
|
"pob:lib:readme",
|
|
221
|
-
`${__dirname}/generators/lib/readme/LibReadmeGenerator.js
|
|
221
|
+
`${__dirname}/generators/lib/readme/LibReadmeGenerator.js`,
|
|
222
222
|
);
|
|
223
223
|
env.registerStub(
|
|
224
224
|
MonorepoWorkspacesGenerator,
|
|
225
225
|
"pob:monorepo:workspaces",
|
|
226
|
-
`${__dirname}/generators/monorepo/workspaces/MonorepoWorkspacesGenerator.js
|
|
226
|
+
`${__dirname}/generators/monorepo/workspaces/MonorepoWorkspacesGenerator.js`,
|
|
227
227
|
);
|
|
228
228
|
env.registerStub(
|
|
229
229
|
MonorepoLernaGenerator,
|
|
230
230
|
"pob:monorepo:lerna",
|
|
231
|
-
`${__dirname}/generators/monorepo/lerna/MonorepoLernaGenerator.js
|
|
231
|
+
`${__dirname}/generators/monorepo/lerna/MonorepoLernaGenerator.js`,
|
|
232
232
|
);
|
|
233
233
|
env.registerStub(
|
|
234
234
|
MonorepoTypescriptGenerator,
|
|
235
235
|
"pob:monorepo:typescript",
|
|
236
|
-
`${__dirname}/generators/monorepo/typescript/MonorepoTypescriptGenerator.js
|
|
236
|
+
`${__dirname}/generators/monorepo/typescript/MonorepoTypescriptGenerator.js`,
|
|
237
237
|
);
|
|
238
238
|
|
|
239
239
|
const projectPkg = readJson(path.resolve("./package.json"));
|
|
@@ -244,7 +244,7 @@ const action = monorepoArg ? argv._[1] : argv._[0];
|
|
|
244
244
|
if (action === "add") {
|
|
245
245
|
if (!projectPkg.workspaces) {
|
|
246
246
|
throw new Error(
|
|
247
|
-
"Missing workspaces field in package.json: not a lerna repo"
|
|
247
|
+
"Missing workspaces field in package.json: not a lerna repo",
|
|
248
248
|
);
|
|
249
249
|
}
|
|
250
250
|
|
|
@@ -263,7 +263,7 @@ if (action === "add") {
|
|
|
263
263
|
writeFileSync(`${packagesPath}/${packageName}/.yo-rc.json`, "{}");
|
|
264
264
|
writeFileSync(
|
|
265
265
|
`${packagesPath}/${packageName}/package.json`,
|
|
266
|
-
JSON.stringify({ name: packageName, version: "1.0.0-pre" }, null, 2)
|
|
266
|
+
JSON.stringify({ name: packageName, version: "1.0.0-pre" }, null, 2),
|
|
267
267
|
);
|
|
268
268
|
console.log("> Creating new Package");
|
|
269
269
|
spawnSync(process.argv[0], [process.argv[1]], {
|
package/lib/utils/inMonorepo.js
CHANGED
|
@@ -16,7 +16,7 @@ const rootMonorepoPkg =
|
|
|
16
16
|
|
|
17
17
|
const getInMonorepoThings = () => {
|
|
18
18
|
const rootYoConfig = JSON.parse(
|
|
19
|
-
fs.readFileSync(path.resolve(rootMonorepo, ".yo-rc.json"))
|
|
19
|
+
fs.readFileSync(path.resolve(rootMonorepo, ".yo-rc.json")),
|
|
20
20
|
);
|
|
21
21
|
const cwd = process.cwd();
|
|
22
22
|
|