@simplysm/sd-cli 7.3.1 → 10.0.4

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 (217) hide show
  1. package/.eslintrc.cjs +18 -0
  2. package/dist/build-cluster.js +75 -0
  3. package/dist/build-cluster.js.map +1 -0
  4. package/dist/builders/SdCliJsLibLinter.d.ts +18 -0
  5. package/dist/builders/SdCliJsLibLinter.js +69 -0
  6. package/dist/builders/SdCliJsLibLinter.js.map +1 -0
  7. package/dist/builders/SdCliTsLibBuilder.d.ts +20 -0
  8. package/dist/builders/SdCliTsLibBuilder.js +205 -0
  9. package/dist/builders/SdCliTsLibBuilder.js.map +1 -0
  10. package/dist/commons.d.ts +3 -117
  11. package/dist/commons.js +2 -0
  12. package/dist/commons.js.map +1 -0
  13. package/dist/entry/SdCliProject.d.ts +28 -0
  14. package/dist/entry/SdCliProject.js +269 -0
  15. package/dist/entry/SdCliProject.js.map +1 -0
  16. package/dist/sd-cli.js +118 -0
  17. package/dist/sd-cli.js.map +1 -0
  18. package/dist/utils/SdCliBuildResultUtil.d.ts +1 -4
  19. package/dist/utils/SdCliBuildResultUtil.js +37 -0
  20. package/dist/utils/SdCliBuildResultUtil.js.map +1 -0
  21. package/dist/utils/SdCliConfigUtil.js +69 -0
  22. package/dist/utils/SdCliConfigUtil.js.map +1 -0
  23. package/package.json +10 -59
  24. package/src/build-cluster.ts +82 -0
  25. package/src/builders/SdCliJsLibLinter.ts +84 -0
  26. package/src/builders/SdCliTsLibBuilder.ts +265 -0
  27. package/src/commons.ts +3 -123
  28. package/src/entry/SdCliProject.ts +351 -0
  29. package/src/sd-cli.ts +135 -0
  30. package/src/utils/SdCliBuildResultUtil.ts +5 -38
  31. package/tsconfig.json +18 -0
  32. package/README.md +0 -105
  33. package/assets/client-files/assets/icons/icon-128x128.png +0 -0
  34. package/assets/client-files/assets/icons/icon-144x144.png +0 -0
  35. package/assets/client-files/assets/icons/icon-152x152.png +0 -0
  36. package/assets/client-files/assets/icons/icon-192x192.png +0 -0
  37. package/assets/client-files/assets/icons/icon-384x384.png +0 -0
  38. package/assets/client-files/assets/icons/icon-512x512.png +0 -0
  39. package/assets/client-files/assets/icons/icon-72x72.png +0 -0
  40. package/assets/client-files/assets/icons/icon-96x96.png +0 -0
  41. package/assets/client-files/favicon.ico +0 -0
  42. package/dist/SdCliBuildResultError.d.ts +0 -5
  43. package/dist/SdCliBuildResultError.mjs +0 -8
  44. package/dist/bin/sd-cli.d.ts +0 -2
  45. package/dist/bin/sd-cli.mjs +0 -410
  46. package/dist/build-tool/SdCliCacheCompilerHost.d.ts +0 -10
  47. package/dist/build-tool/SdCliCacheCompilerHost.mjs +0 -51
  48. package/dist/build-tool/SdCliCordova.d.ts +0 -16
  49. package/dist/build-tool/SdCliCordova.mjs +0 -212
  50. package/dist/build-tool/SdCliElectron.d.ts +0 -9
  51. package/dist/build-tool/SdCliElectron.mjs +0 -71
  52. package/dist/build-tool/SdCliGithubApi.d.ts +0 -13
  53. package/dist/build-tool/SdCliGithubApi.mjs +0 -92
  54. package/dist/build-tool/SdCliIndexFileGenerator.d.ts +0 -13
  55. package/dist/build-tool/SdCliIndexFileGenerator.mjs +0 -62
  56. package/dist/build-tool/SdCliNgCacheCompilerHost.d.ts +0 -12
  57. package/dist/build-tool/SdCliNgCacheCompilerHost.mjs +0 -43
  58. package/dist/build-tool/SdCliPackageLinter.d.ts +0 -8
  59. package/dist/build-tool/SdCliPackageLinter.mjs +0 -62
  60. package/dist/builder/SdCliClientBuilder.d.ts +0 -26
  61. package/dist/builder/SdCliClientBuilder.mjs +0 -761
  62. package/dist/builder/SdCliJsLibBuilder.d.ts +0 -14
  63. package/dist/builder/SdCliJsLibBuilder.mjs +0 -54
  64. package/dist/builder/SdCliServerBuilder.d.ts +0 -28
  65. package/dist/builder/SdCliServerBuilder.mjs +0 -482
  66. package/dist/builder/SdCliTsLibBuilder.d.ts +0 -35
  67. package/dist/builder/SdCliTsLibBuilder.mjs +0 -317
  68. package/dist/commons.mjs +0 -2
  69. package/dist/entry-points/SdCliFileCrypto.d.ts +0 -7
  70. package/dist/entry-points/SdCliFileCrypto.mjs +0 -72
  71. package/dist/entry-points/SdCliLocalUpdate.d.ts +0 -13
  72. package/dist/entry-points/SdCliLocalUpdate.mjs +0 -100
  73. package/dist/entry-points/SdCliPrepare.d.ts +0 -5
  74. package/dist/entry-points/SdCliPrepare.mjs +0 -86
  75. package/dist/entry-points/SdCliProject.d.ts +0 -34
  76. package/dist/entry-points/SdCliProject.mjs +0 -416
  77. package/dist/entry-points/SdCliProjectGenerator.d.ts +0 -44
  78. package/dist/entry-points/SdCliProjectGenerator.mjs +0 -326
  79. package/dist/entry-points/file/base/fc_package_eslintrc.d.ts +0 -3
  80. package/dist/entry-points/file/base/fc_package_eslintrc.mjs +0 -31
  81. package/dist/entry-points/file/base/fc_package_npmconfig.d.ts +0 -9
  82. package/dist/entry-points/file/base/fc_package_npmconfig.mjs +0 -32
  83. package/dist/entry-points/file/base/fc_package_tsconfig.d.ts +0 -5
  84. package/dist/entry-points/file/base/fc_package_tsconfig.mjs +0 -13
  85. package/dist/entry-points/file/client/fc_package_AppModule.d.ts +0 -1
  86. package/dist/entry-points/file/client/fc_package_AppModule.mjs +0 -37
  87. package/dist/entry-points/file/client/fc_package_AppPage.d.ts +0 -1
  88. package/dist/entry-points/file/client/fc_package_AppPage.mjs +0 -14
  89. package/dist/entry-points/file/client/fc_package_Page.d.ts +0 -4
  90. package/dist/entry-points/file/client/fc_package_Page.mjs +0 -19
  91. package/dist/entry-points/file/client/fc_package_client_main.d.ts +0 -1
  92. package/dist/entry-points/file/client/fc_package_client_main.mjs +0 -19
  93. package/dist/entry-points/file/client/fc_package_index.d.ts +0 -3
  94. package/dist/entry-points/file/client/fc_package_index.mjs +0 -88
  95. package/dist/entry-points/file/client/fc_package_manifest.d.ts +0 -5
  96. package/dist/entry-points/file/client/fc_package_manifest.mjs +0 -54
  97. package/dist/entry-points/file/client/fc_package_polyfills.d.ts +0 -1
  98. package/dist/entry-points/file/client/fc_package_polyfills.mjs +0 -11
  99. package/dist/entry-points/file/client/fc_package_styles.d.ts +0 -1
  100. package/dist/entry-points/file/client/fc_package_styles.mjs +0 -7
  101. package/dist/entry-points/file/db/fc_package_DbContext.d.ts +0 -3
  102. package/dist/entry-points/file/db/fc_package_DbContext.mjs +0 -14
  103. package/dist/entry-points/file/db/fc_package_DbModel.d.ts +0 -4
  104. package/dist/entry-points/file/db/fc_package_DbModel.mjs +0 -12
  105. package/dist/entry-points/file/project/fc_project_editor_config.d.ts +0 -1
  106. package/dist/entry-points/file/project/fc_project_editor_config.mjs +0 -22
  107. package/dist/entry-points/file/project/fc_project_eslintrc.d.ts +0 -1
  108. package/dist/entry-points/file/project/fc_project_eslintrc.mjs +0 -30
  109. package/dist/entry-points/file/project/fc_project_gitattributes.d.ts +0 -1
  110. package/dist/entry-points/file/project/fc_project_gitattributes.mjs +0 -6
  111. package/dist/entry-points/file/project/fc_project_gitignore.d.ts +0 -1
  112. package/dist/entry-points/file/project/fc_project_gitignore.mjs +0 -27
  113. package/dist/entry-points/file/project/fc_project_npmconfig.d.ts +0 -7
  114. package/dist/entry-points/file/project/fc_project_npmconfig.mjs +0 -37
  115. package/dist/entry-points/file/project/fc_project_readme.d.ts +0 -3
  116. package/dist/entry-points/file/project/fc_project_readme.mjs +0 -13
  117. package/dist/entry-points/file/project/fc_project_simplysm.d.ts +0 -1
  118. package/dist/entry-points/file/project/fc_project_simplysm.mjs +0 -2
  119. package/dist/entry-points/file/project/fc_project_tsconfig.d.ts +0 -1
  120. package/dist/entry-points/file/project/fc_project_tsconfig.mjs +0 -25
  121. package/dist/entry-points/file/server/fc_package_server_main.d.ts +0 -5
  122. package/dist/entry-points/file/server/fc_package_server_main.mjs +0 -60
  123. package/dist/index.d.ts +0 -54
  124. package/dist/index.mjs +0 -55
  125. package/dist/ng-tools/SdCliNgModuleGenerator.d.ts +0 -29
  126. package/dist/ng-tools/SdCliNgModuleGenerator.mjs +0 -502
  127. package/dist/ng-tools/babel/SdCliBbFileMetadata.d.ts +0 -25
  128. package/dist/ng-tools/babel/SdCliBbFileMetadata.mjs +0 -539
  129. package/dist/ng-tools/babel/SdCliBbRootMetadata.d.ts +0 -23
  130. package/dist/ng-tools/babel/SdCliBbRootMetadata.mjs +0 -247
  131. package/dist/ng-tools/babel/SdCliBbUtil.d.ts +0 -5
  132. package/dist/ng-tools/babel/SdCliBbUtil.mjs +0 -14
  133. package/dist/ng-tools/babel/TSdCliBbNgMetadata.d.ts +0 -42
  134. package/dist/ng-tools/babel/TSdCliBbNgMetadata.mjs +0 -216
  135. package/dist/ng-tools/babel/TSdCliBbTypeMetadata.d.ts +0 -55
  136. package/dist/ng-tools/babel/TSdCliBbTypeMetadata.mjs +0 -151
  137. package/dist/ng-tools/commons.d.ts +0 -9
  138. package/dist/ng-tools/commons.mjs +0 -2
  139. package/dist/ng-tools/typescript/SdCliTsFileMetadata.d.ts +0 -61
  140. package/dist/ng-tools/typescript/SdCliTsFileMetadata.mjs +0 -325
  141. package/dist/ng-tools/typescript/SdCliTsRootMetadata.d.ts +0 -8
  142. package/dist/ng-tools/typescript/SdCliTsRootMetadata.mjs +0 -28
  143. package/dist/ng-tools/typescript/SdCliTsUtil.d.ts +0 -5
  144. package/dist/ng-tools/typescript/SdCliTsUtil.mjs +0 -28
  145. package/dist/packages/SdCliPackage.d.ts +0 -22
  146. package/dist/packages/SdCliPackage.mjs +0 -206
  147. package/dist/utils/SdCliBuildResultUtil.mjs +0 -63
  148. package/dist/utils/SdCliConfigUtil.mjs +0 -69
  149. package/dist/utils/SdCliNpmConfigUtil.d.ts +0 -7
  150. package/dist/utils/SdCliNpmConfigUtil.mjs +0 -15
  151. package/dist/worker/build-worker.mjs +0 -67
  152. package/dist/worker/server-worker.mjs +0 -67
  153. package/docs/client-add-page.md +0 -8
  154. package/docs/client-router.md +0 -85
  155. package/docs/client-sw.md +0 -101
  156. package/docs/conf-orm.md +0 -81
  157. package/docs/conf-usage.md +0 -5
  158. package/docs/lib-local-update.md +0 -50
  159. package/docs/lib-ts-paths.md +0 -25
  160. package/lib/cordova-entry.js +0 -22
  161. package/src/SdCliBuildResultError.ts +0 -9
  162. package/src/bin/sd-cli.ts +0 -493
  163. package/src/build-tool/SdCliCacheCompilerHost.ts +0 -79
  164. package/src/build-tool/SdCliCordova.ts +0 -263
  165. package/src/build-tool/SdCliElectron.ts +0 -84
  166. package/src/build-tool/SdCliGithubApi.ts +0 -111
  167. package/src/build-tool/SdCliIndexFileGenerator.ts +0 -79
  168. package/src/build-tool/SdCliNgCacheCompilerHost.ts +0 -58
  169. package/src/build-tool/SdCliPackageLinter.ts +0 -74
  170. package/src/builder/SdCliClientBuilder.ts +0 -871
  171. package/src/builder/SdCliJsLibBuilder.ts +0 -70
  172. package/src/builder/SdCliServerBuilder.ts +0 -552
  173. package/src/builder/SdCliTsLibBuilder.ts +0 -450
  174. package/src/entry-points/SdCliFileCrypto.ts +0 -87
  175. package/src/entry-points/SdCliLocalUpdate.ts +0 -121
  176. package/src/entry-points/SdCliPrepare.ts +0 -86
  177. package/src/entry-points/SdCliProject.ts +0 -491
  178. package/src/entry-points/SdCliProjectGenerator.ts +0 -402
  179. package/src/entry-points/file/base/fc_package_eslintrc.ts +0 -30
  180. package/src/entry-points/file/base/fc_package_npmconfig.ts +0 -43
  181. package/src/entry-points/file/base/fc_package_tsconfig.ts +0 -12
  182. package/src/entry-points/file/client/fc_package_AppModule.ts +0 -36
  183. package/src/entry-points/file/client/fc_package_AppPage.ts +0 -13
  184. package/src/entry-points/file/client/fc_package_Page.ts +0 -19
  185. package/src/entry-points/file/client/fc_package_client_main.ts +0 -18
  186. package/src/entry-points/file/client/fc_package_index.ts +0 -87
  187. package/src/entry-points/file/client/fc_package_manifest.ts +0 -53
  188. package/src/entry-points/file/client/fc_package_polyfills.ts +0 -10
  189. package/src/entry-points/file/client/fc_package_styles.ts +0 -6
  190. package/src/entry-points/file/db/fc_package_DbContext.ts +0 -14
  191. package/src/entry-points/file/db/fc_package_DbModel.ts +0 -11
  192. package/src/entry-points/file/project/fc_project_editor_config.ts +0 -21
  193. package/src/entry-points/file/project/fc_project_eslintrc.ts +0 -29
  194. package/src/entry-points/file/project/fc_project_gitattributes.ts +0 -5
  195. package/src/entry-points/file/project/fc_project_gitignore.ts +0 -26
  196. package/src/entry-points/file/project/fc_project_npmconfig.ts +0 -36
  197. package/src/entry-points/file/project/fc_project_readme.ts +0 -12
  198. package/src/entry-points/file/project/fc_project_simplysm.ts +0 -1
  199. package/src/entry-points/file/project/fc_project_tsconfig.ts +0 -24
  200. package/src/entry-points/file/server/fc_package_server_main.ts +0 -62
  201. package/src/index.ts +0 -54
  202. package/src/ng-tools/SdCliNgModuleGenerator.ts +0 -672
  203. package/src/ng-tools/babel/SdCliBbFileMetadata.ts +0 -629
  204. package/src/ng-tools/babel/SdCliBbRootMetadata.ts +0 -292
  205. package/src/ng-tools/babel/SdCliBbUtil.ts +0 -15
  206. package/src/ng-tools/babel/TSdCliBbNgMetadata.ts +0 -251
  207. package/src/ng-tools/babel/TSdCliBbTypeMetadata.ts +0 -212
  208. package/src/ng-tools/commons.ts +0 -3
  209. package/src/ng-tools/typescript/SdCliTsFileMetadata.ts +0 -384
  210. package/src/ng-tools/typescript/SdCliTsRootMetadata.ts +0 -32
  211. package/src/ng-tools/typescript/SdCliTsUtil.ts +0 -29
  212. package/src/packages/SdCliPackage.ts +0 -259
  213. package/src/utils/SdCliNpmConfigUtil.ts +0 -16
  214. package/src/worker/build-worker.ts +0 -73
  215. package/src/worker/server-worker.ts +0 -72
  216. /package/dist/{worker/build-worker.d.ts → build-cluster.d.ts} +0 -0
  217. /package/dist/{worker/server-worker.d.ts → sd-cli.d.ts} +0 -0
package/.eslintrc.cjs ADDED
@@ -0,0 +1,18 @@
1
+ module.exports = {
2
+ overrides: [
3
+ {
4
+ files: ["*.ts"],
5
+ parserOptions: {
6
+ tsconfigRootDir: __dirname,
7
+ project: "tsconfig.json"
8
+ },
9
+ settings: {
10
+ "import/resolver": {
11
+ "typescript": {
12
+ project: "tsconfig.json"
13
+ }
14
+ }
15
+ }
16
+ }
17
+ ]
18
+ };
@@ -0,0 +1,75 @@
1
+ import cluster from "node:cluster";
2
+ import { SdCliTsLibBuilder } from "./builders/SdCliTsLibBuilder";
3
+ import { FsUtil, Logger, LoggerSeverity } from "@simplysm/sd-core-node";
4
+ import path from "path";
5
+ import { SdCliJsLibLinter } from "./builders/SdCliJsLibLinter";
6
+ if (Boolean(process.env["SD_DEBUG"])) {
7
+ Logger.setConfig({
8
+ console: {
9
+ level: LoggerSeverity.debug
10
+ }
11
+ });
12
+ }
13
+ else {
14
+ Logger.setConfig({
15
+ dot: true
16
+ });
17
+ }
18
+ const logger = Logger.get(["simplysm", "sd-cli", "build-cluster"]);
19
+ if (cluster.isPrimary) {
20
+ logger.debug(`메인 프로세스 ${process.pid} 시작`);
21
+ cluster.on("exit", (worker, code) => {
22
+ logger.debug(`워커 프로세스 ${worker.process.pid} 종료 (code: ${code})`);
23
+ });
24
+ cluster.on("message", (worker, message) => {
25
+ process.send(message);
26
+ });
27
+ process.on("message", (message) => {
28
+ cluster.fork({
29
+ "SD_CLUSTER_MESSAGE": JSON.stringify(message)
30
+ });
31
+ });
32
+ process.send("ready");
33
+ }
34
+ else {
35
+ const message = JSON.parse(process.env["SD_CLUSTER_MESSAGE"]);
36
+ if (message.cmd === "watch") {
37
+ // javascript
38
+ if (!FsUtil.exists(path.resolve(message.pkgPath, "tsconfig.json"))) {
39
+ await new SdCliJsLibLinter(message.pkgPath)
40
+ .on("change", () => {
41
+ process.send({ type: "change", ...message });
42
+ })
43
+ .on("complete", (result) => {
44
+ process.send({ type: "complete", result, ...message });
45
+ })
46
+ .watchAsync();
47
+ process.send({ type: "ready", ...message });
48
+ }
49
+ // typescript
50
+ else {
51
+ await new SdCliTsLibBuilder(message.pkgPath)
52
+ .on("change", () => {
53
+ process.send({ type: "change", ...message });
54
+ })
55
+ .on("complete", (result) => {
56
+ process.send({ type: "complete", result, ...message });
57
+ })
58
+ .watchAsync();
59
+ process.send({ type: "ready", ...message });
60
+ }
61
+ }
62
+ else { // build
63
+ // javascript
64
+ if (!FsUtil.exists(path.resolve(message.pkgPath, "tsconfig.json"))) {
65
+ const result = await new SdCliJsLibLinter(message.pkgPath).buildAsync();
66
+ process.send({ type: "complete", result, ...message });
67
+ }
68
+ // typescript
69
+ else {
70
+ const result = await new SdCliTsLibBuilder(message.pkgPath).buildAsync();
71
+ process.send({ type: "complete", result, ...message });
72
+ }
73
+ }
74
+ }
75
+ //# sourceMappingURL=build-cluster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-cluster.js","sourceRoot":"","sources":["../../../src/build-cluster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="node" />
2
+ import { ISdCliPackageBuildResult } from "../commons";
3
+ import { EventEmitter } from "events";
4
+ export declare class SdCliJsLibLinter extends EventEmitter {
5
+ private readonly _pkgPath;
6
+ private readonly _logger;
7
+ private readonly _pkgName;
8
+ constructor(_pkgPath: string);
9
+ on(event: "change", listener: () => void): this;
10
+ on(event: "complete", listener: (result: {
11
+ affectedFilePaths: string[];
12
+ buildResults: ISdCliPackageBuildResult[];
13
+ }) => void): this;
14
+ buildAsync(): Promise<ISdCliPackageBuildResult[]>;
15
+ watchAsync(): Promise<void>;
16
+ private _lintAsync;
17
+ private _debug;
18
+ }
@@ -0,0 +1,69 @@
1
+ import { FsUtil, Logger, SdFsWatcher } from "@simplysm/sd-core-node";
2
+ import path from "path";
3
+ import { EventEmitter } from "events";
4
+ import { ESLint } from "eslint";
5
+ export class SdCliJsLibLinter extends EventEmitter {
6
+ constructor(_pkgPath) {
7
+ super();
8
+ this._pkgPath = _pkgPath;
9
+ this._logger = Logger.get(["simplysm", "sd-cli", "SdCliJsLibLinter"]);
10
+ this._pkgName = path.basename(_pkgPath);
11
+ }
12
+ on(event, listener) {
13
+ super.on(event, listener);
14
+ return this;
15
+ }
16
+ async buildAsync() {
17
+ this._debug("LINT...");
18
+ const srcGlobPath = path.resolve(this._pkgPath, "src/**/*.+(js|cjs|mjs)");
19
+ const srcFilePaths = await FsUtil.globAsync(srcGlobPath);
20
+ const lintResults = await this._lintAsync(srcFilePaths);
21
+ this._debug(`LINT 완료`);
22
+ return lintResults;
23
+ }
24
+ async watchAsync() {
25
+ this.emit("change");
26
+ this._debug("LINT...");
27
+ const srcGlobPath = path.resolve(this._pkgPath, "src/**/*.+(js|cjs|mjs)");
28
+ const srcFilePaths = await FsUtil.globAsync(srcGlobPath);
29
+ const lintResults = await this._lintAsync(srcFilePaths);
30
+ this._debug(`LINT 완료`);
31
+ this.emit("complete", {
32
+ affectedFilePaths: srcFilePaths,
33
+ buildResults: lintResults
34
+ });
35
+ SdFsWatcher
36
+ .watch([srcGlobPath])
37
+ .onChange({
38
+ delay: 100
39
+ }, async (changeInfos) => {
40
+ const watchFilePaths = changeInfos.filter((item) => FsUtil.exists(item.path)).map((item) => item.path);
41
+ if (watchFilePaths.length < 1)
42
+ return;
43
+ this.emit("change");
44
+ this._debug("LINT...");
45
+ const watchLintResults = await this._lintAsync(watchFilePaths);
46
+ this._debug(`LINT 완료`);
47
+ this.emit("complete", {
48
+ affectedFilePaths: changeInfos.map((item) => item.path),
49
+ buildResults: watchLintResults
50
+ });
51
+ });
52
+ }
53
+ async _lintAsync(srcFilePaths) {
54
+ const linter = new ESLint();
55
+ const lintResults = await linter.lintFiles(srcFilePaths);
56
+ return lintResults.mapMany((lintResult) => lintResult.messages.map((msg) => ({
57
+ filePath: lintResult.filePath,
58
+ line: msg.line,
59
+ char: msg.column,
60
+ code: msg.ruleId ?? undefined,
61
+ severity: msg.severity === 1 ? "warning" : "error",
62
+ message: msg.message
63
+ })));
64
+ }
65
+ _debug(msg) {
66
+ this._logger.debug(`[${this._pkgName}] ${msg}`);
67
+ }
68
+ }
69
+ //# sourceMappingURL=SdCliJsLibLinter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliJsLibLinter.js","sourceRoot":"","sources":["../../../../src/builders/SdCliJsLibLinter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /// <reference types="node" />
2
+ import { ISdCliPackageBuildResult } from "../commons";
3
+ import { EventEmitter } from "events";
4
+ export declare class SdCliTsLibBuilder extends EventEmitter {
5
+ private readonly _pkgPath;
6
+ private readonly _logger;
7
+ private readonly _pkgName;
8
+ private readonly _writeFileCache;
9
+ constructor(_pkgPath: string);
10
+ on(event: "change", listener: () => void): this;
11
+ on(event: "complete", listener: (result: {
12
+ affectedFilePaths: string[];
13
+ buildResults: ISdCliPackageBuildResult[];
14
+ }) => void): this;
15
+ buildAsync(): Promise<ISdCliPackageBuildResult[]>;
16
+ watchAsync(): Promise<void>;
17
+ private _emitIncrementalProgram;
18
+ private _lintAsync;
19
+ private _debug;
20
+ }
@@ -0,0 +1,205 @@
1
+ import ts from "typescript";
2
+ import { FsUtil, Logger, PathUtil, SdFsWatcher } from "@simplysm/sd-core-node";
3
+ import path from "path";
4
+ import { SdCliBuildResultUtil } from "../utils/SdCliBuildResultUtil";
5
+ import { EventEmitter } from "events";
6
+ import { ESLint } from "eslint";
7
+ import { FunctionQueue } from "@simplysm/sd-core-common";
8
+ export class SdCliTsLibBuilder extends EventEmitter {
9
+ constructor(_pkgPath) {
10
+ super();
11
+ this._pkgPath = _pkgPath;
12
+ this._logger = Logger.get(["simplysm", "sd-cli", "SdCliTsLibBuilder"]);
13
+ this._writeFileCache = new Map();
14
+ this._pkgName = path.basename(_pkgPath);
15
+ }
16
+ on(event, listener) {
17
+ super.on(event, listener);
18
+ return this;
19
+ }
20
+ async buildAsync() {
21
+ this._debug("빌드 준비...");
22
+ const srcGlobPath = path.resolve(this._pkgPath, "src/**/*.ts");
23
+ const parsedTsConfig = ts.parseJsonConfigFileContent(await FsUtil.readJsonAsync(path.resolve(this._pkgPath, "tsconfig.json")), ts.sys, this._pkgPath, {
24
+ outDir: path.resolve(this._pkgPath, "dist"),
25
+ incremental: true,
26
+ tsBuildInfoFile: path.resolve(this._pkgPath, ".cache/tsbuildinfo.json"),
27
+ });
28
+ const host = ts.createIncrementalCompilerHost(parsedTsConfig.options, ts.sys);
29
+ this._debug("dist 초기화...");
30
+ await FsUtil.removeAsync(path.resolve(this._pkgPath, "dist"));
31
+ this._debug("빌드...");
32
+ const srcFilePaths = await FsUtil.globAsync(srcGlobPath);
33
+ const emitResult = this._emitIncrementalProgram({
34
+ rootNames: srcFilePaths,
35
+ options: parsedTsConfig.options,
36
+ host: host
37
+ });
38
+ this._debug("LINT...");
39
+ const lintResults = await this._lintAsync(emitResult.program.getProgram(), srcFilePaths);
40
+ this._debug(`빌드 완료`);
41
+ return [...emitResult.buildResults, ...lintResults];
42
+ }
43
+ async watchAsync() {
44
+ this.emit("change");
45
+ this._debug("빌드 준비...");
46
+ const srcGlobPath = path.resolve(this._pkgPath, "src/**/*.ts");
47
+ const parsedTsConfig = ts.parseJsonConfigFileContent(await FsUtil.readJsonAsync(path.resolve(this._pkgPath, "tsconfig.json")), ts.sys, this._pkgPath, {
48
+ outDir: path.resolve(this._pkgPath, "dist"),
49
+ incremental: true,
50
+ tsBuildInfoFile: path.resolve(this._pkgPath, ".cache/tsbuildinfo.json"),
51
+ });
52
+ const host = ts.createIncrementalCompilerHost(parsedTsConfig.options, ts.sys);
53
+ this._debug("dist 초기화...");
54
+ await FsUtil.removeAsync(path.resolve(this._pkgPath, "dist"));
55
+ this._debug("빌드...");
56
+ const srcFilePaths = await FsUtil.globAsync(srcGlobPath);
57
+ const emitResult = this._emitIncrementalProgram({
58
+ rootNames: srcFilePaths,
59
+ options: parsedTsConfig.options,
60
+ host: host
61
+ });
62
+ this._debug("LINT...");
63
+ const lintResults = await this._lintAsync(emitResult.program.getProgram(), srcFilePaths);
64
+ this._debug(`빌드 완료`);
65
+ this.emit("complete", {
66
+ affectedFilePaths: srcFilePaths,
67
+ buildResults: [...emitResult.buildResults, ...lintResults]
68
+ });
69
+ const fnQ = new FunctionQueue();
70
+ SdFsWatcher
71
+ .watch([
72
+ ...emitResult.program.getSourceFiles().map((item) => item.fileName),
73
+ srcGlobPath
74
+ ])
75
+ .onChange({
76
+ delay: 100
77
+ }, () => {
78
+ fnQ.runLast(async () => {
79
+ this.emit("change");
80
+ this._debug(`빌드...`);
81
+ const watchSrcFilePaths = await FsUtil.globAsync(srcGlobPath);
82
+ const watchResult = this._emitIncrementalProgram({
83
+ rootNames: await FsUtil.globAsync(srcGlobPath),
84
+ options: parsedTsConfig.options,
85
+ host: host
86
+ });
87
+ const watchAffectedSrcFilePaths = watchResult.affectedFileNames.map((item) => path.resolve(item)).filter((item) => watchSrcFilePaths.includes(item));
88
+ this._debug("LINT...");
89
+ const watchLintResults = await this._lintAsync(watchResult.program.getProgram(), watchAffectedSrcFilePaths);
90
+ this._debug(`빌드 완료`);
91
+ this.emit("complete", {
92
+ affectedFilePaths: watchAffectedSrcFilePaths,
93
+ buildResults: [...watchResult.buildResults, ...watchLintResults]
94
+ });
95
+ });
96
+ });
97
+ }
98
+ _emitIncrementalProgram(opt) {
99
+ const program = ts.createIncrementalProgram({
100
+ rootNames: opt.rootNames,
101
+ options: opt.options,
102
+ host: opt.host,
103
+ createProgram: ts.createSemanticDiagnosticsBuilderProgram
104
+ });
105
+ const diagnostics = [];
106
+ const affectedFileNames = [];
107
+ diagnostics.push(...program.getOptionsDiagnostics(), ...program.getGlobalDiagnostics());
108
+ while (true) {
109
+ const semanticResult = program.getSemanticDiagnosticsOfNextAffectedFile(undefined, (sourceFile) => {
110
+ return !opt.rootNames.includes(path.resolve(sourceFile.fileName));
111
+ });
112
+ if (!semanticResult)
113
+ break;
114
+ diagnostics.push(...semanticResult.result);
115
+ /*const result = program.emitNextAffectedFile((filePath, data, writeByteOrderMark) => {
116
+ if (this._writeFileCache.get(filePath) !== data) {
117
+ ts.sys.writeFile(filePath, data, writeByteOrderMark);
118
+ }
119
+ this._writeFileCache.set(filePath, data);
120
+ });
121
+ if (!result) break;*/
122
+ if ("fileName" in semanticResult.affected) {
123
+ const emitResult = program.emit(program.getSourceFile(semanticResult.affected.fileName), (filePath, data, writeByteOrderMark) => {
124
+ let realFilePath = filePath;
125
+ if (PathUtil.isChildPath(realFilePath, path.resolve(this._pkgPath, "dist", this._pkgName, "src"))) {
126
+ realFilePath = path.resolve(this._pkgPath, "dist", path.relative(path.resolve(this._pkgPath, "dist", this._pkgName, "src"), realFilePath));
127
+ }
128
+ if (this._writeFileCache.get(realFilePath) !== data) {
129
+ ts.sys.writeFile(realFilePath, data, writeByteOrderMark);
130
+ }
131
+ this._writeFileCache.set(realFilePath, data);
132
+ });
133
+ diagnostics.push(...emitResult.diagnostics);
134
+ affectedFileNames.push(semanticResult.affected.fileName);
135
+ diagnostics.push(...program.getSyntacticDiagnostics(semanticResult.affected));
136
+ }
137
+ }
138
+ const buildResults = diagnostics.map((item) => SdCliBuildResultUtil.convertFromTsDiag(item));
139
+ return {
140
+ program,
141
+ buildResults,
142
+ affectedFileNames
143
+ };
144
+ }
145
+ /*private readonly _linter = new ESLint({
146
+ overrideConfig: {
147
+ overrides: [
148
+ {
149
+ files: ["*.ts"],
150
+ parserOptions: {
151
+ tsconfigRootDir: this._pkgPath,
152
+ project: "tsconfig.json"
153
+ },
154
+ settings: {
155
+ "import/resolver": {
156
+ "typescript": {
157
+ project: path.resolve(this._pkgPath, "tsconfig.json")
158
+ }
159
+ }
160
+ }
161
+ }
162
+ ]
163
+ }
164
+ });*/
165
+ async _lintAsync(program, srcFilePaths) {
166
+ const linter = new ESLint({
167
+ overrideConfig: {
168
+ overrides: [
169
+ {
170
+ files: ["*.ts"],
171
+ parserOptions: {
172
+ programs: [program],
173
+ tsconfigRootDir: null,
174
+ project: null,
175
+ // tsconfigRootDir: this._pkgPath,
176
+ // project: "tsconfig.json"
177
+ },
178
+ settings: {
179
+ "import/resolver": {
180
+ "typescript": {
181
+ programs: [program],
182
+ project: null,
183
+ // project: path.resolve(this._pkgPath, "tsconfig.json"),
184
+ }
185
+ }
186
+ }
187
+ }
188
+ ]
189
+ }
190
+ });
191
+ const lintResults = await linter.lintFiles(srcFilePaths);
192
+ return lintResults.mapMany((lintResult) => lintResult.messages.map((msg) => ({
193
+ filePath: lintResult.filePath,
194
+ line: msg.line,
195
+ char: msg.column,
196
+ code: msg.ruleId ?? undefined,
197
+ severity: msg.severity === 1 ? "warning" : "error",
198
+ message: msg.message
199
+ })));
200
+ }
201
+ _debug(msg) {
202
+ this._logger.debug(`[${this._pkgName}] ${msg}`);
203
+ }
204
+ }
205
+ //# sourceMappingURL=SdCliTsLibBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdCliTsLibBuilder.js","sourceRoot":"","sources":["../../../../src/builders/SdCliTsLibBuilder.ts"],"names":[],"mappings":"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"}
package/dist/commons.d.ts CHANGED
@@ -1,22 +1,7 @@
1
1
  export interface INpmConfig {
2
2
  name: string;
3
3
  version: string;
4
- description?: string;
5
- author?: string;
6
- license?: string;
7
- repository?: {
8
- type: string;
9
- url: string;
10
- directory?: string;
11
- };
12
- type?: "module";
13
4
  workspaces?: string[];
14
- main?: string;
15
- types?: string;
16
- exports?: Record<string, {
17
- types?: string;
18
- }>;
19
- scripts?: Record<string, string>;
20
5
  dependencies?: Record<string, string>;
21
6
  optionalDependencies?: Record<string, string>;
22
7
  devDependencies?: Record<string, string>;
@@ -25,118 +10,19 @@ export interface INpmConfig {
25
10
  optional?: boolean;
26
11
  }>;
27
12
  }
28
- export interface ITsconfig {
29
- compilerOptions?: {
30
- module?: string;
31
- lib?: string[];
32
- outDir?: string;
33
- baseUrl?: string;
34
- paths?: Record<string, string[]>;
35
- declaration?: boolean;
36
- };
37
- files?: string[];
38
- angularCompilerOptions?: Record<string, any>;
39
- }
40
13
  export interface ISdCliPackageBuildResult {
41
14
  filePath: string | undefined;
42
15
  line: number | undefined;
43
16
  char: number | undefined;
44
17
  code: string | undefined;
45
- severity: "error" | "warning";
18
+ severity: "error" | "warning" | "suggestion" | "message";
46
19
  message: string;
47
20
  }
48
21
  export interface ISdCliConfig {
49
22
  packages: Record<string, TSdCliPackageConfig | undefined>;
50
- localUpdates?: Record<string, string>;
51
23
  }
52
- export declare type TSdCliPackageConfig = ISdCliLibPackageConfig | ISdCliServerPackageConfig | ISdCliClientPackageConfig;
24
+ export type TSdCliPackageConfig = ISdCliLibPackageConfig;
53
25
  export interface ISdCliLibPackageConfig {
54
26
  type: "library";
55
- angular?: boolean;
56
- autoIndex?: {
57
- polyfills?: string[];
58
- };
59
- publish?: "npm";
60
- }
61
- export interface ISdCliServerPackageConfig {
62
- type: "server";
63
- env?: Record<string, string>;
64
- configs?: Record<string, any>;
65
- pm2?: {
66
- fileName?: string;
67
- noInterpreter?: boolean;
68
- noStartScript?: boolean;
69
- config: Record<string, any>;
70
- } | boolean;
71
- iis?: boolean | {
72
- serverExeFilePath?: string;
73
- };
74
- externalNodeModules?: string[];
75
- publish?: TSdCliPublishConfig;
76
- }
77
- export interface ISdCliClientPackageConfig {
78
- type: "client";
79
- builder?: {
80
- web?: ISdCliClientBuilderWebConfig;
81
- cordova?: ISdCliClientBuilderCordovaConfig;
82
- electron?: ISdCliClientBuilderElectronConfig;
83
- };
84
- server: string | {
85
- port: number;
86
- };
87
- env?: Record<string, string>;
88
- configs?: Record<string, any>;
89
- publish?: TSdCliPublishConfig;
90
- }
91
- export declare type TSdCliPublishConfig = ISdCliFtpPublishConfig | ISdCliLocalDirectoryPublishConfig | ISdCliGithubPublishConfig;
92
- export interface ISdCliFtpPublishConfig {
93
- type: "ftp" | "ftps" | "sftp";
94
- host: string;
95
- port?: number;
96
- path: string;
97
- user: string;
98
- pass: string;
99
- }
100
- export interface ISdCliLocalDirectoryPublishConfig {
101
- type: "local-directory";
102
- path: string;
103
- }
104
- export interface ISdCliGithubPublishConfig {
105
- type: "github";
106
- apiKey: string;
107
- files: {
108
- from: string;
109
- to: string;
110
- }[];
111
- }
112
- export interface ISdCliClientBuilderWebConfig {
113
- env?: Record<string, string>;
114
- }
115
- export interface ISdCliClientBuilderCordovaConfig {
116
- env?: Record<string, string>;
117
- appId: string;
118
- appName: string;
119
- plugins?: string[];
120
- icon?: string;
121
- debug?: boolean;
122
- target?: {
123
- browser?: {};
124
- android?: {
125
- bundle?: boolean;
126
- sign?: {
127
- keystore: string;
128
- storePassword: string;
129
- alias: string;
130
- password: string;
131
- keystoreType: string;
132
- };
133
- };
134
- };
135
- }
136
- export interface ISdCliClientBuilderElectronConfig {
137
- env?: Record<string, string>;
138
- externalNodeModules?: string[];
139
- appId: string;
140
- icon?: string;
141
- installerIcon?: string;
27
+ publish: "npm";
142
28
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=commons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commons.js","sourceRoot":"","sources":["../../../src/commons.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ export declare class SdCliProject {
2
+ static watchAsync(opt: {
3
+ rootPath: string;
4
+ confFileRelPath: string;
5
+ optNames: string[];
6
+ pkgNames: string[];
7
+ }): Promise<void>;
8
+ static buildAsync(opt: {
9
+ rootPath: string;
10
+ confFileRelPath: string;
11
+ optNames: string[];
12
+ pkgNames: string[];
13
+ }): Promise<void>;
14
+ static publishAsync(opt: {
15
+ rootPath: string;
16
+ noBuild: boolean;
17
+ confFileRelPath: string;
18
+ optNames: string[];
19
+ pkgNames: string[];
20
+ }): Promise<void>;
21
+ private static _publishPkgAsync;
22
+ private static _waitSecMessageAsync;
23
+ private static _upgradeVersionAsync;
24
+ private static _logging;
25
+ private static _prepareClusterAsync;
26
+ private static _runCommandAsync;
27
+ private static _closeCluster;
28
+ }