@simplysm/sd-cli 12.13.23 → 12.13.36

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 (209) hide show
  1. package/dist/entry/SdCliAiCommand.d.ts +3 -0
  2. package/dist/entry/SdCliAiCommand.js +65 -0
  3. package/dist/entry/SdCliAiCommand.js.map +1 -0
  4. package/dist/entry/SdCliCordova.d.ts +16 -0
  5. package/dist/entry/SdCliCordova.js +398 -0
  6. package/dist/entry/SdCliCordova.js.map +1 -0
  7. package/dist/entry/SdCliElectron.d.ts +18 -0
  8. package/dist/entry/SdCliElectron.js +129 -0
  9. package/dist/entry/SdCliElectron.js.map +1 -0
  10. package/dist/entry/SdCliLocalUpdate.d.ts +11 -0
  11. package/dist/entry/SdCliLocalUpdate.js +84 -0
  12. package/dist/entry/SdCliLocalUpdate.js.map +1 -0
  13. package/dist/entry/SdCliPostinstall.d.ts +3 -0
  14. package/dist/entry/SdCliPostinstall.js +39 -0
  15. package/dist/entry/SdCliPostinstall.js.map +1 -0
  16. package/dist/entry/SdCliProject.d.ts +21 -0
  17. package/dist/entry/SdCliProject.js +302 -0
  18. package/dist/entry/SdCliProject.js.map +1 -0
  19. package/dist/fix/convert-extends-sd-modal-base-to-interface.d.ts +1 -0
  20. package/dist/fix/convert-extends-sd-modal-base-to-interface.js +289 -0
  21. package/dist/fix/convert-extends-sd-modal-base-to-interface.js.map +1 -0
  22. package/dist/fix/convert-extends-sd-print-template-base-to-interface.d.ts +1 -0
  23. package/dist/fix/convert-extends-sd-print-template-base-to-interface.js +179 -0
  24. package/dist/fix/convert-extends-sd-print-template-base-to-interface.js.map +1 -0
  25. package/dist/fix/convert-flat-pages-to-flat-menus.d.ts +1 -0
  26. package/dist/fix/convert-flat-pages-to-flat-menus.js +68 -0
  27. package/dist/fix/convert-flat-pages-to-flat-menus.js.map +1 -0
  28. package/dist/fix/convert-get-menus-to-usable-menus.d.ts +1 -0
  29. package/dist/fix/convert-get-menus-to-usable-menus.js +48 -0
  30. package/dist/fix/convert-get-menus-to-usable-menus.js.map +1 -0
  31. package/dist/fix/convert-modal-show-params.d.ts +1 -0
  32. package/dist/fix/convert-modal-show-params.js +29 -0
  33. package/dist/fix/convert-modal-show-params.js.map +1 -0
  34. package/dist/fix/convert-print-params.d.ts +1 -0
  35. package/dist/fix/convert-print-params.js +37 -0
  36. package/dist/fix/convert-print-params.js.map +1 -0
  37. package/dist/fix/convert-private-to-hash.d.ts +1 -0
  38. package/dist/fix/convert-private-to-hash.js +59 -0
  39. package/dist/fix/convert-private-to-hash.js.map +1 -0
  40. package/dist/fix/convert-sd-angular-symbol-names.d.ts +1 -0
  41. package/dist/fix/convert-sd-angular-symbol-names.js +23 -0
  42. package/dist/fix/convert-sd-angular-symbol-names.js.map +1 -0
  43. package/dist/fix/convert-sd-icon-to-fa-icon.d.ts +1 -0
  44. package/dist/fix/convert-sd-icon-to-fa-icon.js +80 -0
  45. package/dist/fix/convert-sd-icon-to-fa-icon.js.map +1 -0
  46. package/dist/fix/convert-sd-sheet-bindings-safety.d.ts +1 -0
  47. package/dist/fix/convert-sd-sheet-bindings-safety.js +57 -0
  48. package/dist/fix/convert-sd-sheet-bindings-safety.js.map +1 -0
  49. package/dist/fix/convert-select-modal-button-to-select-button.d.ts +1 -0
  50. package/dist/fix/convert-select-modal-button-to-select-button.js +64 -0
  51. package/dist/fix/convert-select-modal-button-to-select-button.js.map +1 -0
  52. package/dist/fix/convert-setup-cumulate-selected-keys-to-object-param.d.ts +1 -0
  53. package/dist/fix/convert-setup-cumulate-selected-keys-to-object-param.js +38 -0
  54. package/dist/fix/convert-setup-cumulate-selected-keys-to-object-param.js.map +1 -0
  55. package/dist/fix/convert-to-use-perms-signal.d.ts +1 -0
  56. package/dist/fix/convert-to-use-perms-signal.js +99 -0
  57. package/dist/fix/convert-to-use-perms-signal.js.map +1 -0
  58. package/dist/fix/core/convert-symbol.d.ts +1 -0
  59. package/dist/fix/core/convert-symbol.js +102 -0
  60. package/dist/fix/core/convert-symbol.js.map +1 -0
  61. package/dist/fix/core/get-ts-morph-source-files.d.ts +1 -0
  62. package/dist/fix/core/get-ts-morph-source-files.js +8 -0
  63. package/dist/fix/core/get-ts-morph-source-files.js.map +1 -0
  64. package/dist/fix/core/remove-named-import.d.ts +1 -0
  65. package/dist/fix/core/remove-named-import.js +14 -0
  66. package/dist/fix/core/remove-named-import.js.map +1 -0
  67. package/dist/fix/core/remove-symbol.d.ts +1 -0
  68. package/dist/fix/core/remove-symbol.js +76 -0
  69. package/dist/fix/core/remove-symbol.js.map +1 -0
  70. package/dist/fix/remove-sd-angular-symbol-names.d.ts +1 -0
  71. package/dist/fix/remove-sd-angular-symbol-names.js +9 -0
  72. package/dist/fix/remove-sd-angular-symbol-names.js.map +1 -0
  73. package/dist/fix/remove-unused-imports.d.ts +1 -0
  74. package/dist/fix/remove-unused-imports.js +42 -0
  75. package/dist/fix/remove-unused-imports.js.map +1 -0
  76. package/dist/fix/remove-unused-injects.d.ts +1 -0
  77. package/dist/fix/remove-unused-injects.js +38 -0
  78. package/dist/fix/remove-unused-injects.js.map +1 -0
  79. package/dist/fix/remove-unused-protected-readonly.d.ts +1 -0
  80. package/dist/fix/remove-unused-protected-readonly.js +58 -0
  81. package/dist/fix/remove-unused-protected-readonly.js.map +1 -0
  82. package/dist/pkg-builders/SdProjectBuildRunner.d.ts +18 -0
  83. package/dist/pkg-builders/SdProjectBuildRunner.js +235 -0
  84. package/dist/pkg-builders/SdProjectBuildRunner.js.map +1 -0
  85. package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.d.ts +9 -0
  86. package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.js +89 -0
  87. package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.js.map +1 -0
  88. package/dist/pkg-builders/client/SdClientBuildRunner.d.ts +8 -0
  89. package/dist/pkg-builders/client/SdClientBuildRunner.js +115 -0
  90. package/dist/pkg-builders/client/SdClientBuildRunner.js.map +1 -0
  91. package/dist/pkg-builders/client/SdNgBundler.d.ts +23 -0
  92. package/dist/pkg-builders/client/SdNgBundler.js +490 -0
  93. package/dist/pkg-builders/client/SdNgBundler.js.map +1 -0
  94. package/dist/pkg-builders/client/SdNgBundlerContext.d.ts +22 -0
  95. package/dist/pkg-builders/client/SdNgBundlerContext.js +90 -0
  96. package/dist/pkg-builders/client/SdNgBundlerContext.js.map +1 -0
  97. package/dist/pkg-builders/client/createSdNgPlugin.d.ts +14 -0
  98. package/dist/pkg-builders/client/createSdNgPlugin.js +143 -0
  99. package/dist/pkg-builders/client/createSdNgPlugin.js.map +1 -0
  100. package/dist/pkg-builders/commons/ScopePathSet.d.ts +7 -0
  101. package/dist/pkg-builders/commons/ScopePathSet.js +14 -0
  102. package/dist/pkg-builders/commons/ScopePathSet.js.map +1 -0
  103. package/dist/pkg-builders/commons/SdBuildRunnerBase.d.ts +20 -0
  104. package/dist/pkg-builders/commons/SdBuildRunnerBase.js +30 -0
  105. package/dist/pkg-builders/commons/SdBuildRunnerBase.js.map +1 -0
  106. package/dist/pkg-builders/lib/SdCliDbContextFileGenerator.d.ts +9 -0
  107. package/dist/pkg-builders/lib/SdCliDbContextFileGenerator.js +134 -0
  108. package/dist/pkg-builders/lib/SdCliDbContextFileGenerator.js.map +1 -0
  109. package/dist/pkg-builders/lib/SdCliIndexFileGenerator.d.ts +10 -0
  110. package/dist/pkg-builders/lib/SdCliIndexFileGenerator.js +61 -0
  111. package/dist/pkg-builders/lib/SdCliIndexFileGenerator.js.map +1 -0
  112. package/dist/pkg-builders/lib/SdJsLibBuildRunner.d.ts +8 -0
  113. package/dist/pkg-builders/lib/SdJsLibBuildRunner.js +45 -0
  114. package/dist/pkg-builders/lib/SdJsLibBuildRunner.js.map +1 -0
  115. package/dist/pkg-builders/lib/SdTsLibBuildRunner.d.ts +8 -0
  116. package/dist/pkg-builders/lib/SdTsLibBuildRunner.js +36 -0
  117. package/dist/pkg-builders/lib/SdTsLibBuildRunner.js.map +1 -0
  118. package/dist/pkg-builders/lib/SdTsLibBuilder.d.ts +9 -0
  119. package/dist/pkg-builders/lib/SdTsLibBuilder.js +65 -0
  120. package/dist/pkg-builders/lib/SdTsLibBuilder.js.map +1 -0
  121. package/dist/pkg-builders/server/SdServerBuildRunner.d.ts +8 -0
  122. package/dist/pkg-builders/server/SdServerBuildRunner.js +249 -0
  123. package/dist/pkg-builders/server/SdServerBuildRunner.js.map +1 -0
  124. package/dist/pkg-builders/server/SdServerBundler.d.ts +18 -0
  125. package/dist/pkg-builders/server/SdServerBundler.js +153 -0
  126. package/dist/pkg-builders/server/SdServerBundler.js.map +1 -0
  127. package/dist/pkg-builders/server/createSdServerPlugin.d.ts +14 -0
  128. package/dist/pkg-builders/server/createSdServerPlugin.js +63 -0
  129. package/dist/pkg-builders/server/createSdServerPlugin.js.map +1 -0
  130. package/dist/sd-cli-entry.d.ts +2 -0
  131. package/dist/sd-cli-entry.js +257 -0
  132. package/dist/sd-cli-entry.js.map +1 -0
  133. package/dist/sd-cli.d.ts +2 -0
  134. package/dist/sd-cli.js +85 -0
  135. package/dist/sd-cli.js.map +1 -0
  136. package/dist/ts-compiler/SdDepAnalyzer.d.ts +15 -0
  137. package/dist/ts-compiler/SdDepAnalyzer.js +300 -0
  138. package/dist/ts-compiler/SdDepAnalyzer.js.map +1 -0
  139. package/dist/ts-compiler/SdDepCache.d.ts +33 -0
  140. package/dist/ts-compiler/SdDepCache.js +247 -0
  141. package/dist/ts-compiler/SdDepCache.js.map +1 -0
  142. package/dist/ts-compiler/SdStyleBundler.d.ts +16 -0
  143. package/dist/ts-compiler/SdStyleBundler.js +118 -0
  144. package/dist/ts-compiler/SdStyleBundler.js.map +1 -0
  145. package/dist/ts-compiler/SdTsCompiler.d.ts +9 -0
  146. package/dist/ts-compiler/SdTsCompiler.js +407 -0
  147. package/dist/ts-compiler/SdTsCompiler.js.map +1 -0
  148. package/dist/types/build/ISdBuildMessage.d.ts +10 -0
  149. package/dist/types/build/ISdBuildMessage.js +2 -0
  150. package/dist/types/build/ISdBuildMessage.js.map +1 -0
  151. package/dist/types/build/ISdBuildResult.d.ts +8 -0
  152. package/dist/types/build/ISdBuildResult.js +2 -0
  153. package/dist/types/build/ISdBuildResult.js.map +1 -0
  154. package/dist/types/build/ISdTsCompilerOptions.d.ts +13 -0
  155. package/dist/types/build/ISdTsCompilerOptions.js +2 -0
  156. package/dist/types/build/ISdTsCompilerOptions.js.map +1 -0
  157. package/dist/types/build/ISdTsCompilerResult.d.ts +14 -0
  158. package/dist/types/build/ISdTsCompilerResult.js +2 -0
  159. package/dist/types/build/ISdTsCompilerResult.js.map +1 -0
  160. package/dist/types/build/TStylesheetBundlingResult.d.ts +12 -0
  161. package/dist/types/build/TStylesheetBundlingResult.js +2 -0
  162. package/dist/types/build/TStylesheetBundlingResult.js.map +1 -0
  163. package/dist/types/common-config/INpmConfig.d.ts +17 -0
  164. package/dist/types/common-config/INpmConfig.js +2 -0
  165. package/dist/types/common-config/INpmConfig.js.map +1 -0
  166. package/dist/types/common-config/ITsConfig.d.ts +7 -0
  167. package/dist/types/common-config/ITsConfig.js +2 -0
  168. package/dist/types/common-config/ITsConfig.js.map +1 -0
  169. package/dist/types/config/ISdProjectConfig.d.ts +108 -0
  170. package/dist/types/config/ISdProjectConfig.js +2 -0
  171. package/dist/types/config/ISdProjectConfig.js.map +1 -0
  172. package/dist/types/plugin/ISdCliNgPluginResultCache.d.ts +8 -0
  173. package/dist/types/plugin/ISdCliNgPluginResultCache.js +2 -0
  174. package/dist/types/plugin/ISdCliNgPluginResultCache.js.map +1 -0
  175. package/dist/types/plugin/ISdCliServerPluginResultCache.d.ts +8 -0
  176. package/dist/types/plugin/ISdCliServerPluginResultCache.js +2 -0
  177. package/dist/types/plugin/ISdCliServerPluginResultCache.js.map +1 -0
  178. package/dist/types/worker/ISdBuildRunnerWorkerType.d.ts +23 -0
  179. package/dist/types/worker/ISdBuildRunnerWorkerType.js +2 -0
  180. package/dist/types/worker/ISdBuildRunnerWorkerType.js.map +1 -0
  181. package/dist/types/worker/IServerWorkerType.d.ts +17 -0
  182. package/dist/types/worker/IServerWorkerType.js +2 -0
  183. package/dist/types/worker/IServerWorkerType.js.map +1 -0
  184. package/dist/utils/SdCliConvertMessageUtils.d.ts +21 -0
  185. package/dist/utils/SdCliConvertMessageUtils.js +139 -0
  186. package/dist/utils/SdCliConvertMessageUtils.js.map +1 -0
  187. package/dist/utils/SdCliPerformanceTimer.d.ts +9 -0
  188. package/dist/utils/SdCliPerformanceTimer.js +51 -0
  189. package/dist/utils/SdCliPerformanceTimer.js.map +1 -0
  190. package/dist/utils/loadProjConfAsync.d.ts +5 -0
  191. package/dist/utils/loadProjConfAsync.js +8 -0
  192. package/dist/utils/loadProjConfAsync.js.map +1 -0
  193. package/dist/workers/build-runner.worker.d.ts +1 -0
  194. package/dist/workers/build-runner.worker.js +39 -0
  195. package/dist/workers/build-runner.worker.js.map +1 -0
  196. package/dist/workers/server.worker.d.ts +1 -0
  197. package/dist/workers/server.worker.js +50 -0
  198. package/dist/workers/server.worker.js.map +1 -0
  199. package/package.json +5 -5
  200. package/src/fix/core/convert-symbol.ts +35 -16
  201. package/src/fix/remove-unused-protected-readonly.ts +7 -1
  202. package/src/pkg-builders/SdProjectBuildRunner.ts +8 -1
  203. package/src/pkg-builders/commons/SdBuildRunnerBase.ts +1 -1
  204. package/src/pkg-builders/lib/SdTsLibBuilder.ts +0 -1
  205. package/src/sd-cli.ts +8 -8
  206. package/src/ts-compiler/SdTsCompiler.ts +26 -31
  207. package/src/types/build/ISdTsCompilerOptions.ts +0 -1
  208. package/src/types/worker/ISdBuildRunnerWorkerType.ts +1 -1
  209. package/src/workers/build-runner.worker.ts +1 -1
@@ -0,0 +1,143 @@
1
+ import path from "path";
2
+ import os from "os";
3
+ import { JavaScriptTransformer } from "@angular/build/src/tools/esbuild/javascript-transformer";
4
+ import { FsUtils, PathUtils, SdLogger } from "@simplysm/sd-core-node";
5
+ import { SdCliPerformanceTimer } from "../../utils/SdCliPerformanceTimer";
6
+ import { SdCliConvertMessageUtils } from "../../utils/SdCliConvertMessageUtils";
7
+ import { SdTsCompiler } from "../../ts-compiler/SdTsCompiler";
8
+ export function createSdNgPlugin(conf) {
9
+ let perf;
10
+ const logger = SdLogger.get(["simplysm", "sd-cli", "createSdNgPlugin"]);
11
+ const debug = (...msg) => {
12
+ logger.debug(`[${path.basename(conf.pkgPath)}]`, ...msg);
13
+ };
14
+ return {
15
+ name: "sd-ng-compile",
16
+ setup: (build) => {
17
+ const tsCompiler = new SdTsCompiler({
18
+ pkgPath: conf.pkgPath,
19
+ additionalOptions: { declaration: false },
20
+ isWatchMode: conf.watch,
21
+ isDevMode: conf.dev,
22
+ isForBundle: true,
23
+ isEmitOnly: conf.emitOnly,
24
+ isNoEmit: conf.noEmit,
25
+ scopePathSet: conf.scopePathSet,
26
+ });
27
+ let tsCompileResult;
28
+ const outputContentsCacheMap = new Map();
29
+ //-- js babel transformer
30
+ const javascriptTransformer = new JavaScriptTransformer({
31
+ thirdPartySourcemaps: conf.dev,
32
+ sourcemap: conf.dev,
33
+ jit: false,
34
+ advancedOptimizations: !conf.dev,
35
+ }, Math.floor((os.cpus().length * 2) / 3));
36
+ //---------------------------
37
+ build.onStart(async () => {
38
+ perf = new SdCliPerformanceTimer("esbuild");
39
+ const res = await perf.run("typescript build", async () => {
40
+ for (const modifiedFile of conf.modifiedFileSet) {
41
+ outputContentsCacheMap.delete(modifiedFile);
42
+ }
43
+ tsCompileResult = await tsCompiler.compileAsync(conf.modifiedFileSet);
44
+ conf.result.watchFileSet = tsCompileResult.watchFileSet;
45
+ conf.result.affectedFileSet = tsCompileResult.affectedFileSet;
46
+ const tsEsbuildResult = SdCliConvertMessageUtils.convertToEsbuildFromBuildMessages(tsCompileResult.messages, conf.pkgPath);
47
+ //-- return err/warn
48
+ return {
49
+ errors: [
50
+ ...tsEsbuildResult.errors,
51
+ ...Array.from(tsCompileResult.stylesheetBundlingResultMap.values())
52
+ .flatMap((item) => item.errors)
53
+ .filterExists(),
54
+ ].filterExists(),
55
+ warnings: [
56
+ ...tsEsbuildResult.warnings,
57
+ ...Array.from(tsCompileResult.stylesheetBundlingResultMap.values())
58
+ .flatMap((item) => item.warnings)
59
+ .filterExists(),
60
+ ],
61
+ };
62
+ });
63
+ perf.start("esbuild transform & bundling");
64
+ return res;
65
+ });
66
+ build.onLoad({ filter: /\.ts$/ }, async (args) => {
67
+ const emittedFiles = tsCompileResult.emittedFilesCacheMap.get(PathUtils.norm(args.path));
68
+ const output = outputContentsCacheMap.get(PathUtils.norm(args.path));
69
+ if (output != null) {
70
+ return { contents: output, loader: "js" };
71
+ }
72
+ const contents = emittedFiles?.last()?.text ?? "";
73
+ const { sideEffects } = await build.resolve(args.path, {
74
+ kind: "import-statement",
75
+ resolveDir: build.initialOptions.absWorkingDir ?? "",
76
+ });
77
+ const newContents = await perf.run("esbuild transform:js:*.ts", async () => {
78
+ return await javascriptTransformer.transformData(args.path, contents, true, sideEffects);
79
+ });
80
+ outputContentsCacheMap.set(PathUtils.norm(args.path), newContents);
81
+ return { contents: newContents, loader: "js" };
82
+ });
83
+ build.onLoad({ filter: /\.mjs$/ }, async (args) => {
84
+ conf.result.watchFileSet.add(PathUtils.norm(args.path));
85
+ const output = outputContentsCacheMap.get(PathUtils.norm(args.path));
86
+ if (output != null) {
87
+ return { contents: output, loader: "js" };
88
+ }
89
+ const { sideEffects } = await build.resolve(args.path, {
90
+ kind: "import-statement",
91
+ resolveDir: build.initialOptions.absWorkingDir ?? "",
92
+ });
93
+ try {
94
+ const newContents = await perf.run("esbuild transform:js:*.js", async () => {
95
+ const contents = await FsUtils.readFileBufferAsync(args.path);
96
+ return await javascriptTransformer.transformData(args.path, contents.toString(), false, sideEffects);
97
+ });
98
+ outputContentsCacheMap.set(PathUtils.norm(args.path), newContents);
99
+ return {
100
+ contents: newContents,
101
+ loader: "js",
102
+ };
103
+ }
104
+ catch (err) {
105
+ return { errors: [{ text: err?.message ?? String(err) }] };
106
+ }
107
+ });
108
+ const otherLoaderFilter = new RegExp("(" +
109
+ Object.keys(build.initialOptions.loader ?? {})
110
+ .map((ext) => "\\" + ext)
111
+ .join("|") +
112
+ ")$");
113
+ build.onLoad({ filter: otherLoaderFilter }, (args) => {
114
+ conf.result.watchFileSet.add(PathUtils.norm(args.path));
115
+ return null;
116
+ });
117
+ build.onEnd((result) => {
118
+ perf.end("esbuild transform & bundling");
119
+ debug(perf.toString());
120
+ for (const stylesheetBundlingResult of tsCompileResult.stylesheetBundlingResultMap.values()) {
121
+ if ("outputFiles" in stylesheetBundlingResult) {
122
+ result.outputFiles ??= [];
123
+ result.outputFiles.push(...stylesheetBundlingResult.outputFiles);
124
+ if (result.metafile) {
125
+ result.metafile.inputs = {
126
+ ...result.metafile.inputs,
127
+ ...stylesheetBundlingResult.metafile.inputs,
128
+ };
129
+ result.metafile.outputs = {
130
+ ...result.metafile.outputs,
131
+ ...stylesheetBundlingResult.metafile.outputs,
132
+ };
133
+ }
134
+ }
135
+ }
136
+ conf.result.outputFiles = result.outputFiles;
137
+ conf.result.metafile = result.metafile;
138
+ conf.modifiedFileSet.clear();
139
+ });
140
+ },
141
+ };
142
+ }
143
+ //# sourceMappingURL=createSdNgPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSdNgPlugin.js","sourceRoot":"","sources":["../../../src/pkg-builders/client/createSdNgPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { TNormPath } from "@simplysm/sd-core-node";
2
+ export declare class ScopePathSet {
3
+ #private;
4
+ constructor(arrOrSet?: TNormPath[] | Set<TNormPath>);
5
+ inScope(filePath: string): boolean;
6
+ toArray(): TNormPath[];
7
+ }
@@ -0,0 +1,14 @@
1
+ import { PathUtils } from "@simplysm/sd-core-node";
2
+ export class ScopePathSet {
3
+ #data;
4
+ constructor(arrOrSet) {
5
+ this.#data = arrOrSet instanceof Set ? arrOrSet : new Set(arrOrSet);
6
+ }
7
+ inScope(filePath) {
8
+ return Array.from(this.#data).some((scope) => PathUtils.isChildPath(filePath, scope));
9
+ }
10
+ toArray() {
11
+ return Array.from(this.#data);
12
+ }
13
+ }
14
+ //# sourceMappingURL=ScopePathSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScopePathSet.js","sourceRoot":"","sources":["../../../src/pkg-builders/commons/ScopePathSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,MAAM,wBAAwB,CAAC;AAE9D,MAAM,OAAO,YAAY;IACvB,KAAK,CAAiB;IAEtB,YAAY,QAAuC;QACjD,IAAI,CAAC,KAAK,GAAG,QAAQ,YAAY,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,CAAC,QAAgB;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { SdLogger, TNormPath } from "@simplysm/sd-core-node";
2
+ import { ISdProjectConfig, TSdPackageConfig } from "../../types/config/ISdProjectConfig";
3
+ import { ScopePathSet } from "./ScopePathSet";
4
+ import { ISdBuildResult } from "../../types/build/ISdBuildResult";
5
+ export declare abstract class SdBuildRunnerBase<T extends "server" | "library" | "client"> {
6
+ protected _pkgPath: TNormPath;
7
+ protected _projConf: ISdProjectConfig;
8
+ protected _watch: boolean;
9
+ protected _dev: boolean;
10
+ protected _emitOnly?: boolean | undefined;
11
+ protected _noEmit?: boolean | undefined;
12
+ protected abstract _logger: SdLogger;
13
+ protected _pkgName: string;
14
+ protected _pkgConf: TSdPackageConfig<T>;
15
+ protected _scopePathSet: ScopePathSet;
16
+ constructor(_pkgPath: TNormPath, _projConf: ISdProjectConfig, scopePathSet: Set<TNormPath>, _watch: boolean, _dev: boolean, _emitOnly?: boolean | undefined, _noEmit?: boolean | undefined);
17
+ rebuildAsync(modifiedFileSet?: Set<TNormPath>): Promise<ISdBuildResult>;
18
+ protected abstract _runAsync(modifiedFileSet?: Set<TNormPath>): Promise<ISdBuildResult>;
19
+ protected _debug(msg: string): void;
20
+ }
@@ -0,0 +1,30 @@
1
+ import { FsUtils } from "@simplysm/sd-core-node";
2
+ import path from "path";
3
+ import { ScopePathSet } from "./ScopePathSet";
4
+ export class SdBuildRunnerBase {
5
+ constructor(_pkgPath, _projConf, scopePathSet, _watch, _dev, _emitOnly, _noEmit) {
6
+ this._pkgPath = _pkgPath;
7
+ this._projConf = _projConf;
8
+ this._watch = _watch;
9
+ this._dev = _dev;
10
+ this._emitOnly = _emitOnly;
11
+ this._noEmit = _noEmit;
12
+ this._pkgName = path.basename(_pkgPath);
13
+ this._pkgConf = _projConf.packages[this._pkgName];
14
+ this._scopePathSet = new ScopePathSet(scopePathSet);
15
+ }
16
+ async rebuildAsync(modifiedFileSet) {
17
+ if (!modifiedFileSet && !this._noEmit) {
18
+ const distPath = path.resolve(this._pkgPath, "dist");
19
+ if (FsUtils.exists(distPath)) {
20
+ this._debug("dist 초기화...");
21
+ FsUtils.remove(distPath);
22
+ }
23
+ }
24
+ return await this._runAsync(modifiedFileSet);
25
+ }
26
+ _debug(msg) {
27
+ this._logger.debug(`[${path.basename(this._pkgPath)}] ${msg}`);
28
+ }
29
+ }
30
+ //# sourceMappingURL=SdBuildRunnerBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdBuildRunnerBase.js","sourceRoot":"","sources":["../../../src/pkg-builders/commons/SdBuildRunnerBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAuB,MAAM,wBAAwB,CAAC;AACtE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,OAAgB,iBAAiB;IAQrC,YACY,QAAmB,EACnB,SAA2B,EACrC,YAA4B,EAClB,MAAe,EACf,IAAa,EACb,SAAmB,EACnB,OAAiB;QANjB,aAAQ,GAAR,QAAQ,CAAW;QACnB,cAAS,GAAT,SAAS,CAAkB;QAE3B,WAAM,GAAN,MAAM,CAAS;QACf,SAAI,GAAJ,IAAI,CAAS;QACb,cAAS,GAAT,SAAS,CAAU;QACnB,YAAO,GAAP,OAAO,CAAU;QAE3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAwB,CAAC;QAEzE,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,eAAgC;QACjD,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACrD,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC/C,CAAC;IAIS,MAAM,CAAC,GAAW;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ export declare class SdCliDbContextFileGenerator {
2
+ cachedHash?: string;
3
+ watch(pkgPath: string, kebabName: string): void;
4
+ run(pkgPath: string, kebabName: string): {
5
+ changed: boolean;
6
+ filePath: string;
7
+ content: string;
8
+ };
9
+ }
@@ -0,0 +1,134 @@
1
+ import { FsUtils, HashUtils, PathUtils, SdFsWatcher } from "@simplysm/sd-core-node";
2
+ import path from "path";
3
+ import { StringUtils } from "@simplysm/sd-core-common";
4
+ export class SdCliDbContextFileGenerator {
5
+ watch(pkgPath, kebabName) {
6
+ const targetFilePath = path.resolve(pkgPath, `src/${kebabName}.ts`);
7
+ this.cachedHash = FsUtils.exists(targetFilePath)
8
+ ? HashUtils.get(FsUtils.readFile(targetFilePath))
9
+ : undefined;
10
+ SdFsWatcher.watch([path.resolve(pkgPath, "src")], {
11
+ ignored: [targetFilePath],
12
+ }).onChange({ delay: 50 }, (changeInfos) => {
13
+ if (changeInfos.some((item) => ["add", "addDir", "unlink", "unlinkDir"].includes(item.event)))
14
+ this.run(pkgPath, kebabName);
15
+ });
16
+ this.run(pkgPath, kebabName);
17
+ }
18
+ run(pkgPath, kebabName) {
19
+ const npmConfig = FsUtils.readJson(path.resolve(pkgPath, "package.json"));
20
+ const useExt = npmConfig.dependencies?.["@simplysm/sd-orm-common-ext"] != null;
21
+ const targetFilePath = path.resolve(pkgPath, `src/${kebabName}.ts`);
22
+ const importTexts = [];
23
+ if (useExt) {
24
+ importTexts.push('import { DbContextExt } from "@simplysm/sd-orm-common-ext";');
25
+ }
26
+ else {
27
+ importTexts.push('import { DbContext } from "@simplysm/sd-orm-common";');
28
+ }
29
+ // Migrations
30
+ const migTexts = [];
31
+ {
32
+ const filePaths = FsUtils.glob(path.resolve(pkgPath, "src/migrations/**/*.ts"), {
33
+ nodir: true,
34
+ });
35
+ for (const filePath of filePaths.orderBy()) {
36
+ const requirePath = PathUtils.posix(path.relative(path.dirname(targetFilePath), filePath))
37
+ .replace(/\.tsx?$/, "")
38
+ .replace(/\/index$/, "");
39
+ const fileName = path.basename(filePath, path.extname(filePath));
40
+ const className = fileName.includes("_") ? fileName : StringUtils.toPascalCase(fileName);
41
+ importTexts.push(`import { ${className} } from "./${requirePath}";`);
42
+ migTexts.push(className + ",");
43
+ }
44
+ }
45
+ // Models
46
+ const modelTexts = [];
47
+ {
48
+ const filePaths = FsUtils.glob(path.resolve(pkgPath, "src/models/**/*.ts"), { nodir: true });
49
+ for (const filePath of filePaths.orderBy()) {
50
+ const requirePath = PathUtils.posix(path.relative(path.dirname(targetFilePath), filePath))
51
+ .replace(/\.tsx?$/, "")
52
+ .replace(/\/index$/, "");
53
+ const fileName = path.basename(filePath, path.extname(filePath));
54
+ const varName = fileName.includes("_") ? fileName : StringUtils.toCamelCase(fileName);
55
+ const className = fileName.includes("_") ? fileName : StringUtils.toPascalCase(fileName);
56
+ importTexts.push(`import { ${className} } from "./${requirePath}";`);
57
+ if (useExt &&
58
+ [
59
+ "systemDataLog",
60
+ "systemLog",
61
+ "authentication",
62
+ "user",
63
+ "userConfig",
64
+ "userPermission",
65
+ ].includes(varName)) {
66
+ modelTexts.push(`override ${varName} = new Queryable(this, ${className})`);
67
+ }
68
+ else {
69
+ modelTexts.push(`${varName} = new Queryable(this, ${className})`);
70
+ }
71
+ }
72
+ }
73
+ // Views
74
+ const viewTexts = [];
75
+ {
76
+ const filePaths = FsUtils.glob(path.resolve(pkgPath, "src/views/**/*.ts"), { nodir: true });
77
+ for (const filePath of filePaths.orderBy()) {
78
+ const requirePath = PathUtils.posix(path.relative(path.dirname(targetFilePath), filePath))
79
+ .replace(/\.tsx?$/, "")
80
+ .replace(/\/index$/, "");
81
+ const fileName = path.basename(filePath, path.extname(filePath));
82
+ const varName = fileName.includes("_") ? fileName : StringUtils.toCamelCase(fileName);
83
+ const className = fileName.includes("_") ? fileName : StringUtils.toPascalCase(fileName);
84
+ importTexts.push(`import { ${className} } from "./${requirePath}";`);
85
+ viewTexts.push(`${varName} = new Queryable(this, ${className})`);
86
+ }
87
+ }
88
+ // Stored Procedures
89
+ const spTexts = [];
90
+ {
91
+ const filePaths = FsUtils.glob(path.resolve(pkgPath, "src/stored-procedures/**/*.ts"), {
92
+ nodir: true,
93
+ });
94
+ for (const filePath of filePaths.orderBy()) {
95
+ const requirePath = PathUtils.posix(path.relative(path.dirname(targetFilePath), filePath))
96
+ .replace(/\.tsx?$/, "")
97
+ .replace(/\/index$/, "");
98
+ const fileName = path.basename(filePath, path.extname(filePath));
99
+ const varName = fileName.includes("_") ? fileName : StringUtils.toCamelCase(fileName);
100
+ const className = fileName.includes("_") ? fileName : StringUtils.toPascalCase(fileName);
101
+ importTexts.push(`import { ${className} } from "./${requirePath}";`);
102
+ spTexts.push(`${varName} = new StoredProcedure(this, ${className})`);
103
+ }
104
+ }
105
+ importTexts.push(...[
106
+ `import { IDbMigration${modelTexts.length > 0 || viewTexts.length > 0 ? ", Queryable" : ""}${spTexts.length > 0 ? ", StoredProcedure" : ""} } from "@simplysm/sd-orm-common";`,
107
+ 'import { Type } from "@simplysm/sd-core-common";',
108
+ ]);
109
+ const content = `
110
+ ${importTexts.join("\n")}
111
+
112
+ export class ${StringUtils.toPascalCase(kebabName)} extends DbContext${useExt ? "Ext" : ""} {
113
+ get migrations(): Type<IDbMigration>[] {
114
+ return [
115
+ ${migTexts.map((item) => " " + item).join("\n")}
116
+ ];
117
+ }
118
+ ${modelTexts.length > 0 ? "\n // Models\n" + modelTexts.map((item) => " " + item).join("\n") : ""}
119
+ ${viewTexts.length > 0 ? "\n // Views\n" + viewTexts.map((item) => " " + item).join("\n") : ""}
120
+ ${spTexts.length > 0 ? "\n // StoredProcedures\n" + spTexts.map((item) => " " + item).join("\n") : ""}
121
+ }
122
+ `.trim();
123
+ const currHash = HashUtils.get(content);
124
+ if (currHash !== this.cachedHash) {
125
+ FsUtils.writeFile(targetFilePath, content);
126
+ this.cachedHash = currHash;
127
+ return { changed: true, filePath: targetFilePath, content };
128
+ }
129
+ else {
130
+ return { changed: false, filePath: targetFilePath, content };
131
+ }
132
+ }
133
+ }
134
+ //# sourceMappingURL=SdCliDbContextFileGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliDbContextFileGenerator.js","sourceRoot":"","sources":["../../../src/pkg-builders/lib/SdCliDbContextFileGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare class SdCliIndexFileGenerator {
2
+ #private;
3
+ cachedHash?: string;
4
+ watch(pkgPath: string, polyfills?: string[]): void;
5
+ run(pkgPath: string, polyfills?: string[]): {
6
+ changed: boolean;
7
+ filePath: string;
8
+ content: string;
9
+ };
10
+ }
@@ -0,0 +1,61 @@
1
+ import { FsUtils, HashUtils, PathUtils, SdFsWatcher } from "@simplysm/sd-core-node";
2
+ import path from "path";
3
+ export class SdCliIndexFileGenerator {
4
+ watch(pkgPath, polyfills) {
5
+ const indexFilePath = path.resolve(pkgPath, "src/index.ts");
6
+ this.cachedHash = FsUtils.exists(indexFilePath)
7
+ ? HashUtils.get(FsUtils.readFile(indexFilePath))
8
+ : undefined;
9
+ SdFsWatcher.watch([path.resolve(pkgPath, "src")], {
10
+ ignored: [indexFilePath],
11
+ }).onChange({ delay: 50 }, (changeInfos) => {
12
+ if (changeInfos.some((item) => ["add", "addDir", "unlink", "unlinkDir"].includes(item.event)))
13
+ this.run(pkgPath, polyfills);
14
+ });
15
+ this.run(pkgPath, polyfills);
16
+ }
17
+ run(pkgPath, polyfills) {
18
+ const indexFilePath = path.resolve(pkgPath, "src/index.ts");
19
+ const importTexts = [];
20
+ // polyfills 를 모두 import
21
+ if (polyfills) {
22
+ for (const polyfill of polyfills.orderBy()) {
23
+ importTexts.push(`import "${polyfill}";`);
24
+ }
25
+ }
26
+ // 내부 파일들 import
27
+ const filePaths = this.#getFilePaths(pkgPath);
28
+ for (const filePath of filePaths.orderBy()) {
29
+ const requirePath = PathUtils.posix(path.relative(path.dirname(indexFilePath), filePath))
30
+ .replace(/\.tsx?$/, "")
31
+ .replace(/\/index$/, "");
32
+ const sourceTsFileContent = FsUtils.readFile(filePath);
33
+ if (sourceTsFileContent.split("\n").some((line) => line.startsWith("export "))) {
34
+ importTexts.push(`export * from "./${requirePath}";`);
35
+ }
36
+ else {
37
+ importTexts.push(`import "./${requirePath}";`);
38
+ }
39
+ }
40
+ const content = importTexts.join("\n") + "\n";
41
+ const currHash = HashUtils.get(content);
42
+ if (currHash !== this.cachedHash) {
43
+ FsUtils.writeFile(indexFilePath, content);
44
+ this.cachedHash = currHash;
45
+ return { changed: true, filePath: indexFilePath, content };
46
+ }
47
+ else {
48
+ return { changed: false, filePath: indexFilePath, content };
49
+ }
50
+ }
51
+ #getFilePaths(pkgPath) {
52
+ const indexFilePath = path.resolve(pkgPath, "src/index.ts");
53
+ const tsconfig = FsUtils.readJson(path.resolve(pkgPath, "tsconfig.json"));
54
+ const entryFilePaths = tsconfig.files?.map((item) => path.resolve(pkgPath, item)) ?? [];
55
+ return FsUtils.glob(path.resolve(pkgPath, "src/**/*{.ts,.tsx}"), {
56
+ nodir: true,
57
+ ignore: tsconfig.excludes,
58
+ }).filter((item) => !entryFilePaths.includes(item) && item !== indexFilePath && !item.endsWith(".d.ts"));
59
+ }
60
+ }
61
+ //# sourceMappingURL=SdCliIndexFileGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliIndexFileGenerator.js","sourceRoot":"","sources":["../../../src/pkg-builders/lib/SdCliIndexFileGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { SdLogger, TNormPath } from "@simplysm/sd-core-node";
2
+ import { SdBuildRunnerBase } from "../commons/SdBuildRunnerBase";
3
+ import { ISdBuildResult } from "../../types/build/ISdBuildResult";
4
+ export declare class SdJsLibBuildRunner extends SdBuildRunnerBase<"library"> {
5
+ #private;
6
+ protected _logger: SdLogger;
7
+ protected _runAsync(modifiedFileSet?: Set<TNormPath>): Promise<ISdBuildResult>;
8
+ }
@@ -0,0 +1,45 @@
1
+ import { FsUtils, PathUtils, SdLogger } from "@simplysm/sd-core-node";
2
+ import path from "path";
3
+ import { ESLint } from "eslint";
4
+ import { SdBuildRunnerBase } from "../commons/SdBuildRunnerBase";
5
+ import { SdCliConvertMessageUtils } from "../../utils/SdCliConvertMessageUtils";
6
+ export class SdJsLibBuildRunner extends SdBuildRunnerBase {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._logger = SdLogger.get(["simplysm", "sd-cli", "SdJsLibBuildRunner"]);
10
+ }
11
+ async _runAsync(modifiedFileSet) {
12
+ if (this._emitOnly) {
13
+ return {
14
+ buildMessages: [],
15
+ watchFileSet: new Set(),
16
+ affectedFileSet: new Set(),
17
+ emitFileSet: new Set(),
18
+ };
19
+ }
20
+ const filePathSet = modifiedFileSet ??
21
+ new Set(FsUtils.glob(path.resolve(this._pkgPath, "src/**/*.js")).map((item) => PathUtils.norm(item)));
22
+ this._debug("LINT...");
23
+ const lintResults = await this.#lintAsync(filePathSet);
24
+ const messages = SdCliConvertMessageUtils.convertToBuildMessagesFromEslint(lintResults);
25
+ this._debug(`LINT 완료`);
26
+ return {
27
+ buildMessages: messages,
28
+ watchFileSet: filePathSet,
29
+ affectedFileSet: filePathSet,
30
+ emitFileSet: new Set(),
31
+ };
32
+ }
33
+ async #lintAsync(fileSet) {
34
+ const lintFilePaths = Array.from(fileSet)
35
+ .filter((item) => PathUtils.isChildPath(item, path.resolve(this._pkgPath, "src")))
36
+ .filter((item) => item.endsWith(".js"))
37
+ .filter((item) => FsUtils.exists(item));
38
+ if (lintFilePaths.length === 0) {
39
+ return [];
40
+ }
41
+ const linter = new ESLint({ cwd: this._pkgPath, cache: false });
42
+ return await linter.lintFiles(lintFilePaths);
43
+ }
44
+ }
45
+ //# sourceMappingURL=SdJsLibBuildRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdJsLibBuildRunner.js","sourceRoot":"","sources":["../../../src/pkg-builders/lib/SdJsLibBuildRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAa,MAAM,wBAAwB,CAAC;AACjF,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,MAAM,OAAO,kBAAmB,SAAQ,iBAA4B;IAApE;;QACqB,YAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAkD1F,CAAC;IAhDoB,KAAK,CAAC,SAAS,CAAC,eAAgC;QACjE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;gBACL,aAAa,EAAE,EAAE;gBAEjB,YAAY,EAAE,IAAI,GAAG,EAAE;gBACvB,eAAe,EAAE,IAAI,GAAG,EAAE;gBAC1B,WAAW,EAAE,IAAI,GAAG,EAAE;aACvB,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GACf,eAAe;YACf,IAAI,GAAG,CACL,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CACrB,CACF,CAAC;QAEJ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,gCAAgC,CAAC,WAAW,CAAC,CAAC;QAExF,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEvB,OAAO;YACL,aAAa,EAAE,QAAQ;YAEvB,YAAY,EAAE,WAAW;YACzB,eAAe,EAAE,WAAW;YAC5B,WAAW,EAAE,IAAI,GAAG,EAAE;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAoB;QACnC,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aACtC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;aACjF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACtC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,OAAO,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { SdLogger, TNormPath } from "@simplysm/sd-core-node";
2
+ import { SdBuildRunnerBase } from "../commons/SdBuildRunnerBase";
3
+ import { ISdBuildResult } from "../../types/build/ISdBuildResult";
4
+ export declare class SdTsLibBuildRunner extends SdBuildRunnerBase<"library"> {
5
+ #private;
6
+ protected _logger: SdLogger;
7
+ protected _runAsync(modifiedFileSet?: Set<TNormPath>): Promise<ISdBuildResult>;
8
+ }
@@ -0,0 +1,36 @@
1
+ import { PathUtils, SdLogger } from "@simplysm/sd-core-node";
2
+ import { SdBuildRunnerBase } from "../commons/SdBuildRunnerBase";
3
+ import { SdTsLibBuilder } from "./SdTsLibBuilder";
4
+ import { SdCliIndexFileGenerator } from "./SdCliIndexFileGenerator";
5
+ import { SdCliDbContextFileGenerator } from "./SdCliDbContextFileGenerator";
6
+ export class SdTsLibBuildRunner extends SdBuildRunnerBase {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._logger = SdLogger.get(["simplysm", "sd-cli", "SdTsLibBuildRunner"]);
10
+ }
11
+ #builder;
12
+ async _runAsync(modifiedFileSet) {
13
+ // 최초한번
14
+ if (!modifiedFileSet) {
15
+ if (!this._noEmit) {
16
+ // index
17
+ if (!this._pkgConf.noGenIndex) {
18
+ this._debug("GEN index.ts...");
19
+ new SdCliIndexFileGenerator().watch(this._pkgPath, this._pkgConf.polyfills);
20
+ }
21
+ // db-context
22
+ if (this._pkgConf.dbContext != null) {
23
+ this._debug(`GEN ${this._pkgConf.dbContext}.ts...`);
24
+ new SdCliDbContextFileGenerator().watch(this._pkgPath, this._pkgConf.dbContext);
25
+ }
26
+ }
27
+ this._debug(`BUILD 준비...`);
28
+ this.#builder = new SdTsLibBuilder(PathUtils.norm(this._pkgPath), this._watch, this._dev, this._emitOnly ?? false, this._noEmit ?? false, this._scopePathSet);
29
+ }
30
+ this._debug(`BUILD...`);
31
+ const buildResult = await this.#builder.buildAsync(modifiedFileSet);
32
+ this._debug(`빌드 완료`);
33
+ return buildResult;
34
+ }
35
+ }
36
+ //# sourceMappingURL=SdTsLibBuildRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdTsLibBuildRunner.js","sourceRoot":"","sources":["../../../src/pkg-builders/lib/SdTsLibBuildRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAa,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,OAAO,kBAAmB,SAAQ,iBAA4B;IAApE;;QACqB,YAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAsC1F,CAAC;IApCC,QAAQ,CAAkB;IAEP,KAAK,CAAC,SAAS,CAAC,eAAgC;QACjE,OAAO;QACP,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,QAAQ;gBACR,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;oBAC/B,IAAI,uBAAuB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC9E,CAAC;gBAED,aAAa;gBACb,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,QAAQ,CAAC,CAAC;oBACpD,IAAI,2BAA2B,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAChC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC7B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,SAAS,IAAI,KAAK,EACvB,IAAI,CAAC,OAAO,IAAI,KAAK,EACrB,IAAI,CAAC,aAAa,CACnB,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAErE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { TNormPath } from "@simplysm/sd-core-node";
2
+ import { ScopePathSet } from "../commons/ScopePathSet";
3
+ import { ISdBuildResult } from "../../types/build/ISdBuildResult";
4
+ export declare class SdTsLibBuilder {
5
+ #private;
6
+ private readonly _pkgPath;
7
+ constructor(_pkgPath: TNormPath, watch: boolean, dev: boolean, emitOnly: boolean, noEmit: boolean, scopePathSet: ScopePathSet);
8
+ buildAsync(modifiedFileSet?: Set<TNormPath>): Promise<ISdBuildResult>;
9
+ }