pob 19.1.1 → 20.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 +22 -0
- package/lib/generators/app/PobAppGenerator.js +120 -120
- package/lib/generators/app/e2e-testing/AppE2ETestingGenerator.js +11 -11
- package/lib/generators/app/ignorePaths.js +24 -24
- package/lib/generators/app/nextjs/AppNextjsGenerator.js +9 -9
- package/lib/generators/app/remix/AppRemixGenerator.js +7 -7
- package/lib/generators/common/babel/CommonBabelGenerator.js +146 -146
- package/lib/generators/common/format-lint/CommonLintGenerator.js +185 -185
- package/lib/generators/common/format-lint/updateEslintConfig.js +14 -15
- package/lib/generators/common/husky/CommonHuskyGenerator.js +44 -44
- package/lib/generators/common/old-dependencies/CommonRemoveOldDependenciesGenerator.js +44 -44
- package/lib/generators/common/release/CommonReleaseGenerator.js +40 -40
- package/lib/generators/common/testing/CommonTestingGenerator.js +190 -190
- package/lib/generators/common/testing/templates/index.js +3 -3
- package/lib/generators/common/transpiler/CommonTranspilerGenerator.js +163 -163
- package/lib/generators/common/typescript/CommonTypescriptGenerator.js +79 -79
- package/lib/generators/common/typescript/templates/tsconfig.js.json.ejs +12 -0
- package/lib/generators/core/ci/CoreCIGenerator.js +72 -72
- package/lib/generators/core/clean/CoreCleanGenerator.js +4 -4
- package/lib/generators/core/editorconfig/CoreEditorConfigGenerator.js +3 -3
- package/lib/generators/core/git/CoreGitGenerator.js +43 -43
- package/lib/generators/core/git/generators/github/CoreGitGithubGenerator.js +43 -43
- package/lib/generators/core/gitignore/CoreGitignoreGenerator.js +19 -19
- package/lib/generators/core/npm/CoreNpmGenerator.js +20 -20
- package/lib/generators/core/package/CorePackageGenerator.js +98 -98
- package/lib/generators/core/package/askName.js +4 -4
- package/lib/generators/core/renovate/CoreRenovateGenerator.js +28 -28
- package/lib/generators/core/sort-package/CoreSortPackageGenerator.js +6 -6
- package/lib/generators/core/vscode/CoreVSCodeGenerator.js +43 -43
- package/lib/generators/core/yarn/CoreYarnGenerator.js +70 -70
- package/lib/generators/lib/PobLibGenerator.js +111 -111
- package/lib/generators/lib/doc/LibDocGenerator.js +45 -45
- package/lib/generators/lib/readme/LibReadmeGenerator.js +21 -21
- package/lib/generators/monorepo/PobMonorepoGenerator.js +89 -89
- package/lib/generators/monorepo/lerna/MonorepoLernaGenerator.js +47 -47
- package/lib/generators/monorepo/typescript/MonorepoTypescriptGenerator.js +38 -38
- package/lib/generators/monorepo/workspaces/MonorepoWorkspacesGenerator.js +57 -57
- package/lib/generators/pob/PobBaseGenerator.js +81 -81
- package/lib/pob-dirname.cjs +1 -1
- package/lib/pob.js +143 -143
- package/lib/utils/dependenciesPackages.cjs +4 -4
- package/lib/utils/ensureJsonFileFormatted.js +5 -5
- package/lib/utils/inMonorepo.js +8 -8
- package/lib/utils/json5.js +1 -1
- package/lib/utils/package.js +43 -43
- package/lib/utils/packagejson.cjs +2 -2
- package/lib/utils/templateUtils.js +1 -1
- package/lib/utils/writeAndFormat.js +9 -10
- package/package.json +10 -10
package/lib/utils/package.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import sortObject from
|
|
2
|
-
import sortPkg from
|
|
3
|
-
import parseAuthor from
|
|
4
|
-
import pobDependencies from
|
|
5
|
-
import semver from
|
|
1
|
+
import sortObject from "@pob/sort-object";
|
|
2
|
+
import sortPkg from "@pob/sort-pkg";
|
|
3
|
+
import parseAuthor from "parse-author";
|
|
4
|
+
import pobDependencies from "pob-dependencies";
|
|
5
|
+
import semver from "semver";
|
|
6
6
|
import {
|
|
7
7
|
pobEslintConfig,
|
|
8
8
|
pobEslintConfigTypescript,
|
|
9
9
|
pobEslintConfigTypescriptReact,
|
|
10
|
-
} from
|
|
11
|
-
import pobPkg from
|
|
10
|
+
} from "./dependenciesPackages.cjs";
|
|
11
|
+
import pobPkg from "./packagejson.cjs";
|
|
12
12
|
|
|
13
|
-
export { default as parseAuthor } from
|
|
13
|
+
export { default as parseAuthor } from "parse-author";
|
|
14
14
|
|
|
15
15
|
export const parsePkgAuthor = (pkg) =>
|
|
16
|
-
typeof pkg.author ===
|
|
16
|
+
typeof pkg.author === "string" ? parseAuthor(pkg.author) : pkg.author;
|
|
17
17
|
|
|
18
18
|
export const hasLerna = (pkg) =>
|
|
19
19
|
!!(pkg.devDependencies && pkg.devDependencies.lerna);
|
|
@@ -21,24 +21,24 @@ export const hasLerna = (pkg) =>
|
|
|
21
21
|
export const hasBabel = (pkg) =>
|
|
22
22
|
!!(
|
|
23
23
|
pkg.devDependencies &&
|
|
24
|
-
(pkg.devDependencies[
|
|
24
|
+
(pkg.devDependencies["pob-babel"] || pkg.devDependencies["@babel/core"])
|
|
25
25
|
);
|
|
26
26
|
|
|
27
27
|
export const transpileWithEsbuild = (pkg) =>
|
|
28
|
-
!!(pkg.devDependencies && pkg.devDependencies[
|
|
28
|
+
!!(pkg.devDependencies && pkg.devDependencies["jest-esbuild"]);
|
|
29
29
|
|
|
30
30
|
export const transpileWithBabel = (pkg) =>
|
|
31
31
|
!!(
|
|
32
32
|
(pkg.devDependencies &&
|
|
33
|
-
(pkg.devDependencies[
|
|
33
|
+
(pkg.devDependencies["pob-babel"] ||
|
|
34
34
|
pkg.devDependencies.next ||
|
|
35
|
-
pkg.devDependencies[
|
|
36
|
-
pkg.devDependencies[
|
|
35
|
+
pkg.devDependencies["@yarnpkg/builder"] ||
|
|
36
|
+
pkg.devDependencies["alp-dev"])) ||
|
|
37
37
|
// alp-dev has pob-babel in dependencies
|
|
38
38
|
(pkg.dependencies &&
|
|
39
|
-
(pkg.dependencies[
|
|
39
|
+
(pkg.dependencies["pob-babel"] ||
|
|
40
40
|
pkg.dependencies.next ||
|
|
41
|
-
pkg.dependencies[
|
|
41
|
+
pkg.dependencies["alp-dev"]))
|
|
42
42
|
);
|
|
43
43
|
|
|
44
44
|
export const hasReact = (pkg) =>
|
|
@@ -52,7 +52,7 @@ export const sort = function sort(pkg) {
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
function internalAddToObject(pkg, key, object) {
|
|
55
|
-
if (typeof object !==
|
|
55
|
+
if (typeof object !== "object") {
|
|
56
56
|
throw new TypeError(`Invalid type object ${typeof object} passed`);
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -61,9 +61,9 @@ function internalAddToObject(pkg, key, object) {
|
|
|
61
61
|
sort(pkg);
|
|
62
62
|
}
|
|
63
63
|
const value = pkg[key];
|
|
64
|
-
if (typeof value !==
|
|
64
|
+
if (typeof value !== "object") {
|
|
65
65
|
throw new TypeError(
|
|
66
|
-
`Invalid type value ${typeof value} for package key "${key}"
|
|
66
|
+
`Invalid type value ${typeof value} for package key "${key}"`
|
|
67
67
|
);
|
|
68
68
|
}
|
|
69
69
|
Object.assign(value, object);
|
|
@@ -80,10 +80,10 @@ function internalRemoveFromObject(pkg, key, keys) {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
const cleanVersion = (version) => version.replace(/^(\^|~)/,
|
|
83
|
+
const cleanVersion = (version) => version.replace(/^(\^|~)/, "");
|
|
84
84
|
|
|
85
85
|
const internalRemoveDependencies = (pkg, type, dependencyKeys) => {
|
|
86
|
-
if (pkg.name ===
|
|
86
|
+
if (pkg.name === "pob-dependencies") return;
|
|
87
87
|
internalRemoveFromObject(pkg, type, dependencyKeys);
|
|
88
88
|
};
|
|
89
89
|
|
|
@@ -91,26 +91,26 @@ const getVersionFromDependencyName = (dependency) => {
|
|
|
91
91
|
if (
|
|
92
92
|
[
|
|
93
93
|
// 'eslint-import-resolver-node',
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
"eslint-plugin-import",
|
|
95
|
+
"eslint-plugin-node",
|
|
96
|
+
"eslint-plugin-unicorn",
|
|
97
97
|
].includes(dependency)
|
|
98
98
|
) {
|
|
99
99
|
return pobEslintConfig.dependencies[dependency];
|
|
100
100
|
}
|
|
101
|
-
if ([
|
|
101
|
+
if (["eslint-plugin-jsx-a11y", "eslint-plugin-react"].includes(dependency)) {
|
|
102
102
|
return pobEslintConfigTypescriptReact.dependencies[dependency];
|
|
103
103
|
}
|
|
104
104
|
if (
|
|
105
|
-
[
|
|
106
|
-
dependency
|
|
105
|
+
["@typescript-eslint/eslint-plugin", "@typescript-eslint/parser"].includes(
|
|
106
|
+
dependency
|
|
107
107
|
)
|
|
108
108
|
) {
|
|
109
109
|
return pobEslintConfigTypescript.dependencies[dependency];
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
// prevents cycle that lerna doesnt like
|
|
113
|
-
if (dependency ===
|
|
113
|
+
if (dependency === "@pob/root") {
|
|
114
114
|
return pobPkg.devDependencies[dependency];
|
|
115
115
|
}
|
|
116
116
|
|
|
@@ -119,7 +119,7 @@ const getVersionFromDependencyName = (dependency) => {
|
|
|
119
119
|
|
|
120
120
|
const internalAddDependencies = (pkg, type, dependencies, cleaned, prefix) => {
|
|
121
121
|
const ignoreDependencies =
|
|
122
|
-
type ===
|
|
122
|
+
type === "dependencies" ? {} : pkg.dependencies || {};
|
|
123
123
|
const currentDependencies = pkg[type];
|
|
124
124
|
const removeDependencies = [];
|
|
125
125
|
|
|
@@ -153,10 +153,10 @@ const internalAddDependencies = (pkg, type, dependencies, cleaned, prefix) => {
|
|
|
153
153
|
const potentialNewVersionCleaned = cleanVersion(potentialNewVersion);
|
|
154
154
|
const getNewVersion = () =>
|
|
155
155
|
cleaned
|
|
156
|
-
? `${prefix ||
|
|
156
|
+
? `${prefix || ""}${potentialNewVersionCleaned}`
|
|
157
157
|
: potentialNewVersion;
|
|
158
158
|
try {
|
|
159
|
-
if (currentVersion ===
|
|
159
|
+
if (currentVersion === "workspace:*") {
|
|
160
160
|
// the package is in the monorepo
|
|
161
161
|
} else if (
|
|
162
162
|
!currentVersion ||
|
|
@@ -169,7 +169,7 @@ const internalAddDependencies = (pkg, type, dependencies, cleaned, prefix) => {
|
|
|
169
169
|
filtredDependencies[dependency] = getNewVersion();
|
|
170
170
|
} else if (potentialNewVersion !== currentVersion) {
|
|
171
171
|
console.warn(
|
|
172
|
-
`dependency "${dependency}" has a higher version: expected ${potentialNewVersion}, actual: ${currentVersion}
|
|
172
|
+
`dependency "${dependency}" has a higher version: expected ${potentialNewVersion}, actual: ${currentVersion}.`
|
|
173
173
|
);
|
|
174
174
|
}
|
|
175
175
|
} catch {
|
|
@@ -185,19 +185,19 @@ const internalAddDependencies = (pkg, type, dependencies, cleaned, prefix) => {
|
|
|
185
185
|
};
|
|
186
186
|
|
|
187
187
|
export function addDependencies(pkg, dependencies, prefix) {
|
|
188
|
-
internalAddDependencies(pkg,
|
|
188
|
+
internalAddDependencies(pkg, "dependencies", dependencies, !!prefix, prefix);
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
export function removeDependencies(pkg, dependencies) {
|
|
192
|
-
internalRemoveDependencies(pkg,
|
|
192
|
+
internalRemoveDependencies(pkg, "dependencies", dependencies);
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
export function addDependenciesMeta(pkg, dependenciesMeta) {
|
|
196
|
-
internalAddToObject(pkg,
|
|
196
|
+
internalAddToObject(pkg, "dependenciesMeta", dependenciesMeta);
|
|
197
197
|
}
|
|
198
198
|
|
|
199
199
|
export function removeDependenciesMeta(pkg, dependenciesMetaKeys) {
|
|
200
|
-
internalRemoveFromObject(pkg,
|
|
200
|
+
internalRemoveFromObject(pkg, "dependenciesMeta", dependenciesMetaKeys);
|
|
201
201
|
}
|
|
202
202
|
|
|
203
203
|
export function addOrRemoveDependenciesMeta(pkg, condition, dependenciesMeta) {
|
|
@@ -209,16 +209,16 @@ export function addOrRemoveDependenciesMeta(pkg, condition, dependenciesMeta) {
|
|
|
209
209
|
}
|
|
210
210
|
|
|
211
211
|
export function addDevDependencies(pkg, dependencies) {
|
|
212
|
-
internalAddDependencies(pkg,
|
|
212
|
+
internalAddDependencies(pkg, "devDependencies", dependencies, true);
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
export function removeDevDependencies(pkg, dependencies, forceEvenIfInPeerDep) {
|
|
216
216
|
internalRemoveDependencies(
|
|
217
217
|
pkg,
|
|
218
|
-
|
|
218
|
+
"devDependencies",
|
|
219
219
|
pkg.peerDependencies && !forceEvenIfInPeerDep
|
|
220
220
|
? dependencies.filter((d) => !pkg.peerDependencies[d])
|
|
221
|
-
: dependencies
|
|
221
|
+
: dependencies
|
|
222
222
|
);
|
|
223
223
|
}
|
|
224
224
|
|
|
@@ -235,7 +235,7 @@ export function addOrRemoveDevDependencies(pkg, condition, dependencies) {
|
|
|
235
235
|
export function removeDevAndNotDevDependencies(
|
|
236
236
|
pkg,
|
|
237
237
|
dependencies,
|
|
238
|
-
forceEvenIfInPeerDep
|
|
238
|
+
forceEvenIfInPeerDep
|
|
239
239
|
) {
|
|
240
240
|
removeDevDependencies(pkg, dependencies, forceEvenIfInPeerDep);
|
|
241
241
|
removeDependencies(pkg, dependencies, forceEvenIfInPeerDep);
|
|
@@ -245,16 +245,16 @@ export function updateDevDependenciesIfPresent(pkg, dependencies) {
|
|
|
245
245
|
if (!pkg.devDependencies) return;
|
|
246
246
|
return addDevDependencies(
|
|
247
247
|
pkg,
|
|
248
|
-
dependencies.filter((d) => pkg.devDependencies[d])
|
|
248
|
+
dependencies.filter((d) => pkg.devDependencies[d])
|
|
249
249
|
);
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
export function addScripts(pkg, scripts) {
|
|
253
|
-
internalAddToObject(pkg,
|
|
253
|
+
internalAddToObject(pkg, "scripts", scripts);
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
export function removeScripts(pkg, keys) {
|
|
257
|
-
internalRemoveFromObject(pkg,
|
|
257
|
+
internalRemoveFromObject(pkg, "scripts", keys);
|
|
258
258
|
}
|
|
259
259
|
|
|
260
260
|
export function addOrRemoveScripts(pkg, condition, scripts) {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = require(
|
|
3
|
+
module.exports = require("../../package.json");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import prettier from
|
|
1
|
+
import prettier from "prettier";
|
|
2
2
|
|
|
3
3
|
export function writeAndFormat(fs, destinationPath, content, { parser } = {}) {
|
|
4
4
|
fs.write(
|
|
@@ -6,23 +6,22 @@ export function writeAndFormat(fs, destinationPath, content, { parser } = {}) {
|
|
|
6
6
|
prettier.format(content, {
|
|
7
7
|
parser,
|
|
8
8
|
filepath: destinationPath,
|
|
9
|
-
trailingComma:
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}),
|
|
9
|
+
trailingComma: "all",
|
|
10
|
+
arrowParens: "always",
|
|
11
|
+
printWidth: destinationPath === ".yarnrc.yml" ? 9999 : undefined,
|
|
12
|
+
})
|
|
14
13
|
);
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
function getParserFromDestinationPath(destinationPath) {
|
|
18
|
-
if (destinationPath.endsWith(
|
|
19
|
-
return
|
|
17
|
+
if (destinationPath.endsWith("/lerna.json")) {
|
|
18
|
+
return "json-stringify";
|
|
20
19
|
}
|
|
21
|
-
if (destinationPath.endsWith(
|
|
20
|
+
if (destinationPath.endsWith("json")) {
|
|
22
21
|
return undefined;
|
|
23
22
|
}
|
|
24
23
|
|
|
25
|
-
return
|
|
24
|
+
return "json";
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
export function writeAndFormatJson(fs, destinationPath, value) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pob",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
4
4
|
"description": "Pile of bones, library generator with git/babel/typescript/typedoc/readme/jest",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"skeleton"
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
"pob": {},
|
|
40
40
|
"prettier": "@pob/root/prettier-config",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@pob/eslint-config": "55.
|
|
43
|
-
"@pob/eslint-config-typescript": "55.
|
|
44
|
-
"@pob/eslint-config-typescript-react": "55.
|
|
45
|
-
"@pob/sort-eslint-config": "5.3.
|
|
46
|
-
"@pob/sort-object": "6.3.
|
|
47
|
-
"@pob/sort-pkg": "7.1.
|
|
42
|
+
"@pob/eslint-config": "55.3.0",
|
|
43
|
+
"@pob/eslint-config-typescript": "55.3.0",
|
|
44
|
+
"@pob/eslint-config-typescript-react": "55.3.0",
|
|
45
|
+
"@pob/sort-eslint-config": "5.3.1",
|
|
46
|
+
"@pob/sort-object": "6.3.1",
|
|
47
|
+
"@pob/sort-pkg": "7.1.1",
|
|
48
48
|
"@types/inquirer": "9.0.7",
|
|
49
49
|
"@yarnpkg/cli": "4.2.1",
|
|
50
50
|
"@yarnpkg/core": "4.0.5",
|
|
@@ -62,15 +62,15 @@
|
|
|
62
62
|
"mem-fs-editor": "11.0.0",
|
|
63
63
|
"minimist": "1.2.8",
|
|
64
64
|
"parse-author": "2.0.0",
|
|
65
|
-
"pob-dependencies": "11.
|
|
65
|
+
"pob-dependencies": "11.3.1",
|
|
66
66
|
"prettier": "2.8.8",
|
|
67
67
|
"semver": "7.6.0",
|
|
68
68
|
"validate-npm-package-name": "^5.0.0",
|
|
69
|
-
"yarn-workspace-utils": "3.
|
|
69
|
+
"yarn-workspace-utils": "3.5.1",
|
|
70
70
|
"yeoman-environment": "4.4.0",
|
|
71
71
|
"yeoman-generator": "7.1.1"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@pob/root": "
|
|
74
|
+
"@pob/root": "10.0.0"
|
|
75
75
|
}
|
|
76
76
|
}
|