@pinnacle0/webpack-util 0.3.26 → 0.3.27

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 (139) hide show
  1. package/package.json +1 -1
  2. package/src/CanadyarnRunner.d.ts +14 -0
  3. package/src/CanadyarnRunner.js +38 -0
  4. package/src/CanadyarnRunner.js.map +1 -0
  5. package/src/CodeStyleChecker.d.ts +10 -0
  6. package/src/CodeStyleChecker.js +44 -0
  7. package/src/CodeStyleChecker.js.map +1 -0
  8. package/src/Constant.d.ts +21 -0
  9. package/src/{Constant.ts → Constant.js} +5 -1
  10. package/src/Constant.js.map +1 -0
  11. package/src/CoreUtil.d.ts +11 -0
  12. package/src/CoreUtil.js +26 -0
  13. package/src/CoreUtil.js.map +1 -0
  14. package/src/ProjectStructureChecker.d.ts +18 -0
  15. package/src/ProjectStructureChecker.js +113 -0
  16. package/src/ProjectStructureChecker.js.map +1 -0
  17. package/src/TestRunner.d.ts +8 -0
  18. package/src/TestRunner.js +30 -0
  19. package/src/TestRunner.js.map +1 -0
  20. package/src/TypescriptTypeChecker.d.ts +11 -0
  21. package/src/TypescriptTypeChecker.js +32 -0
  22. package/src/TypescriptTypeChecker.js.map +1 -0
  23. package/src/WebpackBuilder.d.ts +38 -0
  24. package/src/{WebpackBuilder.ts → WebpackBuilder.js} +51 -71
  25. package/src/WebpackBuilder.js.map +1 -0
  26. package/src/WebpackConfigGenerator/ConfigEntryDescriptorsFactory.d.ts +13 -0
  27. package/src/WebpackConfigGenerator/{ConfigEntryDescriptorsFactory.ts → ConfigEntryDescriptorsFactory.js} +29 -36
  28. package/src/WebpackConfigGenerator/ConfigEntryDescriptorsFactory.js.map +1 -0
  29. package/src/WebpackConfigGenerator/HTMLWebpackPluginsFactory.d.ts +9 -0
  30. package/src/WebpackConfigGenerator/HTMLWebpackPluginsFactory.js +20 -0
  31. package/src/WebpackConfigGenerator/HTMLWebpackPluginsFactory.js.map +1 -0
  32. package/src/WebpackConfigGenerator/Plugin/css.plugin.d.ts +16 -0
  33. package/src/WebpackConfigGenerator/Plugin/css.plugin.js +33 -0
  34. package/src/WebpackConfigGenerator/Plugin/css.plugin.js.map +1 -0
  35. package/src/WebpackConfigGenerator/Plugin/html.plugin.d.ts +16 -0
  36. package/src/WebpackConfigGenerator/Plugin/html.plugin.js +48 -0
  37. package/src/WebpackConfigGenerator/Plugin/html.plugin.js.map +1 -0
  38. package/src/WebpackConfigGenerator/Plugin/index.d.ts +27 -0
  39. package/src/WebpackConfigGenerator/Plugin/index.js +32 -0
  40. package/src/WebpackConfigGenerator/Plugin/index.js.map +1 -0
  41. package/src/WebpackConfigGenerator/Plugin/moment.plugin.d.ts +10 -0
  42. package/src/WebpackConfigGenerator/Plugin/{moment.plugin.ts → moment.plugin.js} +12 -5
  43. package/src/WebpackConfigGenerator/Plugin/moment.plugin.js.map +1 -0
  44. package/src/WebpackConfigGenerator/Plugin/script-tag-crossorigin-plugin.d.ts +4 -0
  45. package/src/WebpackConfigGenerator/Plugin/script-tag-crossorigin-plugin.js +28 -0
  46. package/src/WebpackConfigGenerator/Plugin/script-tag-crossorigin-plugin.js.map +1 -0
  47. package/src/WebpackConfigGenerator/Plugin/ts.plugin.d.ts +16 -0
  48. package/src/WebpackConfigGenerator/Plugin/ts.plugin.js +31 -0
  49. package/src/WebpackConfigGenerator/Plugin/ts.plugin.js.map +1 -0
  50. package/src/WebpackConfigGenerator/Plugin/webpack.plugin.d.ts +14 -0
  51. package/src/WebpackConfigGenerator/Plugin/webpack.plugin.js +24 -0
  52. package/src/WebpackConfigGenerator/Plugin/webpack.plugin.js.map +1 -0
  53. package/src/WebpackConfigGenerator/Rule/RegExpUtil.d.ts +4 -0
  54. package/src/WebpackConfigGenerator/Rule/{RegExpUtil.ts → RegExpUtil.js} +14 -8
  55. package/src/WebpackConfigGenerator/Rule/RegExpUtil.js.map +1 -0
  56. package/src/WebpackConfigGenerator/Rule/core-fe-hmr-babel-plugin.d.ts +13 -0
  57. package/src/WebpackConfigGenerator/Rule/{core-fe-hmr-babel-plugin.ts → core-fe-hmr-babel-plugin.js} +9 -43
  58. package/src/WebpackConfigGenerator/Rule/core-fe-hmr-babel-plugin.js.map +1 -0
  59. package/src/WebpackConfigGenerator/Rule/image.rule.d.ts +9 -0
  60. package/src/WebpackConfigGenerator/Rule/{image.rule.ts → image.rule.js} +8 -5
  61. package/src/WebpackConfigGenerator/Rule/image.rule.js.map +1 -0
  62. package/src/WebpackConfigGenerator/Rule/index.d.ts +13 -0
  63. package/src/WebpackConfigGenerator/Rule/index.js +18 -0
  64. package/src/WebpackConfigGenerator/Rule/index.js.map +1 -0
  65. package/src/WebpackConfigGenerator/Rule/other.rule.d.ts +12 -0
  66. package/src/WebpackConfigGenerator/Rule/other.rule.js +22 -0
  67. package/src/WebpackConfigGenerator/Rule/other.rule.js.map +1 -0
  68. package/src/WebpackConfigGenerator/Rule/stylesheet.rule.d.ts +17 -0
  69. package/src/WebpackConfigGenerator/Rule/{stylesheet.rule.ts → stylesheet.rule.js} +30 -34
  70. package/src/WebpackConfigGenerator/Rule/stylesheet.rule.js.map +1 -0
  71. package/src/WebpackConfigGenerator/Rule/ts.rule.d.ts +18 -0
  72. package/src/WebpackConfigGenerator/Rule/{ts.rule.ts → ts.rule.js} +16 -18
  73. package/src/WebpackConfigGenerator/Rule/ts.rule.js.map +1 -0
  74. package/src/WebpackConfigGenerator/WebpackConfigSerializationUtil.d.ts +10 -0
  75. package/src/WebpackConfigGenerator/{WebpackConfigSerializationUtil.ts → WebpackConfigSerializationUtil.js} +22 -23
  76. package/src/WebpackConfigGenerator/WebpackConfigSerializationUtil.js.map +1 -0
  77. package/src/WebpackConfigGenerator/WebpackEntryFactory.d.ts +9 -0
  78. package/src/WebpackConfigGenerator/WebpackEntryFactory.js +14 -0
  79. package/src/WebpackConfigGenerator/WebpackEntryFactory.js.map +1 -0
  80. package/src/WebpackConfigGenerator/WebpackOutputPublicURLFactory.d.ts +11 -0
  81. package/src/WebpackConfigGenerator/WebpackOutputPublicURLFactory.js +16 -0
  82. package/src/WebpackConfigGenerator/WebpackOutputPublicURLFactory.js.map +1 -0
  83. package/src/WebpackConfigGenerator/WebpackResolveAliasFactory.d.ts +11 -0
  84. package/src/WebpackConfigGenerator/{WebpackResolveAliasFactory.ts → WebpackResolveAliasFactory.js} +13 -16
  85. package/src/WebpackConfigGenerator/WebpackResolveAliasFactory.js.map +1 -0
  86. package/src/WebpackConfigGenerator/WebpackResolveExtensionsFactory.d.ts +7 -0
  87. package/src/WebpackConfigGenerator/WebpackResolveExtensionsFactory.js +16 -0
  88. package/src/WebpackConfigGenerator/WebpackResolveExtensionsFactory.js.map +1 -0
  89. package/src/WebpackConfigGenerator/WebpackResolveModulesFactory.d.ts +7 -0
  90. package/src/WebpackConfigGenerator/{WebpackResolveModulesFactory.ts → WebpackResolveModulesFactory.js} +7 -9
  91. package/src/WebpackConfigGenerator/WebpackResolveModulesFactory.js.map +1 -0
  92. package/src/WebpackConfigGenerator/index.d.ts +31 -0
  93. package/src/WebpackConfigGenerator/index.js +191 -0
  94. package/src/WebpackConfigGenerator/index.js.map +1 -0
  95. package/src/WebpackServerStarter.d.ts +28 -0
  96. package/src/WebpackServerStarter.js +111 -0
  97. package/src/WebpackServerStarter.js.map +1 -0
  98. package/src/index.d.ts +10 -0
  99. package/src/index.js +8 -0
  100. package/src/index.js.map +1 -0
  101. package/src/{type.ts → type.d.ts} +4 -8
  102. package/src/type.js +3 -0
  103. package/src/type.js.map +1 -0
  104. package/config/jest.config.ts +0 -35
  105. package/config/tsconfig.script.json +0 -10
  106. package/config/tsconfig.src.json +0 -12
  107. package/config/tsconfig.test.json +0 -11
  108. package/script/build.ts +0 -65
  109. package/script/format.ts +0 -7
  110. package/src/CanadyarnRunner.ts +0 -35
  111. package/src/CodeStyleChecker.ts +0 -44
  112. package/src/CoreUtil.ts +0 -24
  113. package/src/ProjectStructureChecker.ts +0 -119
  114. package/src/TestRunner.ts +0 -28
  115. package/src/TypescriptTypeChecker.ts +0 -29
  116. package/src/WebpackConfigGenerator/HTMLWebpackPluginsFactory.ts +0 -24
  117. package/src/WebpackConfigGenerator/Plugin/css.plugin.ts +0 -31
  118. package/src/WebpackConfigGenerator/Plugin/html.plugin.ts +0 -47
  119. package/src/WebpackConfigGenerator/Plugin/index.ts +0 -33
  120. package/src/WebpackConfigGenerator/Plugin/script-tag-crossorigin-plugin.ts +0 -22
  121. package/src/WebpackConfigGenerator/Plugin/ts.plugin.ts +0 -29
  122. package/src/WebpackConfigGenerator/Plugin/webpack.plugin.ts +0 -21
  123. package/src/WebpackConfigGenerator/Rule/index.ts +0 -17
  124. package/src/WebpackConfigGenerator/Rule/other.rule.ts +0 -23
  125. package/src/WebpackConfigGenerator/WebpackEntryFactory.ts +0 -22
  126. package/src/WebpackConfigGenerator/WebpackOutputPublicURLFactory.ts +0 -22
  127. package/src/WebpackConfigGenerator/WebpackResolveExtensionsFactory.ts +0 -19
  128. package/src/WebpackConfigGenerator/index.ts +0 -213
  129. package/src/WebpackServerStarter.ts +0 -138
  130. package/src/index.ts +0 -9
  131. package/test/WebpackConfigGenerator/Rule/core-fe-hmr-babel-plugin/__snapshots__/shouldIgnore.test.ts.snap +0 -21
  132. package/test/WebpackConfigGenerator/Rule/core-fe-hmr-babel-plugin/__snapshots__/shouldTransform.test.ts.snap +0 -53
  133. package/test/WebpackConfigGenerator/Rule/core-fe-hmr-babel-plugin/shouldIgnore.test.ts +0 -36
  134. package/test/WebpackConfigGenerator/Rule/core-fe-hmr-babel-plugin/shouldTransform.test.ts +0 -72
  135. package/test/WebpackConfigGenerator/plugin/fixture/script.js +0 -2
  136. package/test/WebpackConfigGenerator/plugin/fixture/script1.js +0 -1
  137. package/test/WebpackConfigGenerator/plugin/script-tag-crossorigin-plugin.test.ts +0 -58
  138. package/test/test-project/package.json +0 -5
  139. package/tsconfig.json +0 -15
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pinnacle0/webpack-util",
3
- "version": "0.3.26",
3
+ "version": "0.3.27",
4
4
  "license": "MIT",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `canadyarn` is a mono-repo package version checker for single version installation, developed by Pinnacle team.
3
+ *
4
+ * Ref: https://www.npmjs.com/package/canadyarn
5
+ */
6
+ export declare class CanadyarnRunner {
7
+ private readonly rootDirectory;
8
+ private readonly logger;
9
+ constructor({ rootDirectory }: {
10
+ rootDirectory: string;
11
+ });
12
+ run(): void;
13
+ private runCanadyarn;
14
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CanadyarnRunner = void 0;
7
+ const devtool_util_1 = require("@pinnacle0/devtool-util");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ /**
10
+ * `canadyarn` is a mono-repo package version checker for single version installation, developed by Pinnacle team.
11
+ *
12
+ * Ref: https://www.npmjs.com/package/canadyarn
13
+ */
14
+ class CanadyarnRunner {
15
+ constructor({ rootDirectory }) {
16
+ this.logger = devtool_util_1.Utility.createConsoleLogger("CanadyarnRunner");
17
+ this.rootDirectory = rootDirectory;
18
+ }
19
+ run() {
20
+ this.runCanadyarn();
21
+ }
22
+ runCanadyarn() {
23
+ var _a;
24
+ const packageJSONPath = this.rootDirectory + "/package.json";
25
+ if (fs_1.default.existsSync(packageJSONPath) && fs_1.default.statSync(packageJSONPath).isFile()) {
26
+ const packageJSONContents = JSON.parse(fs_1.default.readFileSync(packageJSONPath, { encoding: "utf8" }));
27
+ if ((_a = packageJSONContents === null || packageJSONContents === void 0 ? void 0 : packageJSONContents.scripts) === null || _a === void 0 ? void 0 : _a.canadyarn) {
28
+ this.logger.task("Running `canadyarn` at " + this.rootDirectory);
29
+ devtool_util_1.Utility.runCommand("yarn", ["--cwd", this.rootDirectory, "canadyarn"]);
30
+ }
31
+ }
32
+ else {
33
+ throw new Error(`Cannot load root directory [${this.rootDirectory}] package.json`);
34
+ }
35
+ }
36
+ }
37
+ exports.CanadyarnRunner = CanadyarnRunner;
38
+ //# sourceMappingURL=CanadyarnRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CanadyarnRunner.js","sourceRoot":"","sources":["../../src/CanadyarnRunner.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAgD;AAChD,4CAAoB;AAEpB;;;;GAIG;AACH,MAAa,eAAe;IAIxB,YAAY,EAAC,aAAa,EAA0B;QAFnC,WAAM,GAAG,sBAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAGrE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAED,GAAG;QACC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEO,YAAY;;QAChB,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC;QAE7D,IAAI,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,YAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;YACzE,MAAM,mBAAmB,GAAwB,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;YAElH,IAAI,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,0CAAE,SAAS,EAAE;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;gBACjE,sBAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;aAC1E;SACJ;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,aAAa,gBAAgB,CAAC,CAAC;SACtF;IACL,CAAC;CACJ;AA1BD,0CA0BC"}
@@ -0,0 +1,10 @@
1
+ import type { InternalCheckerOptions } from "./type";
2
+ export declare class CodeStyleChecker {
3
+ private readonly checkableSrcDirectories;
4
+ private readonly logger;
5
+ constructor({ projectDirectory, extraCheckDirectories }: InternalCheckerOptions);
6
+ run(): void;
7
+ private checkPrettier;
8
+ private checkESLint;
9
+ private checkStylelint;
10
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CodeStyleChecker = void 0;
7
+ const devtool_util_1 = require("@pinnacle0/devtool-util");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ class CodeStyleChecker {
11
+ constructor({ projectDirectory, extraCheckDirectories = [] }) {
12
+ this.logger = devtool_util_1.Utility.createConsoleLogger("CodeStyleChecker");
13
+ this.checkableSrcDirectories = [path_1.default.join(projectDirectory, "src")];
14
+ for (const directory of extraCheckDirectories) {
15
+ const others = ["test", "script"].map(folder => path_1.default.join(directory, folder)).filter(path => fs_1.default.existsSync(path));
16
+ this.checkableSrcDirectories.push(path_1.default.join(directory, "src"), ...others);
17
+ }
18
+ }
19
+ run() {
20
+ this.checkPrettier();
21
+ this.checkESLint();
22
+ this.checkStylelint();
23
+ }
24
+ checkPrettier() {
25
+ this.logger.task("Checking Prettier");
26
+ for (const srcDirectory of this.checkableSrcDirectories) {
27
+ devtool_util_1.PrettierUtil.check(srcDirectory);
28
+ }
29
+ }
30
+ checkESLint() {
31
+ this.logger.task("Checking ESLint");
32
+ for (const srcDirectory of this.checkableSrcDirectories) {
33
+ devtool_util_1.Utility.runCommand("eslint", ["--no-error-on-unmatched-pattern", "--max-warnings=1", "--ext=.js,.jsx,.ts,.tsx", srcDirectory]);
34
+ }
35
+ }
36
+ checkStylelint() {
37
+ this.logger.task("Checking Stylelint");
38
+ for (const srcDirectory of this.checkableSrcDirectories) {
39
+ devtool_util_1.Utility.runCommand("stylelint", ["--allow-empty-input", "--max-warnings=1", path_1.default.join(srcDirectory, "**/*.{css,less}")]);
40
+ }
41
+ }
42
+ }
43
+ exports.CodeStyleChecker = CodeStyleChecker;
44
+ //# sourceMappingURL=CodeStyleChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeStyleChecker.js","sourceRoot":"","sources":["../../src/CodeStyleChecker.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA8D;AAC9D,4CAAoB;AACpB,gDAAwB;AAGxB,MAAa,gBAAgB;IAIzB,YAAY,EAAC,gBAAgB,EAAE,qBAAqB,GAAG,EAAE,EAAyB;QAFjE,WAAM,GAAG,sBAAO,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QAGtE,IAAI,CAAC,uBAAuB,GAAG,CAAC,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;QACpE,KAAK,MAAM,SAAS,IAAI,qBAAqB,EAAE;YAC3C,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAClH,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;SAC7E;IACL,CAAC;IAED,GAAG;QACC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,uBAAuB,EAAE;YACrD,2BAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SACpC;IACL,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACpC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,uBAAuB,EAAE;YACrD,sBAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,iCAAiC,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,YAAY,CAAC,CAAC,CAAC;SAClI;IACL,CAAC;IAEO,cAAc;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,uBAAuB,EAAE;YACrD,sBAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;SAC5H;IACL,CAAC;CACJ;AAtCD,4CAsCC"}
@@ -0,0 +1,21 @@
1
+ export declare const Constant: Readonly<{
2
+ maxEntryPointKiloByte: 1500;
3
+ maxAssetKiloByte: 4000;
4
+ /**
5
+ * List of file extensions that should be resolvable by webpack.resolve.extensions.
6
+ */
7
+ resolveExtensions: string[];
8
+ /**
9
+ * List of font file extensions that should be bundled by webpack asset modules.
10
+ */
11
+ fontExtensions: string[];
12
+ /**
13
+ * List of media file extensions that should be bundled by webpack asset modules.
14
+ */
15
+ mediaExtensions: string[];
16
+ /**
17
+ * List of filename candidates for webpack.config#entry.main that should reside in `<projectDirectory>/src/`.
18
+ * Candidates placed at the front of the array has higher priority.
19
+ */
20
+ mainEntryFilenames: string[];
21
+ }>;
@@ -1,4 +1,7 @@
1
- export const Constant = Object.freeze({
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Constant = void 0;
4
+ exports.Constant = Object.freeze({
2
5
  maxEntryPointKiloByte: 1500,
3
6
  maxAssetKiloByte: 4000,
4
7
  /**
@@ -19,3 +22,4 @@ export const Constant = Object.freeze({
19
22
  */
20
23
  mainEntryFilenames: ["index.tsx", "index.ts", "index.jsx", "index.js", "index.less", "index.css"],
21
24
  });
25
+ //# sourceMappingURL=Constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Constant.js","sourceRoot":"","sources":["../../src/Constant.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,qBAAqB,EAAE,IAAI;IAC3B,gBAAgB,EAAE,IAAI;IACtB;;OAEG;IACH,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC;IAClE;;OAEG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3D;;OAEG;IACH,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACjE;;;OAGG;IACH,kBAAkB,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC;CACpG,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ declare function currentEnv(): string | null;
2
+ declare function profilingEnabled(): boolean;
3
+ declare function isFastMode(): boolean;
4
+ declare function verbose(): boolean;
5
+ export declare const CoreUtil: Readonly<{
6
+ currentEnv: typeof currentEnv;
7
+ profilingEnabled: typeof profilingEnabled;
8
+ isFastMode: typeof isFastMode;
9
+ verbose: typeof verbose;
10
+ }>;
11
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CoreUtil = void 0;
7
+ const yargs_1 = __importDefault(require("yargs"));
8
+ function currentEnv() {
9
+ return yargs_1.default.parseSync().env || null;
10
+ }
11
+ function profilingEnabled() {
12
+ return Boolean(yargs_1.default.parseSync().profile);
13
+ }
14
+ function isFastMode() {
15
+ return yargs_1.default.parseSync().mode === "fast";
16
+ }
17
+ function verbose() {
18
+ return Boolean(yargs_1.default.parseSync().verbose);
19
+ }
20
+ exports.CoreUtil = Object.freeze({
21
+ currentEnv,
22
+ profilingEnabled,
23
+ isFastMode,
24
+ verbose,
25
+ });
26
+ //# sourceMappingURL=CoreUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreUtil.js","sourceRoot":"","sources":["../../src/CoreUtil.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,SAAS,UAAU;IACf,OAAQ,eAAK,CAAC,SAAS,EAAE,CAAC,GAAc,IAAI,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,gBAAgB;IACrB,OAAO,OAAO,CAAC,eAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,UAAU;IACf,OAAO,eAAK,CAAC,SAAS,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;AAC7C,CAAC;AAED,SAAS,OAAO;IACZ,OAAO,OAAO,CAAC,eAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAEY,QAAA,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,UAAU;IACV,gBAAgB;IAChB,UAAU;IACV,OAAO;CACV,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { InternalCheckerOptions } from "./type";
2
+ export declare class ProjectStructureChecker {
3
+ private readonly options;
4
+ private readonly projectDirectory;
5
+ private readonly extraCheckDirectories;
6
+ private readonly packageJSONPath;
7
+ private readonly tsConfigPath;
8
+ constructor(options: InternalCheckerOptions);
9
+ run(): void;
10
+ private checkMainProjectDirectory;
11
+ private checkMainProjectSrcDirectory;
12
+ private checkExtraDirectories;
13
+ private checkPackageJSON;
14
+ private checkTSConfig;
15
+ private checkPrettierInstallation;
16
+ private checkESLintInstallation;
17
+ private checkStyleLintInstallation;
18
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ProjectStructureChecker = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const Constant_1 = require("./Constant");
10
+ class ProjectStructureChecker {
11
+ constructor(options) {
12
+ var _a;
13
+ this.options = options;
14
+ this.projectDirectory = options.projectDirectory;
15
+ this.extraCheckDirectories = (_a = options.extraCheckDirectories) !== null && _a !== void 0 ? _a : [];
16
+ this.packageJSONPath = path_1.default.join(options.projectDirectory, "package.json");
17
+ this.tsConfigPath = path_1.default.join(options.projectDirectory, "tsconfig.json");
18
+ }
19
+ run() {
20
+ this.checkMainProjectDirectory();
21
+ this.checkMainProjectSrcDirectory();
22
+ this.checkExtraDirectories();
23
+ this.checkPackageJSON();
24
+ this.checkTSConfig();
25
+ this.checkPrettierInstallation();
26
+ this.checkESLintInstallation();
27
+ this.checkStyleLintInstallation();
28
+ }
29
+ checkMainProjectDirectory() {
30
+ if (!(fs_1.default.existsSync(this.projectDirectory) && fs_1.default.statSync(this.projectDirectory).isDirectory())) {
31
+ throw new Error(`Cannot check project directory at "${this.projectDirectory}" because it is not a folder.`);
32
+ }
33
+ const mainProjectStaticDirectory = path_1.default.join(this.projectDirectory, "static");
34
+ if (!(fs_1.default.existsSync(mainProjectStaticDirectory) && fs_1.default.statSync(mainProjectStaticDirectory).isDirectory())) {
35
+ throw new Error(`Cannot find "static" directory in project at "${this.projectDirectory}"`);
36
+ }
37
+ }
38
+ checkMainProjectSrcDirectory() {
39
+ const mainProjectSrcDirectory = path_1.default.join(this.projectDirectory, "src");
40
+ if (!(fs_1.default.existsSync(mainProjectSrcDirectory) && fs_1.default.statSync(mainProjectSrcDirectory).isDirectory())) {
41
+ throw new Error(`Cannot find "src" folder inside directory at "${this.projectDirectory}".`);
42
+ }
43
+ let isMainEntryFound = false;
44
+ Constant_1.Constant.mainEntryFilenames
45
+ .map(entryName => path_1.default.join(mainProjectSrcDirectory, entryName))
46
+ .forEach(entryPath => {
47
+ if (fs_1.default.existsSync(entryPath) && fs_1.default.statSync(entryPath).isFile()) {
48
+ isMainEntryFound = true;
49
+ }
50
+ });
51
+ if (!isMainEntryFound) {
52
+ throw new Error(`Cannot find main entry file in src/ at "${mainProjectSrcDirectory}"; checked: ${Constant_1.Constant.mainEntryFilenames.map(_ => `"${_}"`).join(" / ")}.`);
53
+ }
54
+ }
55
+ checkExtraDirectories() {
56
+ for (const extraCheckDirectory of this.extraCheckDirectories) {
57
+ if (!(fs_1.default.existsSync(extraCheckDirectory) && fs_1.default.statSync(extraCheckDirectory).isDirectory())) {
58
+ throw new Error(`Cannot check extra directory at "${extraCheckDirectory}" because it is not a folder.`);
59
+ }
60
+ }
61
+ }
62
+ checkPackageJSON() {
63
+ if (!(fs_1.default.existsSync(this.packageJSONPath) && fs_1.default.statSync(this.packageJSONPath).isFile())) {
64
+ throw new Error(`Cannot find package.json at "${this.packageJSONPath}".`);
65
+ }
66
+ const packageJSONContents = JSON.parse(fs_1.default.readFileSync(this.packageJSONPath, { encoding: "utf8" }));
67
+ for (const [depName, depVersion] of Object.entries(packageJSONContents.dependencies || {})) {
68
+ if (!/^\d/.test(depVersion)) {
69
+ throw new Error(`Dependency "${depName}" must be an exact version, but found "${depVersion}" in package.json at "${this.packageJSONPath}".`);
70
+ }
71
+ }
72
+ for (const [depName, depVersion] of Object.entries(packageJSONContents.devDependencies || {})) {
73
+ if (!/^\d/.test(depVersion)) {
74
+ throw new Error(`Dependency "${depName}" must be an exact version, but found "${depVersion}" in package.json at "${this.packageJSONPath}".`);
75
+ }
76
+ }
77
+ }
78
+ checkTSConfig() {
79
+ const mainProjectSrcDirectory = path_1.default.join(this.projectDirectory, "src");
80
+ // Checking the first-level of src/* is enough here
81
+ const hasTSFiles = fs_1.default.readdirSync(mainProjectSrcDirectory).some(fileName => fileName.endsWith(".ts") || fileName.endsWith(".tsx"));
82
+ const hasTSConfigFile = fs_1.default.existsSync(this.tsConfigPath) && fs_1.default.statSync(this.tsConfigPath).isFile();
83
+ if (hasTSFiles && !hasTSConfigFile) {
84
+ throw new Error(`Cannot find tsconfig.json at "${this.tsConfigPath}".`);
85
+ }
86
+ }
87
+ checkPrettierInstallation() {
88
+ try {
89
+ require("prettier");
90
+ }
91
+ catch (_a) {
92
+ throw new Error(`Cannot load prettier module (requiring from "webpack-util"), make sure prettier is installed.`);
93
+ }
94
+ }
95
+ checkESLintInstallation() {
96
+ try {
97
+ require("eslint");
98
+ }
99
+ catch (_a) {
100
+ throw new Error(`Cannot load eslint module (requiring from "webpack-util"), make sure eslint is installed.`);
101
+ }
102
+ }
103
+ checkStyleLintInstallation() {
104
+ try {
105
+ require("stylelint");
106
+ }
107
+ catch (_a) {
108
+ throw new Error(`Cannot load stylelint module (requiring from "webpack-util"), make sure stylelint is installed.`);
109
+ }
110
+ }
111
+ }
112
+ exports.ProjectStructureChecker = ProjectStructureChecker;
113
+ //# sourceMappingURL=ProjectStructureChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectStructureChecker.js","sourceRoot":"","sources":["../../src/ProjectStructureChecker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { InternalCheckerOptions } from "./type";
2
+ export declare class TestRunner {
3
+ private readonly directories;
4
+ private readonly logger;
5
+ constructor({ projectDirectory, extraCheckDirectories }: InternalCheckerOptions);
6
+ run(): void;
7
+ private runTestScript;
8
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TestRunner = void 0;
7
+ const devtool_util_1 = require("@pinnacle0/devtool-util");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ class TestRunner {
10
+ constructor({ projectDirectory, extraCheckDirectories = [] }) {
11
+ this.logger = devtool_util_1.Utility.createConsoleLogger("TestRunner");
12
+ this.directories = [projectDirectory, ...extraCheckDirectories];
13
+ }
14
+ run() {
15
+ this.directories.forEach(dir => this.runTestScript(dir));
16
+ }
17
+ runTestScript(directory) {
18
+ var _a;
19
+ const packageJSONPath = directory + "/package.json";
20
+ if (fs_1.default.existsSync(packageJSONPath) && fs_1.default.statSync(packageJSONPath).isFile()) {
21
+ const packageJSONContents = JSON.parse(fs_1.default.readFileSync(packageJSONPath, { encoding: "utf8" }));
22
+ if ((_a = packageJSONContents === null || packageJSONContents === void 0 ? void 0 : packageJSONContents.scripts) === null || _a === void 0 ? void 0 : _a.test) {
23
+ this.logger.task("Running `yarn test` at " + directory);
24
+ devtool_util_1.Utility.runCommand("yarn", ["--cwd", directory, "test"]);
25
+ }
26
+ }
27
+ }
28
+ }
29
+ exports.TestRunner = TestRunner;
30
+ //# sourceMappingURL=TestRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestRunner.js","sourceRoot":"","sources":["../../src/TestRunner.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAgD;AAEhD,4CAAoB;AAEpB,MAAa,UAAU;IAInB,YAAY,EAAC,gBAAgB,EAAE,qBAAqB,GAAG,EAAE,EAAyB;QAFjE,WAAM,GAAG,sBAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAGhE,IAAI,CAAC,WAAW,GAAG,CAAC,gBAAgB,EAAE,GAAG,qBAAqB,CAAC,CAAC;IACpE,CAAC;IAED,GAAG;QACC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,CAAC;IAEO,aAAa,CAAC,SAAiB;;QACnC,MAAM,eAAe,GAAG,SAAS,GAAG,eAAe,CAAC;QACpD,IAAI,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,YAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;YACzE,MAAM,mBAAmB,GAAwB,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;YAElH,IAAI,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,0CAAE,IAAI,EAAE;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAAC;gBACxD,sBAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;aAC5D;SACJ;IACL,CAAC;CACJ;AAvBD,gCAuBC"}
@@ -0,0 +1,11 @@
1
+ import type { InternalCheckerOptions } from "./type";
2
+ /**
3
+ * Check typescript type for both projectDirectory src, extraCheckDirectories src using their own tsconfig inside their directory
4
+ */
5
+ export declare class TypescriptTypeChecker {
6
+ private readonly logger;
7
+ private tsconfigPaths;
8
+ constructor({ projectDirectory, extraCheckDirectories }: InternalCheckerOptions);
9
+ run(): void;
10
+ private checkTypeScriptTyping;
11
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TypescriptTypeChecker = void 0;
7
+ const devtool_util_1 = require("@pinnacle0/devtool-util");
8
+ const path_1 = __importDefault(require("path"));
9
+ /**
10
+ * Check typescript type for both projectDirectory src, extraCheckDirectories src using their own tsconfig inside their directory
11
+ */
12
+ class TypescriptTypeChecker {
13
+ constructor({ projectDirectory, extraCheckDirectories }) {
14
+ this.logger = devtool_util_1.Utility.createConsoleLogger("TypescriptTypeChecker");
15
+ this.tsconfigPaths = [];
16
+ const checkableDirectories = [projectDirectory, ...(extraCheckDirectories !== null && extraCheckDirectories !== void 0 ? extraCheckDirectories : [])];
17
+ for (const directory of checkableDirectories) {
18
+ this.tsconfigPaths.push(path_1.default.join(directory, "tsconfig.json"));
19
+ }
20
+ }
21
+ run() {
22
+ this.checkTypeScriptTyping();
23
+ }
24
+ checkTypeScriptTyping() {
25
+ this.logger.task("Checking TypeScript");
26
+ for (const tsconfigPath of this.tsconfigPaths) {
27
+ devtool_util_1.Utility.runCommand("tsc", ["--noEmit", "--emitDeclarationOnly", "false", "-P", tsconfigPath]);
28
+ }
29
+ }
30
+ }
31
+ exports.TypescriptTypeChecker = TypescriptTypeChecker;
32
+ //# sourceMappingURL=TypescriptTypeChecker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypescriptTypeChecker.js","sourceRoot":"","sources":["../../src/TypescriptTypeChecker.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAgD;AAChD,gDAAwB;AAGxB;;GAEG;AACH,MAAa,qBAAqB;IAI9B,YAAY,EAAC,gBAAgB,EAAE,qBAAqB,EAAyB;QAH5D,WAAM,GAAG,sBAAO,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QACvE,kBAAa,GAAa,EAAE,CAAC;QAGjC,MAAM,oBAAoB,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,EAAE,CAAC,CAAC,CAAC;QAClF,KAAK,MAAM,SAAS,IAAI,oBAAoB,EAAE;YAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC;SAClE;IACL,CAAC;IAED,GAAG;QACC,IAAI,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAEO,qBAAqB;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;YAC3C,sBAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;SACjG;IACL,CAAC;CACJ;AArBD,sDAqBC"}
@@ -0,0 +1,38 @@
1
+ import type { InternalCheckerOptions } from "./type";
2
+ import type { WebpackConfigGeneratorOptions } from "./WebpackConfigGenerator";
3
+ export interface WebpackBuilderOptions extends WebpackConfigGeneratorOptions, InternalCheckerOptions {
4
+ onSuccess?: () => void;
5
+ }
6
+ /**
7
+ * Build the website by webpack.
8
+ *
9
+ * Runs static analysis checkers before starting the webpack build (`prettier --check`, `eslint`, `stylelint`).
10
+ *
11
+ ***************************************
12
+ *
13
+ * Add "--env envName" to command line, if you want to switch config folder dynamically.
14
+ *
15
+ * Add "--profile" to command line, if you want to generate a profile for analysis in project folder.
16
+ * Then you can use visualizer to analyze: https://chrisbateman.github.io/webpack-visualizer/
17
+ *
18
+ * Add "--mode fast" to command line, if you want to skip style and lint checks.
19
+ */
20
+ export declare class WebpackBuilder {
21
+ private readonly projectDirectory;
22
+ private readonly rootDirectory;
23
+ private readonly extraCheckDirectories;
24
+ private readonly projectStaticDirectory;
25
+ private readonly projectProfilingJSONOutputPath;
26
+ private readonly outputDirectory;
27
+ private readonly webpackConfig;
28
+ private readonly isFastMode;
29
+ private readonly enableProfiling;
30
+ private readonly onSuccess?;
31
+ private readonly logger;
32
+ constructor(options: WebpackBuilderOptions);
33
+ run(): void;
34
+ private cleanDistFolder;
35
+ private copyStatic;
36
+ private bundleByWebpack;
37
+ private getRawWarningsAndErrors;
38
+ }