@simplysm/sd-cli 12.12.11 → 12.12.13

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.
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from "events";
2
- import { FsUtils, PathUtils, SdFsWatcher, } from "@simplysm/sd-core-node";
2
+ import { FsUtils, PathUtils, SdFsWatcher } from "@simplysm/sd-core-node";
3
3
  import path from "path";
4
4
  import { ScopePathSet } from "./scope-path";
5
5
  export class BuildRunnerBase extends EventEmitter {
@@ -47,7 +47,19 @@ export class BuildRunnerBase extends EventEmitter {
47
47
  this.emit("complete", res);
48
48
  this._debug("WATCH...");
49
49
  let lastWatchFileSet = result.watchFileSet;
50
- SdFsWatcher.watch(this._watchScopePathSet.toArray()).onChange({ delay: 100 }, async (changeInfos) => {
50
+ SdFsWatcher.watch(this._watchScopePathSet.toArray(), {
51
+ ignore: (filePath) => filePath === path.resolve(this._pkgPath, ".cache") ||
52
+ filePath === path.resolve(this._pkgPath, ".cordova") ||
53
+ filePath === path.resolve(this._pkgPath, ".electron") ||
54
+ filePath === path.resolve(this._pkgPath, "dist") ||
55
+ (this._pkgConf.type === "client" && filePath === path.resolve(this._pkgPath, "src", "routes.ts")) ||
56
+ ("dbContext" in this._pkgConf &&
57
+ this._pkgConf.dbContext != null &&
58
+ filePath === path.resolve(this._pkgPath, "src", `${this._pkgConf.dbContext}.ts`)) ||
59
+ ("noGenIndex" in this._pkgConf &&
60
+ !this._pkgConf.noGenIndex &&
61
+ filePath === path.resolve(this._pkgPath, "src", "index.ts")),
62
+ }).onChange({ delay: 100 }, async (changeInfos) => {
51
63
  const modifiedFileSet = this._getModifiedFileSet(changeInfos, lastWatchFileSet);
52
64
  if (modifiedFileSet.size < 1)
53
65
  return;
@@ -72,7 +84,6 @@ export class BuildRunnerBase extends EventEmitter {
72
84
  },
73
85
  ],
74
86
  emitFileSet: new Set(),
75
- watchFileSet: lastWatchFileSet,
76
87
  };
77
88
  }
78
89
  this.emit("complete", {
@@ -84,7 +95,7 @@ export class BuildRunnerBase extends EventEmitter {
84
95
  }
85
96
  _getModifiedFileSet(changeInfos, lastWatchFileSet) {
86
97
  return new Set((lastWatchFileSet
87
- ? changeInfos.filter((item) => lastWatchFileSet.has(item.path))
98
+ ? changeInfos.filter((item) => Array.from(lastWatchFileSet).some((item1) => item.path.startsWith(path.dirname(item1))))
88
99
  : changeInfos).map((item) => item.path));
89
100
  }
90
101
  _debug(msg) {
@@ -1 +1 @@
1
- {"version":3,"file":"build-runner.base.js","sourceRoot":"","sources":["../../../src/pkg-builders/commons/build-runner.base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-runner.base.js","sourceRoot":"","sources":["../../../src/pkg-builders/commons/build-runner.base.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-cli",
3
- "version": "12.12.11",
3
+ "version": "12.12.13",
4
4
  "description": "심플리즘 패키지 - CLI",
5
5
  "author": "김석래",
6
6
  "repository": {
@@ -13,14 +13,14 @@
13
13
  "type": "module",
14
14
  "dependencies": {
15
15
  "@angular/build": "^20.1.1",
16
- "@angular/compiler": "^20.1.1",
17
- "@angular/compiler-cli": "^20.1.1",
16
+ "@angular/compiler": "^20.1.2",
17
+ "@angular/compiler-cli": "^20.1.2",
18
18
  "@anthropic-ai/sdk": "^0.56.0",
19
19
  "@electron/rebuild": "^4.0.1",
20
- "@simplysm/sd-core-common": "12.12.11",
21
- "@simplysm/sd-core-node": "12.12.11",
22
- "@simplysm/sd-service-server": "12.12.11",
23
- "@simplysm/sd-storage": "12.12.11",
20
+ "@simplysm/sd-core-common": "12.12.13",
21
+ "@simplysm/sd-core-node": "12.12.13",
22
+ "@simplysm/sd-service-server": "12.12.13",
23
+ "@simplysm/sd-storage": "12.12.13",
24
24
  "browserslist": "^4.25.1",
25
25
  "cordova": "^12.0.0",
26
26
  "css-has-pseudo": "^7.0.2",
@@ -1,20 +1,11 @@
1
1
  import { EventEmitter } from "events";
2
- import {
3
- FsUtils,
4
- ISdFsWatcherChangeInfo,
5
- PathUtils,
6
- SdFsWatcher,
7
- SdLogger,
8
- TNormPath,
9
- } from "@simplysm/sd-core-node";
2
+ import { FsUtils, ISdFsWatcherChangeInfo, PathUtils, SdFsWatcher, SdLogger, TNormPath } from "@simplysm/sd-core-node";
10
3
  import { ISdProjectConfig, TSdPackageConfig } from "../../types/config.types";
11
4
  import { ISdBuildMessage, ISdBuildRunnerResult } from "../../types/build.types";
12
5
  import path from "path";
13
6
  import { ScopePathSet } from "./scope-path";
14
7
 
15
- export abstract class BuildRunnerBase<
16
- T extends "server" | "library" | "client",
17
- > extends EventEmitter {
8
+ export abstract class BuildRunnerBase<T extends "server" | "library" | "client"> extends EventEmitter {
18
9
  protected abstract _logger: SdLogger;
19
10
 
20
11
  protected _pkgName: string;
@@ -83,65 +74,70 @@ export abstract class BuildRunnerBase<
83
74
  this.emit("complete", res);
84
75
 
85
76
  this._debug("WATCH...");
86
- let lastWatchFileSet = result.watchFileSet!;
87
- SdFsWatcher.watch(this._watchScopePathSet.toArray()).onChange(
88
- { delay: 100 },
89
- async (changeInfos) => {
90
- const modifiedFileSet = this._getModifiedFileSet(changeInfos, lastWatchFileSet);
91
-
92
- if (modifiedFileSet.size < 1) return;
93
-
94
- this.emit("change");
95
-
96
- let watchResult: IBuildRunnerRunResult;
97
- try {
98
- watchResult = await this._runAsync(!this._pkgConf.forceProductionMode, modifiedFileSet);
99
-
100
- lastWatchFileSet = watchResult.watchFileSet!;
101
- } catch (err) {
102
- watchResult = {
103
- affectedFileSet: modifiedFileSet,
104
- buildMessages: [
105
- {
106
- filePath: undefined,
107
- line: undefined,
108
- char: undefined,
109
- code: undefined,
110
- severity: "error",
111
- message: `파일 변경 처리 중 오류 발생: ${err}`,
112
- type: "watch",
113
- },
114
- ],
115
- emitFileSet: new Set(),
116
- watchFileSet: lastWatchFileSet,
117
- };
118
- }
119
-
120
- this.emit("complete", {
121
- affectedFilePathSet: watchResult.affectedFileSet,
122
- buildMessages: watchResult.buildMessages,
123
- emitFileSet: watchResult.emitFileSet,
124
- });
125
- },
126
- );
77
+ let lastWatchFileSet = result.watchFileSet;
78
+ SdFsWatcher.watch(this._watchScopePathSet.toArray(), {
79
+ ignore: (filePath) =>
80
+ filePath === path.resolve(this._pkgPath, ".cache") ||
81
+ filePath === path.resolve(this._pkgPath, ".cordova") ||
82
+ filePath === path.resolve(this._pkgPath, ".electron") ||
83
+ filePath === path.resolve(this._pkgPath, "dist") ||
84
+ (this._pkgConf.type === "client" && filePath === path.resolve(this._pkgPath, "src", "routes.ts")) ||
85
+ ("dbContext" in this._pkgConf &&
86
+ this._pkgConf.dbContext != null &&
87
+ filePath === path.resolve(this._pkgPath, "src", `${this._pkgConf.dbContext}.ts`)) ||
88
+ ("noGenIndex" in this._pkgConf &&
89
+ !this._pkgConf.noGenIndex &&
90
+ filePath === path.resolve(this._pkgPath, "src", "index.ts")),
91
+ }).onChange({ delay: 100 }, async (changeInfos) => {
92
+ const modifiedFileSet = this._getModifiedFileSet(changeInfos, lastWatchFileSet);
93
+
94
+ if (modifiedFileSet.size < 1) return;
95
+
96
+ this.emit("change");
97
+
98
+ let watchResult: IBuildRunnerRunResult;
99
+ try {
100
+ watchResult = await this._runAsync(!this._pkgConf.forceProductionMode, modifiedFileSet);
101
+
102
+ lastWatchFileSet = watchResult.watchFileSet;
103
+ } catch (err) {
104
+ watchResult = {
105
+ affectedFileSet: modifiedFileSet,
106
+ buildMessages: [
107
+ {
108
+ filePath: undefined,
109
+ line: undefined,
110
+ char: undefined,
111
+ code: undefined,
112
+ severity: "error",
113
+ message: `파일 변경 처리 중 오류 발생: ${err}`,
114
+ type: "watch",
115
+ },
116
+ ],
117
+ emitFileSet: new Set(),
118
+ };
119
+ }
120
+
121
+ this.emit("complete", {
122
+ affectedFilePathSet: watchResult.affectedFileSet,
123
+ buildMessages: watchResult.buildMessages,
124
+ emitFileSet: watchResult.emitFileSet,
125
+ });
126
+ });
127
127
  }
128
128
 
129
- protected _getModifiedFileSet(
130
- changeInfos: ISdFsWatcherChangeInfo[],
131
- lastWatchFileSet?: Set<TNormPath>,
132
- ) {
129
+ protected _getModifiedFileSet(changeInfos: ISdFsWatcherChangeInfo[], lastWatchFileSet?: Set<TNormPath>) {
133
130
  return new Set(
134
131
  (lastWatchFileSet
135
- ? changeInfos.filter((item) => lastWatchFileSet.has(item.path))
132
+ ? changeInfos.filter((item) =>
133
+ Array.from(lastWatchFileSet).some((item1) => item.path.startsWith(path.dirname(item1))),
134
+ )
136
135
  : changeInfos
137
136
  ).map((item) => item.path),
138
137
  );
139
138
  }
140
139
 
141
- protected abstract _runAsync(
142
- dev: boolean,
143
- modifiedFileSet?: Set<TNormPath>,
144
- ): Promise<IBuildRunnerRunResult>;
140
+ protected abstract _runAsync(dev: boolean, modifiedFileSet?: Set<TNormPath>): Promise<IBuildRunnerRunResult>;
145
141
 
146
142
  protected _debug(msg: string): void {
147
143
  this._logger.debug(`[${path.basename(this._pkgPath)}] ${msg}`);