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.
Files changed (49) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/lib/generators/app/PobAppGenerator.js +120 -120
  3. package/lib/generators/app/e2e-testing/AppE2ETestingGenerator.js +11 -11
  4. package/lib/generators/app/ignorePaths.js +24 -24
  5. package/lib/generators/app/nextjs/AppNextjsGenerator.js +9 -9
  6. package/lib/generators/app/remix/AppRemixGenerator.js +7 -7
  7. package/lib/generators/common/babel/CommonBabelGenerator.js +146 -146
  8. package/lib/generators/common/format-lint/CommonLintGenerator.js +185 -185
  9. package/lib/generators/common/format-lint/updateEslintConfig.js +14 -15
  10. package/lib/generators/common/husky/CommonHuskyGenerator.js +44 -44
  11. package/lib/generators/common/old-dependencies/CommonRemoveOldDependenciesGenerator.js +44 -44
  12. package/lib/generators/common/release/CommonReleaseGenerator.js +40 -40
  13. package/lib/generators/common/testing/CommonTestingGenerator.js +190 -190
  14. package/lib/generators/common/testing/templates/index.js +3 -3
  15. package/lib/generators/common/transpiler/CommonTranspilerGenerator.js +163 -163
  16. package/lib/generators/common/typescript/CommonTypescriptGenerator.js +79 -79
  17. package/lib/generators/common/typescript/templates/tsconfig.js.json.ejs +12 -0
  18. package/lib/generators/core/ci/CoreCIGenerator.js +72 -72
  19. package/lib/generators/core/clean/CoreCleanGenerator.js +4 -4
  20. package/lib/generators/core/editorconfig/CoreEditorConfigGenerator.js +3 -3
  21. package/lib/generators/core/git/CoreGitGenerator.js +43 -43
  22. package/lib/generators/core/git/generators/github/CoreGitGithubGenerator.js +43 -43
  23. package/lib/generators/core/gitignore/CoreGitignoreGenerator.js +19 -19
  24. package/lib/generators/core/npm/CoreNpmGenerator.js +20 -20
  25. package/lib/generators/core/package/CorePackageGenerator.js +98 -98
  26. package/lib/generators/core/package/askName.js +4 -4
  27. package/lib/generators/core/renovate/CoreRenovateGenerator.js +28 -28
  28. package/lib/generators/core/sort-package/CoreSortPackageGenerator.js +6 -6
  29. package/lib/generators/core/vscode/CoreVSCodeGenerator.js +43 -43
  30. package/lib/generators/core/yarn/CoreYarnGenerator.js +70 -70
  31. package/lib/generators/lib/PobLibGenerator.js +111 -111
  32. package/lib/generators/lib/doc/LibDocGenerator.js +45 -45
  33. package/lib/generators/lib/readme/LibReadmeGenerator.js +21 -21
  34. package/lib/generators/monorepo/PobMonorepoGenerator.js +89 -89
  35. package/lib/generators/monorepo/lerna/MonorepoLernaGenerator.js +47 -47
  36. package/lib/generators/monorepo/typescript/MonorepoTypescriptGenerator.js +38 -38
  37. package/lib/generators/monorepo/workspaces/MonorepoWorkspacesGenerator.js +57 -57
  38. package/lib/generators/pob/PobBaseGenerator.js +81 -81
  39. package/lib/pob-dirname.cjs +1 -1
  40. package/lib/pob.js +143 -143
  41. package/lib/utils/dependenciesPackages.cjs +4 -4
  42. package/lib/utils/ensureJsonFileFormatted.js +5 -5
  43. package/lib/utils/inMonorepo.js +8 -8
  44. package/lib/utils/json5.js +1 -1
  45. package/lib/utils/package.js +43 -43
  46. package/lib/utils/packagejson.cjs +2 -2
  47. package/lib/utils/templateUtils.js +1 -1
  48. package/lib/utils/writeAndFormat.js +9 -10
  49. package/package.json +10 -10
@@ -1,19 +1,19 @@
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';
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 './dependenciesPackages.cjs';
11
- import pobPkg from './packagejson.cjs';
10
+ } from "./dependenciesPackages.cjs";
11
+ import pobPkg from "./packagejson.cjs";
12
12
 
13
- export { default as parseAuthor } from 'parse-author';
13
+ export { default as parseAuthor } from "parse-author";
14
14
 
15
15
  export const parsePkgAuthor = (pkg) =>
16
- typeof pkg.author === 'string' ? parseAuthor(pkg.author) : 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['pob-babel'] || pkg.devDependencies['@babel/core'])
24
+ (pkg.devDependencies["pob-babel"] || pkg.devDependencies["@babel/core"])
25
25
  );
26
26
 
27
27
  export const transpileWithEsbuild = (pkg) =>
28
- !!(pkg.devDependencies && pkg.devDependencies['jest-esbuild']);
28
+ !!(pkg.devDependencies && pkg.devDependencies["jest-esbuild"]);
29
29
 
30
30
  export const transpileWithBabel = (pkg) =>
31
31
  !!(
32
32
  (pkg.devDependencies &&
33
- (pkg.devDependencies['pob-babel'] ||
33
+ (pkg.devDependencies["pob-babel"] ||
34
34
  pkg.devDependencies.next ||
35
- pkg.devDependencies['@yarnpkg/builder'] ||
36
- pkg.devDependencies['alp-dev'])) ||
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['pob-babel'] ||
39
+ (pkg.dependencies["pob-babel"] ||
40
40
  pkg.dependencies.next ||
41
- pkg.dependencies['alp-dev']))
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 !== '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 !== 'object') {
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 === 'pob-dependencies') return;
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
- 'eslint-plugin-import',
95
- 'eslint-plugin-node',
96
- 'eslint-plugin-unicorn',
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 (['eslint-plugin-jsx-a11y', 'eslint-plugin-react'].includes(dependency)) {
101
+ if (["eslint-plugin-jsx-a11y", "eslint-plugin-react"].includes(dependency)) {
102
102
  return pobEslintConfigTypescriptReact.dependencies[dependency];
103
103
  }
104
104
  if (
105
- ['@typescript-eslint/eslint-plugin', '@typescript-eslint/parser'].includes(
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 === '@pob/root') {
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 === 'dependencies' ? {} : pkg.dependencies || {};
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 || ''}${potentialNewVersionCleaned}`
156
+ ? `${prefix || ""}${potentialNewVersionCleaned}`
157
157
  : potentialNewVersion;
158
158
  try {
159
- if (currentVersion === 'workspace:*') {
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, 'dependencies', dependencies, !!prefix, prefix);
188
+ internalAddDependencies(pkg, "dependencies", dependencies, !!prefix, prefix);
189
189
  }
190
190
 
191
191
  export function removeDependencies(pkg, dependencies) {
192
- internalRemoveDependencies(pkg, 'dependencies', dependencies);
192
+ internalRemoveDependencies(pkg, "dependencies", dependencies);
193
193
  }
194
194
 
195
195
  export function addDependenciesMeta(pkg, dependenciesMeta) {
196
- internalAddToObject(pkg, 'dependenciesMeta', dependenciesMeta);
196
+ internalAddToObject(pkg, "dependenciesMeta", dependenciesMeta);
197
197
  }
198
198
 
199
199
  export function removeDependenciesMeta(pkg, dependenciesMetaKeys) {
200
- internalRemoveFromObject(pkg, 'dependenciesMeta', dependenciesMetaKeys);
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, 'devDependencies', dependencies, true);
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
- 'devDependencies',
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, 'scripts', scripts);
253
+ internalAddToObject(pkg, "scripts", scripts);
254
254
  }
255
255
 
256
256
  export function removeScripts(pkg, keys) {
257
- internalRemoveFromObject(pkg, 'scripts', keys);
257
+ internalRemoveFromObject(pkg, "scripts", keys);
258
258
  }
259
259
 
260
260
  export function addOrRemoveScripts(pkg, condition, scripts) {
@@ -1,3 +1,3 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- module.exports = require('../../package.json');
3
+ module.exports = require("../../package.json");
@@ -2,5 +2,5 @@ export function addOrRemoveTemplate(
2
2
  fs,
3
3
  condition,
4
4
  destinationPath,
5
- templatePath,
5
+ templatePath
6
6
  ) {}
@@ -1,4 +1,4 @@
1
- import prettier from 'prettier';
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: 'all',
10
- singleQuote: !destinationPath.endsWith('.yml'),
11
- arrowParens: 'always',
12
- printWidth: destinationPath === '.yarnrc.yml' ? 9999 : undefined,
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('/lerna.json')) {
19
- return 'json-stringify';
17
+ if (destinationPath.endsWith("/lerna.json")) {
18
+ return "json-stringify";
20
19
  }
21
- if (destinationPath.endsWith('json')) {
20
+ if (destinationPath.endsWith("json")) {
22
21
  return undefined;
23
22
  }
24
23
 
25
- return 'json';
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": "19.1.1",
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.2.1",
43
- "@pob/eslint-config-typescript": "55.2.1",
44
- "@pob/eslint-config-typescript-react": "55.2.1",
45
- "@pob/sort-eslint-config": "5.3.0",
46
- "@pob/sort-object": "6.3.0",
47
- "@pob/sort-pkg": "7.1.0",
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.2.4",
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.4.1",
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": "9.5.0"
74
+ "@pob/root": "10.0.0"
75
75
  }
76
76
  }