@simplysm/sd-cli 12.5.20 → 12.5.22

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 (183) hide show
  1. package/dist/{build-tools → entry}/SdCliCordova.d.ts +5 -6
  2. package/dist/{build-tools → entry}/SdCliCordova.js +117 -99
  3. package/dist/entry/SdCliCordova.js.map +1 -0
  4. package/dist/entry/SdCliElectron.d.ts +2 -2
  5. package/dist/entry/SdCliElectron.js +50 -40
  6. package/dist/entry/SdCliElectron.js.map +1 -1
  7. package/dist/entry/SdCliLocalUpdate.d.ts +1 -2
  8. package/dist/entry/SdCliLocalUpdate.js +26 -27
  9. package/dist/entry/SdCliLocalUpdate.js.map +1 -1
  10. package/dist/entry/SdCliProject.d.ts +1 -5
  11. package/dist/entry/SdCliProject.js +62 -288
  12. package/dist/entry/SdCliProject.js.map +1 -1
  13. package/dist/index.d.ts +23 -17
  14. package/dist/index.js +23 -17
  15. package/dist/index.js.map +1 -1
  16. package/dist/pkg-builders/SdMultiBuildRunner.d.ts +21 -0
  17. package/dist/pkg-builders/SdMultiBuildRunner.js +174 -0
  18. package/dist/pkg-builders/SdMultiBuildRunner.js.map +1 -0
  19. package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.d.ts +4 -0
  20. package/dist/{build-tools → pkg-builders/client}/SdCliNgRoutesFileGenerator.js +7 -7
  21. package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.js.map +1 -0
  22. package/dist/pkg-builders/client/SdClientBuildRunner.d.ts +20 -0
  23. package/dist/pkg-builders/client/SdClientBuildRunner.js +135 -0
  24. package/dist/pkg-builders/client/SdClientBuildRunner.js.map +1 -0
  25. package/dist/pkg-builders/client/SdNgBundler.d.ts +29 -0
  26. package/dist/{build-tools → pkg-builders/client}/SdNgBundler.js +100 -95
  27. package/dist/pkg-builders/client/SdNgBundler.js.map +1 -0
  28. package/dist/{build-tools → pkg-builders/client}/SdNgBundlerContext.d.ts +1 -2
  29. package/dist/{build-tools → pkg-builders/client}/SdNgBundlerContext.js +19 -45
  30. package/dist/pkg-builders/client/SdNgBundlerContext.js.map +1 -0
  31. package/dist/pkg-builders/client/createSdNgPlugin.d.ts +10 -0
  32. package/dist/{bundle-plugins/sdNgPlugin.js → pkg-builders/client/createSdNgPlugin.js} +32 -33
  33. package/dist/pkg-builders/client/createSdNgPlugin.js.map +1 -0
  34. package/dist/pkg-builders/lib/SdCliIndexFileGenerator.d.ts +5 -0
  35. package/dist/{build-tools → pkg-builders/lib}/SdCliIndexFileGenerator.js +11 -11
  36. package/dist/pkg-builders/lib/SdCliIndexFileGenerator.js.map +1 -0
  37. package/dist/pkg-builders/lib/SdJsLibBuildRunner.d.ts +16 -0
  38. package/dist/pkg-builders/lib/SdJsLibBuildRunner.js +81 -0
  39. package/dist/pkg-builders/lib/SdJsLibBuildRunner.js.map +1 -0
  40. package/dist/pkg-builders/lib/SdTsLibBuildRunner.d.ts +13 -0
  41. package/dist/pkg-builders/lib/SdTsLibBuildRunner.js +89 -0
  42. package/dist/pkg-builders/lib/SdTsLibBuildRunner.js.map +1 -0
  43. package/dist/pkg-builders/lib/SdTsLibBuilder.d.ts +14 -0
  44. package/dist/pkg-builders/lib/SdTsLibBuilder.js +54 -0
  45. package/dist/pkg-builders/lib/SdTsLibBuilder.js.map +1 -0
  46. package/dist/pkg-builders/server/SdServerBuildRunner.d.ts +17 -0
  47. package/dist/{builders/SdCliServerBuilder.js → pkg-builders/server/SdServerBuildRunner.js} +48 -53
  48. package/dist/pkg-builders/server/SdServerBuildRunner.js.map +1 -0
  49. package/dist/pkg-builders/server/SdServerBundler.d.ts +19 -0
  50. package/dist/{build-tools → pkg-builders/server}/SdServerBundler.js +25 -30
  51. package/dist/pkg-builders/server/SdServerBundler.js.map +1 -0
  52. package/dist/pkg-builders/server/createSdServerPlugin.d.ts +10 -0
  53. package/dist/pkg-builders/server/createSdServerPlugin.js +53 -0
  54. package/dist/pkg-builders/server/createSdServerPlugin.js.map +1 -0
  55. package/dist/sd-cli.js +61 -54
  56. package/dist/sd-cli.js.map +1 -1
  57. package/dist/ts-builder/SdTsCompileWorker.d.ts +9 -0
  58. package/dist/ts-builder/SdTsCompileWorker.js +16 -0
  59. package/dist/ts-builder/SdTsCompileWorker.js.map +1 -0
  60. package/dist/ts-builder/SdTsCompiler.d.ts +7 -0
  61. package/dist/{build-tools → ts-builder}/SdTsCompiler.js +226 -212
  62. package/dist/ts-builder/SdTsCompiler.js.map +1 -0
  63. package/dist/types/build-plugin.type.d.ts +14 -0
  64. package/dist/types/build-plugin.type.js +2 -0
  65. package/dist/types/build-plugin.type.js.map +1 -0
  66. package/dist/types/build.type.d.ts +15 -0
  67. package/dist/types/build.type.js +2 -0
  68. package/dist/types/build.type.js.map +1 -0
  69. package/dist/types/common-configs.type.d.ts +22 -0
  70. package/dist/types/common-configs.type.js +2 -0
  71. package/dist/types/common-configs.type.js.map +1 -0
  72. package/dist/types/sd-configs.type.d.ts +99 -0
  73. package/dist/types/sd-configs.type.js +2 -0
  74. package/dist/types/sd-configs.type.js.map +1 -0
  75. package/dist/types/ts-compiler.type.d.ts +29 -0
  76. package/dist/types/ts-compiler.type.js +2 -0
  77. package/dist/types/ts-compiler.type.js.map +1 -0
  78. package/dist/types/workers.type.d.ts +49 -0
  79. package/dist/types/workers.type.js +2 -0
  80. package/dist/types/workers.type.js.map +1 -0
  81. package/dist/utils/SdCliConvertMessageUtil.d.ts +21 -0
  82. package/dist/utils/SdCliConvertMessageUtil.js +137 -0
  83. package/dist/utils/SdCliConvertMessageUtil.js.map +1 -0
  84. package/dist/workers/compile-worker.js +27 -0
  85. package/dist/workers/compile-worker.js.map +1 -0
  86. package/dist/workers/lint-worker.js +36 -0
  87. package/dist/workers/lint-worker.js.map +1 -0
  88. package/dist/workers/server-worker.d.ts +1 -0
  89. package/dist/workers/server-worker.js +49 -0
  90. package/dist/workers/server-worker.js.map +1 -0
  91. package/lib/dev-worker.cjs +5 -0
  92. package/package.json +7 -7
  93. package/src/entry/SdCliCordova.ts +363 -0
  94. package/src/entry/SdCliElectron.ts +96 -69
  95. package/src/entry/SdCliLocalUpdate.ts +43 -44
  96. package/src/entry/SdCliProject.ts +72 -417
  97. package/src/index.ts +23 -17
  98. package/src/pkg-builders/SdMultiBuildRunner.ts +250 -0
  99. package/src/{build-tools → pkg-builders/client}/SdCliNgRoutesFileGenerator.ts +7 -7
  100. package/src/pkg-builders/client/SdClientBuildRunner.ts +191 -0
  101. package/src/{build-tools → pkg-builders/client}/SdNgBundler.ts +125 -121
  102. package/src/pkg-builders/client/SdNgBundlerContext.ts +111 -0
  103. package/src/{bundle-plugins/sdNgPlugin.ts → pkg-builders/client/createSdNgPlugin.ts} +43 -46
  104. package/src/{build-tools → pkg-builders/lib}/SdCliIndexFileGenerator.ts +11 -11
  105. package/src/pkg-builders/lib/SdJsLibBuildRunner.ts +105 -0
  106. package/src/pkg-builders/lib/SdTsLibBuildRunner.ts +128 -0
  107. package/src/pkg-builders/lib/SdTsLibBuilder.ts +69 -0
  108. package/src/{builders/SdCliServerBuilder.ts → pkg-builders/server/SdServerBuildRunner.ts} +66 -78
  109. package/src/{build-tools → pkg-builders/server}/SdServerBundler.ts +40 -41
  110. package/src/pkg-builders/server/createSdServerPlugin.ts +77 -0
  111. package/src/sd-cli.ts +197 -211
  112. package/src/ts-builder/SdTsCompileWorker.ts +21 -0
  113. package/src/ts-builder/SdTsCompiler.ts +758 -0
  114. package/src/types/build-plugin.type.ts +16 -0
  115. package/src/types/build.type.ts +17 -0
  116. package/src/types/common-configs.type.ts +27 -0
  117. package/src/types/sd-configs.type.ts +114 -0
  118. package/src/types/ts-compiler.type.ts +29 -0
  119. package/src/types/workers.type.ts +27 -0
  120. package/src/utils/SdCliConvertMessageUtil.ts +177 -0
  121. package/src/workers/compile-worker.ts +31 -0
  122. package/src/workers/lint-worker.ts +44 -0
  123. package/src/workers/server-worker.ts +52 -0
  124. package/tsconfig.json +7 -1
  125. package/dist/build-cluster.js +0 -201
  126. package/dist/build-cluster.js.map +0 -1
  127. package/dist/build-tools/SdCliCordova.js.map +0 -1
  128. package/dist/build-tools/SdCliIndexFileGenerator.d.ts +0 -5
  129. package/dist/build-tools/SdCliIndexFileGenerator.js.map +0 -1
  130. package/dist/build-tools/SdCliNgRoutesFileGenerator.d.ts +0 -4
  131. package/dist/build-tools/SdCliNgRoutesFileGenerator.js.map +0 -1
  132. package/dist/build-tools/SdLinter.d.ts +0 -5
  133. package/dist/build-tools/SdLinter.js +0 -49
  134. package/dist/build-tools/SdLinter.js.map +0 -1
  135. package/dist/build-tools/SdNgBundler.d.ts +0 -29
  136. package/dist/build-tools/SdNgBundler.js.map +0 -1
  137. package/dist/build-tools/SdNgBundlerContext.js.map +0 -1
  138. package/dist/build-tools/SdServerBundler.d.ts +0 -20
  139. package/dist/build-tools/SdServerBundler.js.map +0 -1
  140. package/dist/build-tools/SdTsCompiler.d.ts +0 -34
  141. package/dist/build-tools/SdTsCompiler.js.map +0 -1
  142. package/dist/build-tools/SdTsLibBundler.d.ts +0 -13
  143. package/dist/build-tools/SdTsLibBundler.js +0 -58
  144. package/dist/build-tools/SdTsLibBundler.js.map +0 -1
  145. package/dist/builders/SdCliClientBuilder.d.ts +0 -18
  146. package/dist/builders/SdCliClientBuilder.js +0 -151
  147. package/dist/builders/SdCliClientBuilder.js.map +0 -1
  148. package/dist/builders/SdCliJsLibLinter.d.ts +0 -13
  149. package/dist/builders/SdCliJsLibLinter.js +0 -60
  150. package/dist/builders/SdCliJsLibLinter.js.map +0 -1
  151. package/dist/builders/SdCliServerBuilder.d.ts +0 -15
  152. package/dist/builders/SdCliServerBuilder.js.map +0 -1
  153. package/dist/builders/SdCliTsLibBuilder.d.ts +0 -12
  154. package/dist/builders/SdCliTsLibBuilder.js +0 -90
  155. package/dist/builders/SdCliTsLibBuilder.js.map +0 -1
  156. package/dist/bundle-plugins/sdNgPlugin.d.ts +0 -16
  157. package/dist/bundle-plugins/sdNgPlugin.js.map +0 -1
  158. package/dist/bundle-plugins/sdServerPlugin.d.ts +0 -16
  159. package/dist/bundle-plugins/sdServerPlugin.js +0 -63
  160. package/dist/bundle-plugins/sdServerPlugin.js.map +0 -1
  161. package/dist/commons.d.ts +0 -145
  162. package/dist/commons.js +0 -2
  163. package/dist/commons.js.map +0 -1
  164. package/dist/server-worker.js +0 -57
  165. package/dist/server-worker.js.map +0 -1
  166. package/dist/utils/SdCliBuildResultUtil.d.ts +0 -16
  167. package/dist/utils/SdCliBuildResultUtil.js +0 -54
  168. package/dist/utils/SdCliBuildResultUtil.js.map +0 -1
  169. package/src/build-cluster.ts +0 -212
  170. package/src/build-tools/SdCliCordova.ts +0 -340
  171. package/src/build-tools/SdLinter.ts +0 -65
  172. package/src/build-tools/SdNgBundlerContext.ts +0 -137
  173. package/src/build-tools/SdTsCompiler.ts +0 -754
  174. package/src/build-tools/SdTsLibBundler.ts +0 -72
  175. package/src/builders/SdCliClientBuilder.ts +0 -211
  176. package/src/builders/SdCliJsLibLinter.ts +0 -72
  177. package/src/builders/SdCliTsLibBuilder.ts +0 -126
  178. package/src/bundle-plugins/sdServerPlugin.ts +0 -94
  179. package/src/commons.ts +0 -171
  180. package/src/server-worker.ts +0 -65
  181. package/src/utils/SdCliBuildResultUtil.ts +0 -63
  182. /package/dist/{build-cluster.d.ts → workers/compile-worker.d.ts} +0 -0
  183. /package/dist/{server-worker.d.ts → workers/lint-worker.d.ts} +0 -0
@@ -0,0 +1,54 @@
1
+ import path from "path";
2
+ import { SdCliConvertMessageUtil } from "../../utils/SdCliConvertMessageUtil";
3
+ import { FsUtil, PathUtil } from "@simplysm/sd-core-node";
4
+ import { SdTsCompileWorker } from "../../ts-builder/SdTsCompileWorker";
5
+ export class SdTsLibBuilder {
6
+ static async new(pkgPath, dev, watchScopePaths) {
7
+ const tsCompiler = await SdTsCompileWorker.new({
8
+ pkgPath,
9
+ additionalOptions: { declaration: true },
10
+ isDevMode: dev,
11
+ globalStyleFilePath: PathUtil.norm(pkgPath, "src/styles.scss"),
12
+ isForBundle: false,
13
+ watchScopePaths: watchScopePaths,
14
+ });
15
+ return new SdTsLibBuilder(tsCompiler, pkgPath);
16
+ }
17
+ constructor(_compiler, _pkgPath) {
18
+ this._compiler = _compiler;
19
+ this._pkgPath = _pkgPath;
20
+ }
21
+ async buildAsync(modifiedFileSet) {
22
+ const tsCompileResult = await this._compiler.compileAsync(modifiedFileSet);
23
+ const emitFileSet = new Set();
24
+ for (const emitFile of tsCompileResult.emitFileSet) {
25
+ const emitFileInfos = tsCompileResult.emittedFilesCacheMap.get(emitFile);
26
+ if (emitFileInfos) {
27
+ for (const emitFileInfo of emitFileInfos) {
28
+ if (emitFileInfo.outAbsPath != null) {
29
+ FsUtil.writeFile(emitFileInfo.outAbsPath, emitFileInfo.text);
30
+ emitFileSet.add(emitFileInfo.outAbsPath);
31
+ }
32
+ }
33
+ }
34
+ const globalStylesheetBundlingResult = tsCompileResult.stylesheetBundlingResultMap.get(emitFile);
35
+ if (globalStylesheetBundlingResult) {
36
+ for (const outputFile of globalStylesheetBundlingResult.outputFiles) {
37
+ const distPath = PathUtil.norm(this._pkgPath, "dist", path.relative(this._pkgPath, outputFile.path));
38
+ if (PathUtil.isChildPath(distPath, path.resolve(this._pkgPath, "dist"))) {
39
+ FsUtil.writeFile(distPath, outputFile.text);
40
+ emitFileSet.add(distPath);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ const styleResults = Array.from(tsCompileResult.stylesheetBundlingResultMap.values()).mapMany((item) => SdCliConvertMessageUtil.convertToBuildMessagesFromEsbuild(item, this._pkgPath));
46
+ return {
47
+ watchFileSet: tsCompileResult.watchFileSet,
48
+ affectedFileSet: tsCompileResult.affectedFileSet,
49
+ results: [...tsCompileResult.messages, ...styleResults],
50
+ emitFileSet,
51
+ };
52
+ }
53
+ }
54
+ //# sourceMappingURL=SdTsLibBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdTsLibBuilder.js","sourceRoot":"","sources":["../../../src/pkg-builders/lib/SdTsLibBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAa,MAAM,wBAAwB,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAkB,EAAE,GAAY,EAAE,eAA4B;QAC7E,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC;YAC7C,OAAO;YACP,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;YACxC,SAAS,EAAE,GAAG;YACd,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC;YAC9D,WAAW,EAAE,KAAK;YAClB,eAAe,EAAE,eAAe;SACjC,CAAC,CAAC;QAEH,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,YACU,SAA4B,EAC5B,QAAgB;QADhB,cAAS,GAAT,SAAS,CAAmB;QAC5B,aAAQ,GAAR,QAAQ,CAAQ;IACvB,CAAC;IAEG,KAAK,CAAC,UAAU,CAAC,eAAgC;QAMtD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAE3E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAa,CAAC;QACzC,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,aAAa,GAAG,eAAe,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzE,IAAI,aAAa,EAAE,CAAC;gBAClB,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;oBACzC,IAAI,YAAY,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;wBACpC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;wBAC7D,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,8BAA8B,GAAG,eAAe,CAAC,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACjG,IAAI,8BAA8B,EAAE,CAAC;gBACnC,KAAK,MAAM,UAAU,IAAI,8BAA8B,CAAC,WAAW,EAAE,CAAC;oBACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;oBACrG,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;wBACxE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;wBAC5C,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACrG,uBAAuB,CAAC,iCAAiC,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAC/E,CAAC;QAEF,OAAO;YACL,YAAY,EAAE,eAAe,CAAC,YAAY;YAC1C,eAAe,EAAE,eAAe,CAAC,eAAe;YAChD,OAAO,EAAE,CAAC,GAAG,eAAe,CAAC,QAAQ,EAAE,GAAG,YAAY,CAAC;YACvD,WAAW;SACZ,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { EventEmitter } from "events";
2
+ import { TNormPath } from "@simplysm/sd-core-node";
3
+ import { ISdProjectConfig } from "../../types/sd-configs.type";
4
+ import { ISdBuildRunnerResult } from "../../types/build.type";
5
+ export declare class SdServerBuildRunner extends EventEmitter {
6
+ #private;
7
+ private readonly _projConf;
8
+ private readonly _pkgPath;
9
+ constructor(_projConf: ISdProjectConfig, _pkgPath: TNormPath);
10
+ on(event: "change", listener: () => void): this;
11
+ on(event: "complete", listener: (result: ISdBuildRunnerResult) => void): this;
12
+ watchAsync(): Promise<void>;
13
+ buildAsync(): Promise<ISdBuildRunnerResult>;
14
+ private _runAsync;
15
+ private _getExternalModulesAsync;
16
+ private _debug;
17
+ }
@@ -1,13 +1,12 @@
1
1
  import { EventEmitter } from "events";
2
2
  import { FsUtil, Logger, PathUtil, SdFsWatcher } from "@simplysm/sd-core-node";
3
3
  import path from "path";
4
- import { SdLinter } from "../build-tools/SdLinter";
5
- import { FunctionQueue, ObjectUtil, StringUtil } from "@simplysm/sd-core-common";
6
- import { SdServerBundler } from "../build-tools/SdServerBundler";
7
- export class SdCliServerBuilder extends EventEmitter {
8
- #logger = Logger.get(["simplysm", "sd-cli", "SdCliServerBuilder"]);
4
+ import { ObjectUtil, StringUtil } from "@simplysm/sd-core-common";
5
+ import { SdServerBundler } from "./SdServerBundler";
6
+ export class SdServerBuildRunner extends EventEmitter {
7
+ #logger = Logger.get(["simplysm", "sd-cli", "SdCliServerBuildRunner"]);
9
8
  #pkgConf;
10
- #builder;
9
+ #serverBundler;
11
10
  #extModules;
12
11
  constructor(_projConf, _pkgPath) {
13
12
  super();
@@ -22,42 +21,38 @@ export class SdCliServerBuilder extends EventEmitter {
22
21
  async watchAsync() {
23
22
  this.emit("change");
24
23
  this._debug("dist 초기화...");
25
- await FsUtil.removeAsync(path.resolve(this._pkgPath, "dist"));
24
+ FsUtil.remove(path.resolve(this._pkgPath, "dist"));
26
25
  this._debug("GEN .config...");
27
26
  const confDistPath = path.resolve(this._pkgPath, "dist/.config.json");
28
- await FsUtil.writeFileAsync(confDistPath, JSON.stringify(this.#pkgConf.configs ?? {}, undefined, 2));
29
- const result = await this._runAsync({ dev: true });
30
- this.emit("complete", {
31
- affectedFilePaths: Array.from(result.affectedFileSet),
32
- buildResults: result.buildResults,
33
- });
27
+ FsUtil.writeFile(confDistPath, JSON.stringify(this.#pkgConf.configs ?? {}, undefined, 2));
28
+ const result = await this._runAsync(true);
29
+ const res = {
30
+ affectedFilePathSet: result.affectedFileSet,
31
+ buildMessages: result.buildMessages,
32
+ emitFileSet: result.emitFileSet,
33
+ };
34
+ this.emit("complete", res);
34
35
  this._debug("WATCH...");
35
- let changeFiles = [];
36
- const fnQ = new FunctionQueue();
37
- const watcher = SdFsWatcher.watch(Array.from(result.watchFileSet)).onChange({ delay: 100 }, (changeInfos) => {
38
- changeFiles.push(...changeInfos.map((item) => item.path));
39
- fnQ.runLast(async () => {
40
- const currChangeFiles = [...changeFiles];
41
- changeFiles = [];
42
- this.emit("change");
43
- this.#builder.markForChanges(currChangeFiles);
44
- const watchResult = await this._runAsync({ dev: true });
45
- this.emit("complete", {
46
- affectedFilePaths: Array.from(watchResult.affectedFileSet),
47
- buildResults: watchResult.buildResults,
48
- });
49
- watcher.add(watchResult.watchFileSet);
50
- });
36
+ const watcher = SdFsWatcher.watch(Array.from(result.watchFileSet)).onChange({ delay: 300 }, async (changeInfos) => {
37
+ this.emit("change");
38
+ const watchResult = await this._runAsync(true, new Set(changeInfos.map((item) => PathUtil.norm(item.path))));
39
+ const watchRes = {
40
+ affectedFilePathSet: watchResult.affectedFileSet,
41
+ buildMessages: watchResult.buildMessages,
42
+ emitFileSet: watchResult.emitFileSet,
43
+ };
44
+ this.emit("complete", watchRes);
45
+ watcher.replaceWatchPaths(watchResult.watchFileSet);
51
46
  });
52
47
  }
53
48
  async buildAsync() {
54
- const npmConfig = (await FsUtil.readJsonAsync(path.resolve(this._pkgPath, "package.json")));
49
+ const npmConfig = FsUtil.readJson(path.resolve(this._pkgPath, "package.json"));
55
50
  const extModules = await this._getExternalModulesAsync();
56
51
  this._debug("dist 초기화...");
57
- await FsUtil.removeAsync(path.resolve(this._pkgPath, "dist"));
52
+ FsUtil.remove(path.resolve(this._pkgPath, "dist"));
58
53
  this._debug("GEN .config.json...");
59
54
  const confDistPath = path.resolve(this._pkgPath, "dist/.config.json");
60
- await FsUtil.writeJsonAsync(confDistPath, this.#pkgConf.configs ?? {}, { space: 2 });
55
+ FsUtil.writeJson(confDistPath, this.#pkgConf.configs ?? {}, { space: 2 });
61
56
  this._debug("GEN package.json...");
62
57
  {
63
58
  const deps = extModules.filter((item) => item.exists).map((item) => item.name);
@@ -72,11 +67,11 @@ export class SdCliServerBuilder extends EventEmitter {
72
67
  if (this.#pkgConf.pm2 && !this.#pkgConf.pm2.noStartScript) {
73
68
  distNpmConfig.scripts = { start: "pm2 start pm2.json" };
74
69
  }
75
- await FsUtil.writeJsonAsync(path.resolve(this._pkgPath, "dist/package.json"), distNpmConfig, { space: 2 });
70
+ FsUtil.writeJson(path.resolve(this._pkgPath, "dist/package.json"), distNpmConfig, { space: 2 });
76
71
  }
77
72
  this._debug("GEN openssl.cnf...");
78
73
  {
79
- await FsUtil.writeFileAsync(path.resolve(this._pkgPath, "dist/openssl.cnf"), `
74
+ FsUtil.writeFile(path.resolve(this._pkgPath, "dist/openssl.cnf"), `
80
75
  nodejs_conf = openssl_init
81
76
 
82
77
  [openssl_init]
@@ -101,7 +96,7 @@ Options = UnsafeLegacyRenegotiation`.trim());
101
96
  }
102
97
  if (this.#pkgConf.pm2) {
103
98
  this._debug("GEN pm2.json...");
104
- await FsUtil.writeJsonAsync(path.resolve(this._pkgPath, "dist/pm2.json"), {
99
+ FsUtil.writeJson(path.resolve(this._pkgPath, "dist/pm2.json"), {
105
100
  name: this.#pkgConf.pm2.name ?? npmConfig.name.replace(/@/g, "").replace(/\//g, "-"),
106
101
  script: "main.js",
107
102
  watch: true,
@@ -129,7 +124,7 @@ Options = UnsafeLegacyRenegotiation`.trim());
129
124
  this._debug("GEN web.config...");
130
125
  const iisDistPath = path.resolve(this._pkgPath, "dist/web.config");
131
126
  const serverExeFilePath = this.#pkgConf.iis.nodeExeFilePath ?? "C:\\Program Files\\nodejs\\node.exe";
132
- await FsUtil.writeFileAsync(iisDistPath, `
127
+ FsUtil.writeFile(iisDistPath, `
133
128
  <configuration>
134
129
  <appSettings>
135
130
  <add key="NODE_ENV" value="production" />
@@ -160,40 +155,40 @@ Options = UnsafeLegacyRenegotiation`.trim());
160
155
 
161
156
  `.trim());
162
157
  }
163
- const result = await this._runAsync({ dev: false });
158
+ const result = await this._runAsync(false);
164
159
  return {
165
- affectedFilePaths: Array.from(result.affectedFileSet),
166
- buildResults: result.buildResults,
160
+ affectedFilePathSet: result.affectedFileSet,
161
+ buildMessages: result.buildMessages,
162
+ emitFileSet: result.emitFileSet,
167
163
  };
168
164
  }
169
- async _runAsync(opt) {
165
+ async _runAsync(dev, modifiedFileSet) {
170
166
  const localUpdatePaths = Object.keys(this._projConf.localUpdates ?? {}).mapMany((key) => FsUtil.glob(path.resolve(this._pkgPath, "../../node_modules", key)));
171
167
  this._debug(`BUILD 준비...`);
172
168
  const tsConfig = FsUtil.readJson(path.resolve(this._pkgPath, "tsconfig.json"));
173
169
  this.#extModules = this.#extModules ?? (await this._getExternalModulesAsync());
174
- this.#builder =
175
- this.#builder ??
170
+ this.#serverBundler =
171
+ this.#serverBundler ??
176
172
  new SdServerBundler({
177
- dev: opt.dev,
173
+ dev,
178
174
  pkgPath: this._pkgPath,
179
175
  entryPoints: tsConfig.files
180
176
  ? tsConfig.files.map((item) => path.resolve(this._pkgPath, item))
181
177
  : [path.resolve(this._pkgPath, "src/main.ts")],
182
178
  external: this.#extModules.map((item) => item.name),
183
- watchScopePaths: [path.resolve(this._pkgPath, "../"), ...localUpdatePaths],
179
+ watchScopePaths: [path.resolve(this._pkgPath, "../"), ...localUpdatePaths].map((item) => PathUtil.norm(item)),
184
180
  });
185
- this._debug(`BUILD & CHECK...`);
186
- const buildResult = await this.#builder.bundleAsync();
181
+ this._debug(`BUILD...`);
182
+ const bundleResult = await this.#serverBundler.bundleAsync(modifiedFileSet);
187
183
  //-- filePaths
188
- const watchFileSet = new Set(Array.from(buildResult.watchFileSet).filter((item) => PathUtil.isChildPath(item, path.resolve(this._pkgPath, "../")) ||
184
+ const watchFileSet = new Set(Array.from(bundleResult.watchFileSet).filter((item) => PathUtil.isChildPath(item, path.resolve(this._pkgPath, "../")) ||
189
185
  localUpdatePaths.some((lu) => PathUtil.isChildPath(item, lu))));
190
- this._debug(`LINT...`);
191
- const lintResults = await SdLinter.lintAsync(this._pkgPath, buildResult.affectedFileSet, buildResult.program);
192
186
  this._debug(`빌드 완료`);
193
187
  return {
194
188
  watchFileSet,
195
- affectedFileSet: buildResult.affectedFileSet,
196
- buildResults: [...buildResult.results, ...lintResults],
189
+ affectedFileSet: bundleResult.affectedFileSet,
190
+ buildMessages: bundleResult.results,
191
+ emitFileSet: bundleResult.emitFileSet,
197
192
  };
198
193
  }
199
194
  async _getExternalModulesAsync() {
@@ -201,7 +196,7 @@ Options = UnsafeLegacyRenegotiation`.trim());
201
196
  const results = [];
202
197
  const npmConfigMap = new Map();
203
198
  const fn = async (currPath) => {
204
- const npmConfig = npmConfigMap.getOrCreate(currPath, await FsUtil.readJsonAsync(path.resolve(currPath, "package.json")));
199
+ const npmConfig = npmConfigMap.getOrCreate(currPath, FsUtil.readJson(path.resolve(currPath, "package.json")));
205
200
  const deps = {
206
201
  defaults: [
207
202
  ...Object.keys(npmConfig.dependencies ?? {}),
@@ -276,4 +271,4 @@ Options = UnsafeLegacyRenegotiation`.trim());
276
271
  this.#logger.debug(`[${path.basename(this._pkgPath)}] ${msg}`);
277
272
  }
278
273
  }
279
- //# sourceMappingURL=SdCliServerBuilder.js.map
274
+ //# sourceMappingURL=SdServerBuildRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdServerBuildRunner.js","sourceRoot":"","sources":["../../../src/pkg-builders/server/SdServerBuildRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { TNormPath } from "@simplysm/sd-core-node";
2
+ import { ISdBuildMessage } from "../../types/build.type";
3
+ export declare class SdServerBundler {
4
+ #private;
5
+ private readonly _opt;
6
+ constructor(_opt: {
7
+ dev: boolean;
8
+ pkgPath: TNormPath;
9
+ entryPoints: string[];
10
+ external?: string[];
11
+ watchScopePaths: TNormPath[];
12
+ });
13
+ bundleAsync(modifiedFileSet?: Set<TNormPath>): Promise<{
14
+ watchFileSet: Set<TNormPath>;
15
+ affectedFileSet: Set<TNormPath>;
16
+ results: ISdBuildMessage[];
17
+ emitFileSet: Set<TNormPath>;
18
+ }>;
19
+ }
@@ -1,21 +1,24 @@
1
1
  import esbuild from "esbuild";
2
2
  import path from "path";
3
- import { sdServerPlugin } from "../bundle-plugins/sdServerPlugin";
4
- import { Logger } from "@simplysm/sd-core-node";
3
+ import { FsUtil, Logger, PathUtil } from "@simplysm/sd-core-node";
4
+ import { SdCliConvertMessageUtil } from "../../utils/SdCliConvertMessageUtil";
5
+ import { createSdServerPlugin } from "./createSdServerPlugin";
6
+ import { BuildOutputFileType } from "@angular/build/src/tools/esbuild/bundler-context";
7
+ import { convertOutputFile } from "@angular/build/src/tools/esbuild/utils";
5
8
  export class SdServerBundler {
6
9
  #logger = Logger.get(["simplysm", "sd-cli", "SdServerBundler"]);
7
10
  #context;
8
11
  #modifiedFileSet = new Set();
9
12
  #resultCache = {};
13
+ #outputCache = new Map();
10
14
  constructor(_opt) {
11
15
  this._opt = _opt;
12
16
  }
13
- markForChanges(filePaths) {
14
- for (const filePath of filePaths) {
15
- this.#modifiedFileSet.add(path.normalize(filePath));
17
+ async bundleAsync(modifiedFileSet) {
18
+ this.#modifiedFileSet.clear();
19
+ if (modifiedFileSet) {
20
+ this.#modifiedFileSet.adds(...modifiedFileSet);
16
21
  }
17
- }
18
- async bundleAsync() {
19
22
  if (!this.#context) {
20
23
  this.#context = await esbuild.context({
21
24
  entryPoints: this._opt.entryPoints,
@@ -26,7 +29,7 @@ export class SdServerBundler {
26
29
  mainFields: ["es2020", "es2015", "module", "main"],
27
30
  conditions: ["es2020", "es2015", "module"],
28
31
  tsconfig: path.resolve(this._opt.pkgPath, "tsconfig.json"),
29
- write: true,
32
+ write: false,
30
33
  metafile: true,
31
34
  outdir: path.resolve(this._opt.pkgPath, "dist"),
32
35
  format: "esm",
@@ -73,7 +76,7 @@ const __filename = __fileURLToPath__(import.meta.url);
73
76
  const __dirname = __path__.dirname(__filename);`.trim(),
74
77
  },
75
78
  plugins: [
76
- sdServerPlugin({
79
+ createSdServerPlugin({
77
80
  modifiedFileSet: this.#modifiedFileSet,
78
81
  dev: this._opt.dev,
79
82
  pkgPath: this._opt.pkgPath,
@@ -83,9 +86,20 @@ const __dirname = __path__.dirname(__filename);`.trim(),
83
86
  ],
84
87
  });
85
88
  }
89
+ const emitFileSet = new Set();
86
90
  let result;
87
91
  try {
88
92
  result = await this.#context.rebuild();
93
+ const outputFiles = result.outputFiles?.map((file) => convertOutputFile(file, BuildOutputFileType.Root)) ?? [];
94
+ for (const outputFile of outputFiles) {
95
+ const distFilePath = PathUtil.norm(this._opt.pkgPath, outputFile.path);
96
+ const prev = this.#outputCache.get(distFilePath);
97
+ if (prev !== Buffer.from(outputFile.contents).toString("base64")) {
98
+ FsUtil.writeFile(distFilePath, outputFile.contents);
99
+ this.#outputCache.set(distFilePath, Buffer.from(outputFile.contents).toString("base64"));
100
+ emitFileSet.add(distFilePath);
101
+ }
102
+ }
89
103
  }
90
104
  catch (err) {
91
105
  result = err;
@@ -96,29 +110,10 @@ const __dirname = __path__.dirname(__filename);`.trim(),
96
110
  }
97
111
  }
98
112
  return {
99
- program: this.#resultCache.program,
100
113
  watchFileSet: this.#resultCache.watchFileSet,
101
114
  affectedFileSet: this.#resultCache.affectedFileSet,
102
- results: [
103
- ...result.warnings.map((warn) => ({
104
- type: "build",
105
- filePath: warn.location?.file !== undefined ? path.resolve(warn.location.file) : undefined,
106
- line: warn.location?.line,
107
- char: warn.location?.column,
108
- code: warn.text.slice(0, warn.text.indexOf(":")),
109
- severity: "warning",
110
- message: `(${warn.pluginName}) ${warn.text.slice(warn.text.indexOf(":") + 1)}`,
111
- })),
112
- ...result.errors.map((err) => ({
113
- type: "build",
114
- filePath: err.location?.file !== undefined ? path.resolve(err.location.file) : undefined,
115
- line: err.location?.line,
116
- char: err.location?.column !== undefined ? err.location.column + 1 : undefined,
117
- code: err.text.slice(0, err.text.indexOf(":")),
118
- severity: "error",
119
- message: `(${err.pluginName}) ${err.text.slice(err.text.indexOf(":") + 1)}`,
120
- })),
121
- ],
115
+ results: SdCliConvertMessageUtil.convertToBuildMessagesFromEsbuild(result, this._opt.pkgPath),
116
+ emitFileSet: emitFileSet,
122
117
  };
123
118
  }
124
119
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdServerBundler.js","sourceRoot":"","sources":["../../../src/pkg-builders/server/SdServerBundler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import esbuild from "esbuild";
2
+ import { ISdCliServerPluginResultCache } from "../../types/build-plugin.type";
3
+ import { TNormPath } from "@simplysm/sd-core-node";
4
+ export declare function createSdServerPlugin(conf: {
5
+ pkgPath: TNormPath;
6
+ dev: boolean;
7
+ modifiedFileSet: Set<TNormPath>;
8
+ result: ISdCliServerPluginResultCache;
9
+ watchScopePaths: TNormPath[];
10
+ }): esbuild.Plugin;
@@ -0,0 +1,53 @@
1
+ import { SdCliConvertMessageUtil } from "../../utils/SdCliConvertMessageUtil";
2
+ import { PathUtil } from "@simplysm/sd-core-node";
3
+ import { SdTsCompileWorker } from "../../ts-builder/SdTsCompileWorker";
4
+ export function createSdServerPlugin(conf) {
5
+ return {
6
+ name: "sd-server-compile",
7
+ setup: async (build) => {
8
+ const tsCompiler = await SdTsCompileWorker.new({
9
+ pkgPath: conf.pkgPath,
10
+ additionalOptions: { declaration: false },
11
+ isDevMode: conf.dev,
12
+ isForBundle: true,
13
+ watchScopePaths: conf.watchScopePaths,
14
+ });
15
+ let tsCompileResult;
16
+ build.onStart(async () => {
17
+ tsCompileResult = await tsCompiler.compileAsync(conf.modifiedFileSet);
18
+ conf.result.watchFileSet = tsCompileResult.watchFileSet;
19
+ conf.result.affectedFileSet = tsCompileResult.affectedFileSet;
20
+ //-- return err/warn
21
+ return SdCliConvertMessageUtil.convertToEsbuildFromBuildMessages(tsCompileResult.messages, conf.pkgPath);
22
+ });
23
+ build.onLoad({ filter: /\.ts$/ }, (args) => {
24
+ const emittedJsFile = tsCompileResult.emittedFilesCacheMap.get(PathUtil.norm(args.path))?.last();
25
+ if (!emittedJsFile) {
26
+ throw new Error(`ts 빌더 결과 emit 파일이 존재하지 않습니다. ${args.path}`);
27
+ }
28
+ const contents = emittedJsFile.text;
29
+ return { contents, loader: "js" };
30
+ });
31
+ build.onLoad({ filter: /\.[cm]?js$/ }, (args) => {
32
+ conf.result.watchFileSet.add(PathUtil.norm(args.path));
33
+ return null;
34
+ });
35
+ build.onLoad({
36
+ filter: new RegExp("(" +
37
+ Object.keys(build.initialOptions.loader)
38
+ .map((item) => "\\" + item)
39
+ .join("|") +
40
+ ")$"),
41
+ }, (args) => {
42
+ conf.result.watchFileSet.add(PathUtil.norm(args.path));
43
+ return null;
44
+ });
45
+ build.onEnd((result) => {
46
+ conf.result.outputFiles = result.outputFiles;
47
+ conf.result.metafile = result.metafile;
48
+ conf.modifiedFileSet.clear();
49
+ });
50
+ },
51
+ };
52
+ }
53
+ //# sourceMappingURL=createSdServerPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSdServerPlugin.js","sourceRoot":"","sources":["../../../src/pkg-builders/server/createSdServerPlugin.ts"],"names":[],"mappings":"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"}