@simplysm/sd-cli 13.0.0-beta.49 → 13.0.0-beta.51
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.
- package/dist/commands/typecheck.d.ts.map +1 -1
- package/dist/commands/typecheck.js +20 -3
- package/dist/commands/typecheck.js.map +1 -1
- package/dist/workers/dts.worker.d.ts +4 -2
- package/dist/workers/dts.worker.d.ts.map +1 -1
- package/dist/workers/dts.worker.js +26 -13
- package/dist/workers/dts.worker.js.map +2 -2
- package/package.json +4 -4
- package/src/commands/typecheck.ts +31 -3
- package/src/workers/dts.worker.ts +35 -17
- package/templates/add-client/__CLIENT__/package.json.hbs +1 -1
- package/templates/add-server/__SERVER__/package.json.hbs +2 -2
- package/templates/init/package.json.hbs +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../../src/commands/typecheck.ts"],"names":[],"mappings":"AAKA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQzE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAmCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAwB5G;
|
|
1
|
+
{"version":3,"file":"typecheck.d.ts","sourceRoot":"","sources":["../../src/commands/typecheck.ts"],"names":[],"mappings":"AAKA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQzE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB;AAmCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAwB5G;AA+DD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuL3E"}
|
|
@@ -36,7 +36,13 @@ function extractPackages(fileNames, cwd, config) {
|
|
|
36
36
|
}
|
|
37
37
|
return packages;
|
|
38
38
|
}
|
|
39
|
-
function
|
|
39
|
+
function hasNonPackageFiles(fileNames, cwd) {
|
|
40
|
+
return fileNames.some((f) => {
|
|
41
|
+
const relativePath = pathPosix(path.relative(cwd, f));
|
|
42
|
+
return !relativePath.startsWith("packages/");
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function createTypecheckTasks(packages, cwd, includeNonPackage) {
|
|
40
46
|
const tasks = [];
|
|
41
47
|
for (const info of packages.values()) {
|
|
42
48
|
for (const env of info.envs) {
|
|
@@ -54,6 +60,16 @@ function createTypecheckTasks(packages, cwd) {
|
|
|
54
60
|
});
|
|
55
61
|
}
|
|
56
62
|
}
|
|
63
|
+
if (includeNonPackage) {
|
|
64
|
+
tasks.push({
|
|
65
|
+
displayName: "\uAE30\uD0C0",
|
|
66
|
+
buildInfo: {
|
|
67
|
+
name: "root",
|
|
68
|
+
cwd,
|
|
69
|
+
emit: false
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
57
73
|
return tasks;
|
|
58
74
|
}
|
|
59
75
|
async function runTypecheck(options) {
|
|
@@ -93,9 +109,10 @@ async function runTypecheck(options) {
|
|
|
93
109
|
packageCount: packages.size,
|
|
94
110
|
packages: [...packages.keys()]
|
|
95
111
|
});
|
|
96
|
-
const
|
|
112
|
+
const nonPackage = hasNonPackageFiles(fileNames, cwd);
|
|
113
|
+
const tasks = createTypecheckTasks(packages, cwd, nonPackage);
|
|
97
114
|
if (tasks.length === 0) {
|
|
98
|
-
process.stdout.write("\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \
|
|
115
|
+
process.stdout.write("\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uB300\uC0C1\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
|
|
99
116
|
return;
|
|
100
117
|
}
|
|
101
118
|
const maxConcurrency = Math.max(Math.floor(os.cpus().length * 7 / 8), 1);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/commands/typecheck.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAS,aAAa;AACtB,SAAS,WAAW,qBAAqB,cAAgC;AACzE,OAAO;AACP,SAAS,SAAS,iBAAiB;AAEnC,SAAS,yBAA4C;AACrD,SAAS,oBAAoB;AAC7B,SAAS,6BAA6B;AAoCtC,MAAM,gBAAgB;AAAA;AAAA,EAEpB,SAAS;AACX;AAUA,SAAS,gBAAgB,QAA4C;AACnE,MAAI,WAAW,OAAQ,QAAO,CAAC,MAAM;AACrC,MAAI,WAAW,aAAa,WAAW,SAAU,QAAO,CAAC,SAAS;AAElE,SAAO,CAAC,QAAQ,SAAS;AAC3B;AAOO,SAAS,gBAAgB,WAAqB,KAAa,QAA4C;AAC5G,QAAM,WAAW,oBAAI,IAAyB;AAE9C,aAAW,YAAY,WAAW;AAChC,UAAM,eAAe,UAAU,KAAK,SAAS,KAAK,QAAQ,CAAC;AAG3D,UAAM,eAAe,aAAa,MAAM,cAAc,OAAO;AAC7D,QAAI,cAAc;AAChB,YAAM,UAAU,aAAa,CAAC;AAE9B,UAAI,OAAO,SAAS,OAAO,GAAG,WAAW,UAAW;AAEpD,UAAI,CAAC,SAAS,IAAI,OAAO,GAAG;AAC1B,iBAAS,IAAI,SAAS;AAAA,UACpB,MAAM;AAAA,UACN,KAAK,KAAK,QAAQ,KAAK,YAAY,OAAO;AAAA,UAC1C,MAAM,gBAAgB,OAAO,SAAS,OAAO,GAAG,MAAM;AAAA,QACxD,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -15,8 +15,10 @@ export interface DtsWatchInfo {
|
|
|
15
15
|
export interface DtsBuildInfo {
|
|
16
16
|
name: string;
|
|
17
17
|
cwd: string;
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
/** 패키지 디렉토리. 미지정 시 non-package 모드 (packages/ 제외 전체 타입체크) */
|
|
19
|
+
pkgDir?: string;
|
|
20
|
+
/** 타입체크 환경. pkgDir과 함께 사용 */
|
|
21
|
+
env?: TypecheckEnv;
|
|
20
22
|
/** true면 .d.ts 생성 + 타입체크, false면 타입체크만 (기본값: true) */
|
|
21
23
|
emit?: boolean;
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts.worker.d.ts","sourceRoot":"","sources":["../../src/workers/dts.worker.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAIlG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"dts.worker.d.ts","sourceRoot":"","sources":["../../src/workers/dts.worker.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAIlG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;CACtB;AA2GD;;GAEG;AACH,iBAAe,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAgInE;AASD;;;;GAIG;AACH,iBAAe,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG9D;AAED,QAAA,MAAM,MAAM;;;uBAAiC,OAAO,aAAa;kBAAY,OAAO,QAAQ;;;CAG1F,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
|
@@ -72,21 +72,36 @@ function createDtsPathRewriter(pkgDir) {
|
|
|
72
72
|
async function buildDts(info) {
|
|
73
73
|
try {
|
|
74
74
|
const parsedConfig = parseRootTsconfig(info.cwd);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
let rootFiles;
|
|
76
|
+
let baseOptions;
|
|
77
|
+
let diagnosticFilter;
|
|
78
|
+
let tsBuildInfoFile;
|
|
79
|
+
if (info.pkgDir != null && info.env != null) {
|
|
80
|
+
rootFiles = getPackageSourceFiles(info.pkgDir, parsedConfig);
|
|
81
|
+
baseOptions = await getCompilerOptionsForPackage(parsedConfig.options, info.env, info.pkgDir);
|
|
82
|
+
const pkgSrcPrefix = path.join(info.pkgDir, "src") + path.sep;
|
|
83
|
+
diagnosticFilter = (d) => d.file == null || d.file.fileName.startsWith(pkgSrcPrefix);
|
|
84
|
+
const shouldEmit2 = info.emit !== false;
|
|
85
|
+
tsBuildInfoFile = path.join(
|
|
86
|
+
info.pkgDir,
|
|
87
|
+
".cache",
|
|
88
|
+
shouldEmit2 ? "dts.tsbuildinfo" : `typecheck-${info.env}.tsbuildinfo`
|
|
89
|
+
);
|
|
90
|
+
} else {
|
|
91
|
+
const packagesPrefix = path.join(info.cwd, "packages") + path.sep;
|
|
92
|
+
rootFiles = parsedConfig.fileNames.filter((f) => !f.startsWith(packagesPrefix));
|
|
93
|
+
baseOptions = parsedConfig.options;
|
|
94
|
+
diagnosticFilter = (d) => d.file == null || !d.file.fileName.startsWith(packagesPrefix);
|
|
95
|
+
tsBuildInfoFile = path.join(info.cwd, ".cache", "typecheck-root.tsbuildinfo");
|
|
96
|
+
}
|
|
78
97
|
const shouldEmit = info.emit !== false;
|
|
79
98
|
const options = {
|
|
80
99
|
...baseOptions,
|
|
81
100
|
sourceMap: false,
|
|
82
101
|
incremental: true,
|
|
83
|
-
tsBuildInfoFile
|
|
84
|
-
info.pkgDir,
|
|
85
|
-
".cache",
|
|
86
|
-
shouldEmit ? "dts.tsbuildinfo" : `typecheck-${info.env}.tsbuildinfo`
|
|
87
|
-
)
|
|
102
|
+
tsBuildInfoFile
|
|
88
103
|
};
|
|
89
|
-
if (shouldEmit) {
|
|
104
|
+
if (shouldEmit && info.pkgDir != null) {
|
|
90
105
|
options.noEmit = false;
|
|
91
106
|
options.emitDeclarationOnly = true;
|
|
92
107
|
options.declaration = true;
|
|
@@ -100,7 +115,7 @@ async function buildDts(info) {
|
|
|
100
115
|
options.declarationMap = false;
|
|
101
116
|
}
|
|
102
117
|
const host = ts.createIncrementalCompilerHost(options);
|
|
103
|
-
if (shouldEmit) {
|
|
118
|
+
if (shouldEmit && info.pkgDir != null) {
|
|
104
119
|
const rewritePath = createDtsPathRewriter(info.pkgDir);
|
|
105
120
|
const originalWriteFile = host.writeFile;
|
|
106
121
|
host.writeFile = (fileName, content, writeByteOrderMark, onError, sourceFiles, data) => {
|
|
@@ -124,9 +139,7 @@ async function buildDts(info) {
|
|
|
124
139
|
...program.getSemanticDiagnostics(),
|
|
125
140
|
...emitResult.diagnostics
|
|
126
141
|
];
|
|
127
|
-
const filteredDiagnostics = allDiagnostics.filter(
|
|
128
|
-
(d) => d.file == null || d.file.fileName.startsWith(pkgSrcPrefix)
|
|
129
|
-
);
|
|
142
|
+
const filteredDiagnostics = allDiagnostics.filter(diagnosticFilter);
|
|
130
143
|
const serializedDiagnostics = filteredDiagnostics.map(serializeDiagnostic);
|
|
131
144
|
const errorCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Error).length;
|
|
132
145
|
const warningCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Warning).length;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/workers/dts.worker.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAS,oBAAoB;AAC7B,SAAS,eAAe;AACxB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,2BAAsD;
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["shouldEmit"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simplysm/sd-cli",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "13.0.0-beta.
|
|
4
|
+
"version": "13.0.0-beta.51",
|
|
5
5
|
"description": "심플리즘 패키지 - CLI 도구",
|
|
6
6
|
"author": "김석래",
|
|
7
7
|
"repository": {
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"vite-plugin-solid": "^2.11.10",
|
|
45
45
|
"vite-tsconfig-paths": "^6.1.0",
|
|
46
46
|
"yargs": "^18.0.0",
|
|
47
|
-
"@simplysm/core-common": "13.0.0-beta.
|
|
48
|
-
"@simplysm/core-node": "13.0.0-beta.
|
|
49
|
-
"@simplysm/storage": "13.0.0-beta.
|
|
47
|
+
"@simplysm/core-common": "13.0.0-beta.51",
|
|
48
|
+
"@simplysm/core-node": "13.0.0-beta.51",
|
|
49
|
+
"@simplysm/storage": "13.0.0-beta.51"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/semver": "^7.7.1",
|
|
@@ -95,14 +95,29 @@ export function extractPackages(fileNames: string[], cwd: string, config: SdConf
|
|
|
95
95
|
return packages;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
/**
|
|
99
|
+
* tsconfig 파일 목록에서 packages/ 하위가 아닌 파일이 있는지 확인합니다.
|
|
100
|
+
*/
|
|
101
|
+
function hasNonPackageFiles(fileNames: string[], cwd: string): boolean {
|
|
102
|
+
return fileNames.some((f) => {
|
|
103
|
+
const relativePath = pathPosix(path.relative(cwd, f));
|
|
104
|
+
return !relativePath.startsWith("packages/");
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
98
108
|
/**
|
|
99
109
|
* 패키지 정보로부터 타입체크 작업 목록을 생성합니다.
|
|
100
110
|
* neutral 패키지는 node/browser 두 환경으로 분리하여 각각 체크합니다.
|
|
101
111
|
* @param packages 패키지 정보 맵
|
|
102
112
|
* @param cwd 현재 작업 디렉토리
|
|
113
|
+
* @param includeNonPackage non-package 파일이 있으면 "기타" 작업 추가
|
|
103
114
|
* @returns 타입체크 작업 정보 배열
|
|
104
115
|
*/
|
|
105
|
-
function createTypecheckTasks(
|
|
116
|
+
function createTypecheckTasks(
|
|
117
|
+
packages: Map<string, PackageInfo>,
|
|
118
|
+
cwd: string,
|
|
119
|
+
includeNonPackage: boolean,
|
|
120
|
+
): TypecheckTask[] {
|
|
106
121
|
const tasks: TypecheckTask[] = [];
|
|
107
122
|
|
|
108
123
|
// packages/* - 각 env마다 별도 task 생성
|
|
@@ -122,6 +137,18 @@ function createTypecheckTasks(packages: Map<string, PackageInfo>, cwd: string):
|
|
|
122
137
|
}
|
|
123
138
|
}
|
|
124
139
|
|
|
140
|
+
// non-package 파일 (tests/, 루트 *.ts 등)
|
|
141
|
+
if (includeNonPackage) {
|
|
142
|
+
tasks.push({
|
|
143
|
+
displayName: "기타",
|
|
144
|
+
buildInfo: {
|
|
145
|
+
name: "root",
|
|
146
|
+
cwd,
|
|
147
|
+
emit: false,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
125
152
|
return tasks;
|
|
126
153
|
}
|
|
127
154
|
|
|
@@ -193,10 +220,11 @@ export async function runTypecheck(options: TypecheckOptions): Promise<void> {
|
|
|
193
220
|
});
|
|
194
221
|
|
|
195
222
|
// 타입체크 작업 생성
|
|
196
|
-
const
|
|
223
|
+
const nonPackage = hasNonPackageFiles(fileNames, cwd);
|
|
224
|
+
const tasks = createTypecheckTasks(packages, cwd, nonPackage);
|
|
197
225
|
|
|
198
226
|
if (tasks.length === 0) {
|
|
199
|
-
process.stdout.write("✔ 타입체크할
|
|
227
|
+
process.stdout.write("✔ 타입체크할 대상이 없습니다.\n");
|
|
200
228
|
return;
|
|
201
229
|
}
|
|
202
230
|
|
|
@@ -28,8 +28,10 @@ export interface DtsWatchInfo {
|
|
|
28
28
|
export interface DtsBuildInfo {
|
|
29
29
|
name: string;
|
|
30
30
|
cwd: string;
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
/** 패키지 디렉토리. 미지정 시 non-package 모드 (packages/ 제외 전체 타입체크) */
|
|
32
|
+
pkgDir?: string;
|
|
33
|
+
/** 타입체크 환경. pkgDir과 함께 사용 */
|
|
34
|
+
env?: TypecheckEnv;
|
|
33
35
|
/** true면 .d.ts 생성 + 타입체크, false면 타입체크만 (기본값: true) */
|
|
34
36
|
emit?: boolean;
|
|
35
37
|
}
|
|
@@ -180,11 +182,33 @@ function createDtsPathRewriter(pkgDir: string): (fileName: string, content: stri
|
|
|
180
182
|
async function buildDts(info: DtsBuildInfo): Promise<DtsBuildResult> {
|
|
181
183
|
try {
|
|
182
184
|
const parsedConfig = parseRootTsconfig(info.cwd);
|
|
183
|
-
const rootFiles = getPackageSourceFiles(info.pkgDir, parsedConfig);
|
|
184
|
-
const baseOptions = await getCompilerOptionsForPackage(parsedConfig.options, info.env, info.pkgDir);
|
|
185
185
|
|
|
186
|
-
|
|
187
|
-
|
|
186
|
+
let rootFiles: string[];
|
|
187
|
+
let baseOptions: ts.CompilerOptions;
|
|
188
|
+
let diagnosticFilter: (d: ts.Diagnostic) => boolean;
|
|
189
|
+
let tsBuildInfoFile: string;
|
|
190
|
+
|
|
191
|
+
if (info.pkgDir != null && info.env != null) {
|
|
192
|
+
// 패키지 모드 (기존 동작)
|
|
193
|
+
rootFiles = getPackageSourceFiles(info.pkgDir, parsedConfig);
|
|
194
|
+
baseOptions = await getCompilerOptionsForPackage(parsedConfig.options, info.env, info.pkgDir);
|
|
195
|
+
const pkgSrcPrefix = path.join(info.pkgDir, "src") + path.sep;
|
|
196
|
+
diagnosticFilter = (d) => d.file == null || d.file.fileName.startsWith(pkgSrcPrefix);
|
|
197
|
+
|
|
198
|
+
const shouldEmit = info.emit !== false;
|
|
199
|
+
tsBuildInfoFile = path.join(
|
|
200
|
+
info.pkgDir,
|
|
201
|
+
".cache",
|
|
202
|
+
shouldEmit ? "dts.tsbuildinfo" : `typecheck-${info.env}.tsbuildinfo`,
|
|
203
|
+
);
|
|
204
|
+
} else {
|
|
205
|
+
// non-package 모드: packages/ 제외한 나머지 파일 타입체크
|
|
206
|
+
const packagesPrefix = path.join(info.cwd, "packages") + path.sep;
|
|
207
|
+
rootFiles = parsedConfig.fileNames.filter((f) => !f.startsWith(packagesPrefix));
|
|
208
|
+
baseOptions = parsedConfig.options;
|
|
209
|
+
diagnosticFilter = (d) => d.file == null || !d.file.fileName.startsWith(packagesPrefix);
|
|
210
|
+
tsBuildInfoFile = path.join(info.cwd, ".cache", "typecheck-root.tsbuildinfo");
|
|
211
|
+
}
|
|
188
212
|
|
|
189
213
|
// emit 여부 결정 (기본값: true)
|
|
190
214
|
const shouldEmit = info.emit !== false;
|
|
@@ -193,16 +217,12 @@ async function buildDts(info: DtsBuildInfo): Promise<DtsBuildResult> {
|
|
|
193
217
|
...baseOptions,
|
|
194
218
|
sourceMap: false,
|
|
195
219
|
incremental: true,
|
|
196
|
-
tsBuildInfoFile
|
|
197
|
-
info.pkgDir,
|
|
198
|
-
".cache",
|
|
199
|
-
shouldEmit ? "dts.tsbuildinfo" : `typecheck-${info.env}.tsbuildinfo`,
|
|
200
|
-
),
|
|
220
|
+
tsBuildInfoFile,
|
|
201
221
|
};
|
|
202
222
|
|
|
203
223
|
// emit 여부에 따라 관련 옵션 설정
|
|
204
|
-
if (shouldEmit) {
|
|
205
|
-
// dts 생성 + 타입체크
|
|
224
|
+
if (shouldEmit && info.pkgDir != null) {
|
|
225
|
+
// dts 생성 + 타입체크 (패키지 모드에서만)
|
|
206
226
|
options.noEmit = false;
|
|
207
227
|
options.emitDeclarationOnly = true;
|
|
208
228
|
options.declaration = true;
|
|
@@ -222,7 +242,7 @@ async function buildDts(info: DtsBuildInfo): Promise<DtsBuildResult> {
|
|
|
222
242
|
const host = ts.createIncrementalCompilerHost(options);
|
|
223
243
|
|
|
224
244
|
// 현재 패키지의 .d.ts만 flat 경로로 출력 (다른 패키지 .d.ts 생성 방지 + 중첩 경로 재작성)
|
|
225
|
-
if (shouldEmit) {
|
|
245
|
+
if (shouldEmit && info.pkgDir != null) {
|
|
226
246
|
const rewritePath = createDtsPathRewriter(info.pkgDir);
|
|
227
247
|
const originalWriteFile = host.writeFile;
|
|
228
248
|
host.writeFile = (fileName, content, writeByteOrderMark, onError, sourceFiles, data) => {
|
|
@@ -253,9 +273,7 @@ async function buildDts(info: DtsBuildInfo): Promise<DtsBuildResult> {
|
|
|
253
273
|
];
|
|
254
274
|
|
|
255
275
|
// 해당 패키지 src 폴더 내 파일만 에러 수집 (다른 패키지 에러 무시)
|
|
256
|
-
const filteredDiagnostics = allDiagnostics.filter(
|
|
257
|
-
(d) => d.file == null || d.file.fileName.startsWith(pkgSrcPrefix),
|
|
258
|
-
);
|
|
276
|
+
const filteredDiagnostics = allDiagnostics.filter(diagnosticFilter);
|
|
259
277
|
|
|
260
278
|
const serializedDiagnostics = filteredDiagnostics.map(serializeDiagnostic);
|
|
261
279
|
const errorCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Error).length;
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
"vitest": "vitest"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@simplysm/sd-cli": "~13.0.0-beta.
|
|
19
|
-
"@simplysm/claude": "~13.0.0-beta.
|
|
20
|
-
"@simplysm/eslint-plugin": "~13.0.0-beta.
|
|
18
|
+
"@simplysm/sd-cli": "~13.0.0-beta.51",
|
|
19
|
+
"@simplysm/claude": "~13.0.0-beta.51",
|
|
20
|
+
"@simplysm/eslint-plugin": "~13.0.0-beta.51",
|
|
21
21
|
"@types/node": "^20.19.33",
|
|
22
22
|
"eslint": "^9.39.2",
|
|
23
23
|
"prettier": "^3.8.1",
|