@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
@@ -1,20 +1,20 @@
1
- import {FsUtil, Logger, PathUtil, SdFsWatcher} from "@simplysm/sd-core-node";
1
+ import { FsUtil, Logger, PathUtil, SdFsWatcher } from "@simplysm/sd-core-node";
2
2
  import path from "path";
3
- import {pathToFileURL} from "url";
4
- import {ISdCliConfig} from "../commons";
3
+ import { pathToFileURL } from "url";
4
+ import { ISdProjectConfig } from "../types/sd-configs.type";
5
5
 
6
6
  export class SdCliLocalUpdate {
7
- public static async runAsync(opt: {
8
- confFileRelPath: string;
9
- optNames: string[];
10
- }): Promise<void> {
7
+ static async runAsync(opt: { confFileRelPath: string; optNames: string[] }): Promise<void> {
11
8
  const logger = Logger.get(["simplysm", "sd-cli", "SdCliLocalUpdate", "runAsync"]);
12
9
 
13
10
  logger.debug("프로젝트 설정 가져오기...");
14
- const projConf = (await import(pathToFileURL(path.resolve(process.cwd(), opt.confFileRelPath)).href)).default(true, opt.optNames) as ISdCliConfig;
11
+ const projConf = (await import(pathToFileURL(path.resolve(process.cwd(), opt.confFileRelPath)).href)).default(
12
+ true,
13
+ opt.optNames,
14
+ ) as ISdProjectConfig;
15
15
  if (!projConf.localUpdates) return;
16
16
 
17
- const updatePathInfos = await this._getUpdatePathInfosAsync(projConf.localUpdates);
17
+ const updatePathInfos = this.#getUpdatePathInfos(projConf.localUpdates);
18
18
  logger.debug("로컬 업데이트 구성", updatePathInfos);
19
19
 
20
20
  logger.log("로컬 라이브러리 업데이트 시작...");
@@ -25,94 +25,93 @@ export class SdCliLocalUpdate {
25
25
  }
26
26
 
27
27
  // 소스경로에서 대상경로로 파일 복사
28
- await FsUtil.copyAsync(updatePathInfo.source, updatePathInfo.target, (src) => {
28
+ FsUtil.copy(updatePathInfo.source, updatePathInfo.target, (src) => {
29
29
  return !src.includes("node_modules") && !src.endsWith("package.json");
30
30
  });
31
31
  }
32
32
  logger.info("로컬 라이브러리 업데이트 완료");
33
33
  }
34
34
 
35
- public static async watchAsync(opt: {
36
- confFileRelPath: string;
37
- optNames: string[];
38
- }): Promise<void> {
35
+ static async watchAsync(opt: { confFileRelPath: string; optNames: string[] }): Promise<void> {
39
36
  const logger = Logger.get(["simplysm", "sd-cli", "SdCliLocalUpdate", "watchAsync"]);
40
37
 
41
38
  logger.debug("프로젝트 설정 가져오기...");
42
- const projConf = (await import(pathToFileURL(path.resolve(process.cwd(), opt.confFileRelPath)).href)).default(true, opt.optNames) as ISdCliConfig;
39
+ const projConf = (await import(pathToFileURL(path.resolve(process.cwd(), opt.confFileRelPath)).href)).default(
40
+ true,
41
+ opt.optNames,
42
+ ) as ISdProjectConfig;
43
43
  if (!projConf.localUpdates) return;
44
44
 
45
- const updatePathInfos = await this._getUpdatePathInfosAsync(projConf.localUpdates);
45
+ const updatePathInfos = this.#getUpdatePathInfos(projConf.localUpdates);
46
46
  logger.debug("로컬 업데이트 구성");
47
47
 
48
- const watchPaths = (await updatePathInfos.mapManyAsync(async (item) => await this._getWatchPathsAsync(item.source))).distinct();
48
+ const watchPaths = updatePathInfos.mapMany((item) => this.#getWatchPaths(item.source)).distinct();
49
49
 
50
50
  const watcher = SdFsWatcher.watch(watchPaths);
51
- watcher.onChange({delay: 1000}, async (changedInfos) => {
52
- const changeFilePaths = changedInfos.filter((item) => ["add", "change", "unlink"].includes(item.event)).map((item) => item.path);
53
- if (changeFilePaths.length === 0) return;
51
+ watcher.onChange({ delay: 1000 }, (changedInfos) => {
52
+ const changedFileInfos = changedInfos.filter((item) => ["add", "change", "unlink"].includes(item.event));
53
+ if (changedFileInfos.length === 0) return;
54
54
 
55
55
  logger.log("로컬 라이브러리 변경감지...");
56
- for (const changedFilePath of changeFilePaths) {
57
- if (!FsUtil.exists(changedFilePath)) continue;
58
56
 
57
+ for (const changedFileInfo of changedFileInfos) {
59
58
  for (const updatePathInfo of updatePathInfos) {
60
- if (!PathUtil.isChildPath(changedFilePath, updatePathInfo.source)) continue;
61
-
62
- const sourceRelPath = path.relative(updatePathInfo.source, changedFilePath);
63
- // if (sourceRelPath.includes("node_modules")) continue;
64
- // if (sourceRelPath.includes("package.json")) continue;
59
+ if (!PathUtil.isChildPath(changedFileInfo.path, updatePathInfo.source)) continue;
65
60
 
61
+ const sourceRelPath = path.relative(updatePathInfo.source, changedFileInfo.path);
66
62
  const targetFilePath = path.resolve(updatePathInfo.target, sourceRelPath);
67
63
 
68
- logger.debug(`변경파일감지(복사): ${changedFilePath} => ${targetFilePath}`);
69
- await FsUtil.copyAsync(changedFilePath, targetFilePath);
64
+ if (changedFileInfo.event === "unlink") {
65
+ logger.debug(`변경파일감지(삭제): ${targetFilePath}`);
66
+ FsUtil.remove(targetFilePath);
67
+ } else {
68
+ logger.debug(`변경파일감지(복사): ${changedFileInfo.path} => ${targetFilePath}`);
69
+ FsUtil.copy(changedFileInfo.path, targetFilePath);
70
+ }
70
71
  }
71
72
  }
72
73
 
73
- const watchFileSet = new Set(await updatePathInfos.mapManyAsync(async (item) => await this._getWatchPathsAsync(item.source)));
74
- watcher.add(watchFileSet);
74
+ const watchFileSet = new Set(updatePathInfos.mapMany((item) => this.#getWatchPaths(item.source)));
75
+
76
+ watcher.replaceWatchPaths(watchFileSet);
75
77
 
76
78
  logger.info("로컬 라이브러리 복사 완료");
77
79
  });
78
80
  }
79
81
 
80
- private static async _getUpdatePathInfosAsync(record: Record<string, string>): Promise<IUpdatePathInfo[]> {
82
+ static #getUpdatePathInfos(record: Record<string, string>): IUpdatePathInfo[] {
81
83
  const result: IUpdatePathInfo[] = [];
82
84
  for (const pkgGlobPath of Object.keys(record)) {
83
85
  // "node_modules'에서 로컬업데이트 설정에 맞는 패키지를 "glob"하여 대상 패키지경로 목록 가져오기
84
86
  const targetPaths = [
85
- ...await FsUtil.globAsync(path.resolve(process.cwd(), "node_modules", pkgGlobPath)),
86
- ...await FsUtil.globAsync(path.resolve(process.cwd(), "packages", "*", "node_modules", pkgGlobPath))
87
+ ...FsUtil.glob(path.resolve(process.cwd(), "node_modules", pkgGlobPath)),
88
+ ...FsUtil.glob(path.resolve(process.cwd(), "packages", "*", "node_modules", pkgGlobPath)),
87
89
  ];
88
90
 
89
91
  result.push(
90
92
  ...targetPaths
91
93
  .map((targetPath) => {
92
94
  // 대상의 명칭 추출
93
- const regexpText = pkgGlobPath.replace(/[\\/.*]/g, (item) => (
94
- item === "/" ? "[\\\\\\/]"
95
- : item === "." ? "\\."
96
- : item === "*" ? "(.*)"
97
- : item
98
- ));
95
+ const regexpText = pkgGlobPath.replace(/[\\/.*]/g, (item) =>
96
+ item === "/" ? "[\\\\\\/]" : item === "." ? "\\." : item === "*" ? "(.*)" : item,
97
+ );
99
98
  const targetNameMatch = new RegExp(regexpText).exec(targetPath);
100
99
  if (!targetNameMatch || typeof targetNameMatch[1] === "undefined") return undefined;
101
100
  const targetName = targetNameMatch[1];
102
101
 
103
102
  // 가져올 소스 경로 추출
104
103
  const sourcePath = path.resolve(record[pkgGlobPath].replace(/\*/g, targetName));
105
- return {source: sourcePath, target: targetPath};
104
+ return { source: sourcePath, target: targetPath };
106
105
  })
107
- .filterExists()
106
+ .filterExists(),
108
107
  );
109
108
  }
110
109
 
111
110
  return result;
112
111
  }
113
112
 
114
- private static async _getWatchPathsAsync(sourcePath: string): Promise<string[]> {
115
- return await FsUtil.globAsync(path.resolve(sourcePath, "**"));
113
+ static #getWatchPaths(sourcePath: string): string[] {
114
+ return FsUtil.glob(path.resolve(sourcePath, "**"));
116
115
  }
117
116
  }
118
117