ttsc 0.9.0 → 0.10.0
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/cmd/ttsc/api_compile.go +106 -116
- package/cmd/ttsc/api_transform.go +54 -51
- package/cmd/ttsc/main.go +103 -121
- package/driver/program.go +7 -1
- package/go.mod +2 -0
- package/lib/plugin/internal/buildSourcePlugin.js +110 -16
- package/lib/plugin/internal/buildSourcePlugin.js.map +1 -1
- package/package.json +9 -9
- package/shim/printer/go.mod +5 -0
- package/shim/printer/shim.go +23 -0
- package/src/plugin/internal/buildSourcePlugin.ts +195 -19
- package/utility/host.go +12 -2
- package/cmd/ttsc/main_test.go +0 -288
- package/driver/rewrite_test.go +0 -52
- package/utility/host_test.go +0 -162
package/go.mod
CHANGED
|
@@ -14,6 +14,7 @@ replace (
|
|
|
14
14
|
github.com/microsoft/typescript-go/shim/core => ./shim/core
|
|
15
15
|
github.com/microsoft/typescript-go/shim/diagnosticwriter => ./shim/diagnosticwriter
|
|
16
16
|
github.com/microsoft/typescript-go/shim/parser => ./shim/parser
|
|
17
|
+
github.com/microsoft/typescript-go/shim/printer => ./shim/printer
|
|
17
18
|
github.com/microsoft/typescript-go/shim/scanner => ./shim/scanner
|
|
18
19
|
github.com/microsoft/typescript-go/shim/tsoptions => ./shim/tsoptions
|
|
19
20
|
github.com/microsoft/typescript-go/shim/tspath => ./shim/tspath
|
|
@@ -29,6 +30,7 @@ require (
|
|
|
29
30
|
github.com/microsoft/typescript-go/shim/compiler v0.0.0
|
|
30
31
|
github.com/microsoft/typescript-go/shim/core v0.0.0
|
|
31
32
|
github.com/microsoft/typescript-go/shim/diagnosticwriter v0.0.0
|
|
33
|
+
github.com/microsoft/typescript-go/shim/printer v0.0.0
|
|
32
34
|
github.com/microsoft/typescript-go/shim/scanner v0.0.0
|
|
33
35
|
github.com/microsoft/typescript-go/shim/tsoptions v0.0.0
|
|
34
36
|
github.com/microsoft/typescript-go/shim/tspath v0.0.0
|
|
@@ -12,6 +12,8 @@ const node_module_1 = require("node:module");
|
|
|
12
12
|
const node_os_1 = __importDefault(require("node:os"));
|
|
13
13
|
const node_path_1 = __importDefault(require("node:path"));
|
|
14
14
|
const GO_MOD_SEARCH_MAX_DEPTH = 3;
|
|
15
|
+
const TTSC_GO_MODULE_PATH = "github.com/samchon/ttsc/packages/ttsc";
|
|
16
|
+
const TSGO_GO_MODULE_PATH = "github.com/microsoft/typescript-go";
|
|
15
17
|
const PRUNE_DIRS = new Set(["node_modules", ".git", ".ttsc"]);
|
|
16
18
|
const GENERATED_WORKSPACE_FILES = new Set(["go.work", "go.work.sum"]);
|
|
17
19
|
/** Build one Go source plugin into a cached executable. */
|
|
@@ -19,6 +21,7 @@ function buildSourcePlugin(opts) {
|
|
|
19
21
|
const { dir, entry, source } = resolveSourceBuildTarget(opts);
|
|
20
22
|
const overlayDirs = opts.overlayDirs ?? findTtscOverlayDirs();
|
|
21
23
|
const goBinary = resolveGoCompiler();
|
|
24
|
+
ensureExecutableGoToolchain(goBinary);
|
|
22
25
|
const key = computeCacheKey({
|
|
23
26
|
dir,
|
|
24
27
|
entry,
|
|
@@ -42,7 +45,7 @@ function buildSourcePlugin(opts) {
|
|
|
42
45
|
const scratchDir = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), `ttsc-plugin-${key}-`));
|
|
43
46
|
try {
|
|
44
47
|
materializeScratchDir(dir, scratchDir);
|
|
45
|
-
writeGoWork(scratchDir, overlayDirs);
|
|
48
|
+
writeGoWork(scratchDir, overlayDirs, goBinary, opts.pluginName);
|
|
46
49
|
const scratchBinaryName = process.platform === "win32" ? ".ttsc-plugin.exe" : ".ttsc-plugin";
|
|
47
50
|
runGoBuild(scratchDir, entry, scratchBinaryName, opts.pluginName, goBinary);
|
|
48
51
|
const builtBinary = node_path_1.default.join(scratchDir, scratchBinaryName);
|
|
@@ -132,36 +135,124 @@ function materializeScratchDir(source, scratch) {
|
|
|
132
135
|
},
|
|
133
136
|
});
|
|
134
137
|
}
|
|
135
|
-
function writeGoWork(scratchDir, useDirs) {
|
|
138
|
+
function writeGoWork(scratchDir, useDirs, goBinary, pluginName) {
|
|
139
|
+
const goModReader = createGoModReader(goBinary, pluginName);
|
|
140
|
+
validateSourceReplacements(scratchDir, useDirs, goModReader, pluginName);
|
|
136
141
|
const useLines = ["\t."];
|
|
137
142
|
for (const dir of useDirs) {
|
|
138
143
|
useLines.push(`\t${dir.replace(/\\/g, "/")}`);
|
|
139
144
|
}
|
|
140
|
-
const replaceLines = sourceBuildWorkspaceReplacements(useDirs);
|
|
145
|
+
const replaceLines = sourceBuildWorkspaceReplacements(useDirs, goModReader);
|
|
141
146
|
const replaceBlock = replaceLines.length === 0 ? "" : `\n\n${replaceLines.join("\n")}\n`;
|
|
142
147
|
const goWork = `go 1.26\n\nuse (\n${useLines.join("\n")}\n)${replaceBlock}`;
|
|
143
148
|
node_fs_1.default.writeFileSync(node_path_1.default.join(scratchDir, "go.work"), goWork, "utf8");
|
|
144
149
|
}
|
|
145
|
-
function
|
|
146
|
-
const
|
|
150
|
+
function validateSourceReplacements(scratchDir, useDirs, goModReader, pluginName) {
|
|
151
|
+
const sourceInfo = goModReader.read(scratchDir);
|
|
152
|
+
if (sourceInfo.modulePath === TTSC_GO_MODULE_PATH) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const sourceReplacements = sourceInfo.replacements;
|
|
156
|
+
if (sourceReplacements.length === 0) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
const overlayModules = collectOverlayModulePaths(useDirs, goModReader);
|
|
160
|
+
for (const replacement of sourceReplacements) {
|
|
161
|
+
if (isTtscManagedModulePath(replacement.modulePath) ||
|
|
162
|
+
overlayModules.has(replacement.modulePath)) {
|
|
163
|
+
throw new Error(`ttsc: plugin "${pluginName}" go.mod replaces ttsc-managed module ` +
|
|
164
|
+
`${JSON.stringify(replacement.modulePath)}. Remove this replace directive; ` +
|
|
165
|
+
`ttsc supplies its own compiler and shim modules while building source plugins.`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function sourceBuildWorkspaceReplacements(useDirs, goModReader) {
|
|
170
|
+
const ttscRoot = useDirs.find((dir) => goModReader.read(dir).modulePath === TTSC_GO_MODULE_PATH);
|
|
147
171
|
if (!ttscRoot) {
|
|
148
172
|
return [];
|
|
149
173
|
}
|
|
150
174
|
return [
|
|
151
|
-
`replace
|
|
175
|
+
`replace ${TTSC_GO_MODULE_PATH} v0.0.0 => ${ttscRoot.replace(/\\/g, "/")}`,
|
|
152
176
|
];
|
|
153
177
|
}
|
|
154
|
-
function
|
|
178
|
+
function createGoModReader(goBinary, pluginName) {
|
|
179
|
+
const cache = new Map();
|
|
180
|
+
return {
|
|
181
|
+
read(dir) {
|
|
182
|
+
const resolved = node_path_1.default.resolve(dir);
|
|
183
|
+
const cached = cache.get(resolved);
|
|
184
|
+
if (cached !== undefined) {
|
|
185
|
+
return cached;
|
|
186
|
+
}
|
|
187
|
+
const info = readGoModInfo(resolved, goBinary, pluginName);
|
|
188
|
+
cache.set(resolved, info);
|
|
189
|
+
return info;
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
function readGoModInfo(dir, goBinary, pluginName) {
|
|
194
|
+
if (!node_fs_1.default.existsSync(node_path_1.default.join(dir, "go.mod"))) {
|
|
195
|
+
return emptyGoModInfo();
|
|
196
|
+
}
|
|
197
|
+
const result = (0, node_child_process_1.spawnSync)(goBinary, ["mod", "edit", "-json"], {
|
|
198
|
+
cwd: dir,
|
|
199
|
+
encoding: "utf8",
|
|
200
|
+
env: goBuildEnv(goBinary),
|
|
201
|
+
maxBuffer: 1024 * 1024 * 16,
|
|
202
|
+
windowsHide: true,
|
|
203
|
+
});
|
|
204
|
+
if (result.error) {
|
|
205
|
+
if (result.error.code === "ENOENT") {
|
|
206
|
+
throw new Error(goToolchainNotFoundMessage(pluginName));
|
|
207
|
+
}
|
|
208
|
+
throw new Error(`ttsc: reading go.mod for plugin "${pluginName}" failed to spawn ${goBinary}: ${result.error.message}`);
|
|
209
|
+
}
|
|
210
|
+
if (result.status !== 0) {
|
|
211
|
+
throw new Error(`ttsc: reading go.mod for plugin "${pluginName}" failed:\n${result.stderr || result.stdout}`);
|
|
212
|
+
}
|
|
213
|
+
let json;
|
|
155
214
|
try {
|
|
156
|
-
|
|
157
|
-
return new RegExp(`^module\\s+${escapeRegExp(modulePath)}\\s*$`, "m").test(goMod);
|
|
215
|
+
json = JSON.parse(result.stdout);
|
|
158
216
|
}
|
|
159
|
-
catch {
|
|
160
|
-
|
|
217
|
+
catch (error) {
|
|
218
|
+
throw new Error(`ttsc: reading go.mod for plugin "${pluginName}" returned invalid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
161
219
|
}
|
|
220
|
+
return {
|
|
221
|
+
modulePath: json.Module?.Path ?? null,
|
|
222
|
+
replacements: (json.Replace ?? [])
|
|
223
|
+
.map(jsonReplacementToGoModReplacement)
|
|
224
|
+
.filter((replacement) => replacement !== null),
|
|
225
|
+
};
|
|
162
226
|
}
|
|
163
|
-
function
|
|
164
|
-
return
|
|
227
|
+
function emptyGoModInfo() {
|
|
228
|
+
return {
|
|
229
|
+
modulePath: null,
|
|
230
|
+
replacements: [],
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
function jsonReplacementToGoModReplacement(replacement) {
|
|
234
|
+
const modulePath = replacement.Old?.Path;
|
|
235
|
+
if (modulePath === undefined) {
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
modulePath,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
function collectOverlayModulePaths(dirs, goModReader) {
|
|
243
|
+
const out = new Set();
|
|
244
|
+
for (const dir of dirs) {
|
|
245
|
+
const modulePath = goModReader.read(dir).modulePath;
|
|
246
|
+
if (modulePath !== null) {
|
|
247
|
+
out.add(modulePath);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return out;
|
|
251
|
+
}
|
|
252
|
+
function isTtscManagedModulePath(modulePath) {
|
|
253
|
+
return (modulePath === TTSC_GO_MODULE_PATH ||
|
|
254
|
+
modulePath === TSGO_GO_MODULE_PATH ||
|
|
255
|
+
modulePath.startsWith("github.com/microsoft/typescript-go/shim/"));
|
|
165
256
|
}
|
|
166
257
|
function runGoBuild(cwd, entry, binaryName, pluginName, goBinary) {
|
|
167
258
|
ensureExecutableGoToolchain(goBinary);
|
|
@@ -174,9 +265,7 @@ function runGoBuild(cwd, entry, binaryName, pluginName, goBinary) {
|
|
|
174
265
|
});
|
|
175
266
|
if (result.error) {
|
|
176
267
|
if (result.error.code === "ENOENT") {
|
|
177
|
-
throw new Error(
|
|
178
|
-
`Reinstall ttsc with optional dependencies so the bundled Go compiler is present, ` +
|
|
179
|
-
`or set TTSC_GO_BINARY to an absolute path.`);
|
|
268
|
+
throw new Error(goToolchainNotFoundMessage(pluginName));
|
|
180
269
|
}
|
|
181
270
|
throw new Error(`ttsc: building plugin "${pluginName}" failed to spawn ${goBinary}: ${result.error.message}`);
|
|
182
271
|
}
|
|
@@ -184,6 +273,11 @@ function runGoBuild(cwd, entry, binaryName, pluginName, goBinary) {
|
|
|
184
273
|
throw new Error(`ttsc: building plugin "${pluginName}" via "go build" failed:\n${result.stderr || result.stdout}`);
|
|
185
274
|
}
|
|
186
275
|
}
|
|
276
|
+
function goToolchainNotFoundMessage(pluginName) {
|
|
277
|
+
return (`ttsc: building plugin "${pluginName}" failed because the Go toolchain was not found. ` +
|
|
278
|
+
`Reinstall ttsc with optional dependencies so the bundled Go compiler is present, ` +
|
|
279
|
+
`or set TTSC_GO_BINARY to an absolute path.`);
|
|
280
|
+
}
|
|
187
281
|
function goBuildEnv(goBinary) {
|
|
188
282
|
const env = { ...process.env };
|
|
189
283
|
const goRoot = inferGoRoot(goBinary);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildSourcePlugin.js","sourceRoot":"","sources":["../../../src/plugin/internal/buildSourcePlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildSourcePlugin.js","sourceRoot":"","sources":["../../../src/plugin/internal/buildSourcePlugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ttsc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "General-purpose TypeScript-Go compiler, plugin host, and runtime.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -27,17 +27,17 @@
|
|
|
27
27
|
"homepage": "https://github.com/samchon/ttsc",
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@types/node": "^25.3.0",
|
|
30
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
30
|
+
"@typescript/native-preview": "7.0.0-dev.20260510.1",
|
|
31
31
|
"rimraf": "^6.1.2"
|
|
32
32
|
},
|
|
33
33
|
"optionalDependencies": {
|
|
34
|
-
"@ttsc/linux-
|
|
35
|
-
"@ttsc/linux-
|
|
36
|
-
"@ttsc/
|
|
37
|
-
"@ttsc/
|
|
38
|
-
"@ttsc/darwin-x64": "0.
|
|
39
|
-
"@ttsc/win32-x64": "0.
|
|
40
|
-
"@ttsc/win32-arm64": "0.
|
|
34
|
+
"@ttsc/linux-arm": "0.10.0",
|
|
35
|
+
"@ttsc/linux-x64": "0.10.0",
|
|
36
|
+
"@ttsc/linux-arm64": "0.10.0",
|
|
37
|
+
"@ttsc/darwin-arm64": "0.10.0",
|
|
38
|
+
"@ttsc/darwin-x64": "0.10.0",
|
|
39
|
+
"@ttsc/win32-x64": "0.10.0",
|
|
40
|
+
"@ttsc/win32-arm64": "0.10.0"
|
|
41
41
|
},
|
|
42
42
|
"sideEffects": false,
|
|
43
43
|
"files": [
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
package printer
|
|
2
|
+
|
|
3
|
+
import (
|
|
4
|
+
"github.com/microsoft/typescript-go/internal/ast"
|
|
5
|
+
innerprinter "github.com/microsoft/typescript-go/internal/printer"
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
type PrintHandlers = innerprinter.PrintHandlers
|
|
9
|
+
type Printer = innerprinter.Printer
|
|
10
|
+
type PrinterOptions = innerprinter.PrinterOptions
|
|
11
|
+
type EmitContext = innerprinter.EmitContext
|
|
12
|
+
|
|
13
|
+
func NewPrinter(options PrinterOptions, handlers PrintHandlers, emitContext *EmitContext) *Printer {
|
|
14
|
+
return innerprinter.NewPrinter(options, handlers, emitContext)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
func NewEmitContext() *EmitContext {
|
|
18
|
+
return innerprinter.NewEmitContext()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
func EmitSourceFile(p *Printer, sourceFile *ast.SourceFile) string {
|
|
22
|
+
return p.EmitSourceFile(sourceFile)
|
|
23
|
+
}
|
|
@@ -6,6 +6,8 @@ import os from "node:os";
|
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
|
|
8
8
|
const GO_MOD_SEARCH_MAX_DEPTH = 3;
|
|
9
|
+
const TTSC_GO_MODULE_PATH = "github.com/samchon/ttsc/packages/ttsc";
|
|
10
|
+
const TSGO_GO_MODULE_PATH = "github.com/microsoft/typescript-go";
|
|
9
11
|
|
|
10
12
|
const PRUNE_DIRS = new Set(["node_modules", ".git", ".ttsc"]);
|
|
11
13
|
const GENERATED_WORKSPACE_FILES = new Set(["go.work", "go.work.sum"]);
|
|
@@ -25,6 +27,7 @@ export function buildSourcePlugin(opts: {
|
|
|
25
27
|
const { dir, entry, source } = resolveSourceBuildTarget(opts);
|
|
26
28
|
const overlayDirs = opts.overlayDirs ?? findTtscOverlayDirs();
|
|
27
29
|
const goBinary = resolveGoCompiler();
|
|
30
|
+
ensureExecutableGoToolchain(goBinary);
|
|
28
31
|
const key = computeCacheKey({
|
|
29
32
|
dir,
|
|
30
33
|
entry,
|
|
@@ -53,7 +56,7 @@ export function buildSourcePlugin(opts: {
|
|
|
53
56
|
);
|
|
54
57
|
try {
|
|
55
58
|
materializeScratchDir(dir, scratchDir);
|
|
56
|
-
writeGoWork(scratchDir, overlayDirs);
|
|
59
|
+
writeGoWork(scratchDir, overlayDirs, goBinary, opts.pluginName);
|
|
57
60
|
const scratchBinaryName =
|
|
58
61
|
process.platform === "win32" ? ".ttsc-plugin.exe" : ".ttsc-plugin";
|
|
59
62
|
runGoBuild(scratchDir, entry, scratchBinaryName, opts.pluginName, goBinary);
|
|
@@ -161,45 +164,214 @@ function materializeScratchDir(source: string, scratch: string): void {
|
|
|
161
164
|
});
|
|
162
165
|
}
|
|
163
166
|
|
|
164
|
-
function writeGoWork(
|
|
167
|
+
function writeGoWork(
|
|
168
|
+
scratchDir: string,
|
|
169
|
+
useDirs: readonly string[],
|
|
170
|
+
goBinary: string,
|
|
171
|
+
pluginName: string,
|
|
172
|
+
): void {
|
|
173
|
+
const goModReader = createGoModReader(goBinary, pluginName);
|
|
174
|
+
validateSourceReplacements(
|
|
175
|
+
scratchDir,
|
|
176
|
+
useDirs,
|
|
177
|
+
goModReader,
|
|
178
|
+
pluginName,
|
|
179
|
+
);
|
|
165
180
|
const useLines = ["\t."];
|
|
166
181
|
for (const dir of useDirs) {
|
|
167
182
|
useLines.push(`\t${dir.replace(/\\/g, "/")}`);
|
|
168
183
|
}
|
|
169
|
-
const replaceLines = sourceBuildWorkspaceReplacements(
|
|
184
|
+
const replaceLines = sourceBuildWorkspaceReplacements(
|
|
185
|
+
useDirs,
|
|
186
|
+
goModReader,
|
|
187
|
+
);
|
|
170
188
|
const replaceBlock =
|
|
171
189
|
replaceLines.length === 0 ? "" : `\n\n${replaceLines.join("\n")}\n`;
|
|
172
190
|
const goWork = `go 1.26\n\nuse (\n${useLines.join("\n")}\n)${replaceBlock}`;
|
|
173
191
|
fs.writeFileSync(path.join(scratchDir, "go.work"), goWork, "utf8");
|
|
174
192
|
}
|
|
175
193
|
|
|
194
|
+
function validateSourceReplacements(
|
|
195
|
+
scratchDir: string,
|
|
196
|
+
useDirs: readonly string[],
|
|
197
|
+
goModReader: GoModReader,
|
|
198
|
+
pluginName: string,
|
|
199
|
+
): void {
|
|
200
|
+
const sourceInfo = goModReader.read(scratchDir);
|
|
201
|
+
if (sourceInfo.modulePath === TTSC_GO_MODULE_PATH) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const sourceReplacements = sourceInfo.replacements;
|
|
205
|
+
if (sourceReplacements.length === 0) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const overlayModules = collectOverlayModulePaths(useDirs, goModReader);
|
|
209
|
+
for (const replacement of sourceReplacements) {
|
|
210
|
+
if (
|
|
211
|
+
isTtscManagedModulePath(replacement.modulePath) ||
|
|
212
|
+
overlayModules.has(replacement.modulePath)
|
|
213
|
+
) {
|
|
214
|
+
throw new Error(
|
|
215
|
+
`ttsc: plugin "${pluginName}" go.mod replaces ttsc-managed module ` +
|
|
216
|
+
`${JSON.stringify(replacement.modulePath)}. Remove this replace directive; ` +
|
|
217
|
+
`ttsc supplies its own compiler and shim modules while building source plugins.`,
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
176
223
|
function sourceBuildWorkspaceReplacements(
|
|
177
224
|
useDirs: readonly string[],
|
|
225
|
+
goModReader: GoModReader,
|
|
178
226
|
): string[] {
|
|
179
|
-
const ttscRoot = useDirs.find(
|
|
180
|
-
|
|
227
|
+
const ttscRoot = useDirs.find(
|
|
228
|
+
(dir) => goModReader.read(dir).modulePath === TTSC_GO_MODULE_PATH,
|
|
181
229
|
);
|
|
182
230
|
if (!ttscRoot) {
|
|
183
231
|
return [];
|
|
184
232
|
}
|
|
185
233
|
return [
|
|
186
|
-
`replace
|
|
234
|
+
`replace ${TTSC_GO_MODULE_PATH} v0.0.0 => ${ttscRoot.replace(/\\/g, "/")}`,
|
|
187
235
|
];
|
|
188
236
|
}
|
|
189
237
|
|
|
190
|
-
|
|
238
|
+
interface GoModReplacement {
|
|
239
|
+
readonly modulePath: string;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
interface GoModInfo {
|
|
243
|
+
readonly modulePath: string | null;
|
|
244
|
+
readonly replacements: readonly GoModReplacement[];
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
interface GoModReader {
|
|
248
|
+
read(dir: string): GoModInfo;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
interface GoModJson {
|
|
252
|
+
readonly Module?: {
|
|
253
|
+
readonly Path?: string;
|
|
254
|
+
};
|
|
255
|
+
readonly Require?: readonly {
|
|
256
|
+
readonly Path?: string;
|
|
257
|
+
readonly Version?: string;
|
|
258
|
+
}[];
|
|
259
|
+
readonly Replace?: readonly {
|
|
260
|
+
readonly Old?: {
|
|
261
|
+
readonly Path?: string;
|
|
262
|
+
readonly Version?: string;
|
|
263
|
+
};
|
|
264
|
+
readonly New?: {
|
|
265
|
+
readonly Path?: string;
|
|
266
|
+
readonly Version?: string;
|
|
267
|
+
};
|
|
268
|
+
}[];
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function createGoModReader(goBinary: string, pluginName: string): GoModReader {
|
|
272
|
+
const cache = new Map<string, GoModInfo>();
|
|
273
|
+
return {
|
|
274
|
+
read(dir) {
|
|
275
|
+
const resolved = path.resolve(dir);
|
|
276
|
+
const cached = cache.get(resolved);
|
|
277
|
+
if (cached !== undefined) {
|
|
278
|
+
return cached;
|
|
279
|
+
}
|
|
280
|
+
const info = readGoModInfo(resolved, goBinary, pluginName);
|
|
281
|
+
cache.set(resolved, info);
|
|
282
|
+
return info;
|
|
283
|
+
},
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
function readGoModInfo(
|
|
288
|
+
dir: string,
|
|
289
|
+
goBinary: string,
|
|
290
|
+
pluginName: string,
|
|
291
|
+
): GoModInfo {
|
|
292
|
+
if (!fs.existsSync(path.join(dir, "go.mod"))) {
|
|
293
|
+
return emptyGoModInfo();
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
const result = spawnSync(goBinary, ["mod", "edit", "-json"], {
|
|
297
|
+
cwd: dir,
|
|
298
|
+
encoding: "utf8",
|
|
299
|
+
env: goBuildEnv(goBinary),
|
|
300
|
+
maxBuffer: 1024 * 1024 * 16,
|
|
301
|
+
windowsHide: true,
|
|
302
|
+
});
|
|
303
|
+
if (result.error) {
|
|
304
|
+
if ((result.error as NodeJS.ErrnoException).code === "ENOENT") {
|
|
305
|
+
throw new Error(goToolchainNotFoundMessage(pluginName));
|
|
306
|
+
}
|
|
307
|
+
throw new Error(
|
|
308
|
+
`ttsc: reading go.mod for plugin "${pluginName}" failed to spawn ${goBinary}: ${result.error.message}`,
|
|
309
|
+
);
|
|
310
|
+
}
|
|
311
|
+
if (result.status !== 0) {
|
|
312
|
+
throw new Error(
|
|
313
|
+
`ttsc: reading go.mod for plugin "${pluginName}" failed:\n${result.stderr || result.stdout}`,
|
|
314
|
+
);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
let json: GoModJson;
|
|
191
318
|
try {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
319
|
+
json = JSON.parse(result.stdout) as GoModJson;
|
|
320
|
+
} catch (error) {
|
|
321
|
+
throw new Error(
|
|
322
|
+
`ttsc: reading go.mod for plugin "${pluginName}" returned invalid JSON: ${
|
|
323
|
+
error instanceof Error ? error.message : String(error)
|
|
324
|
+
}`,
|
|
195
325
|
);
|
|
196
|
-
} catch {
|
|
197
|
-
return false;
|
|
198
326
|
}
|
|
327
|
+
|
|
328
|
+
return {
|
|
329
|
+
modulePath: json.Module?.Path ?? null,
|
|
330
|
+
replacements: (json.Replace ?? [])
|
|
331
|
+
.map(jsonReplacementToGoModReplacement)
|
|
332
|
+
.filter((replacement) => replacement !== null),
|
|
333
|
+
};
|
|
199
334
|
}
|
|
200
335
|
|
|
201
|
-
function
|
|
202
|
-
return
|
|
336
|
+
function emptyGoModInfo(): GoModInfo {
|
|
337
|
+
return {
|
|
338
|
+
modulePath: null,
|
|
339
|
+
replacements: [],
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
function jsonReplacementToGoModReplacement(
|
|
344
|
+
replacement: NonNullable<GoModJson["Replace"]>[number],
|
|
345
|
+
): GoModReplacement | null {
|
|
346
|
+
const modulePath = replacement.Old?.Path;
|
|
347
|
+
if (modulePath === undefined) {
|
|
348
|
+
return null;
|
|
349
|
+
}
|
|
350
|
+
return {
|
|
351
|
+
modulePath,
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
function collectOverlayModulePaths(
|
|
356
|
+
dirs: readonly string[],
|
|
357
|
+
goModReader: GoModReader,
|
|
358
|
+
): Set<string> {
|
|
359
|
+
const out = new Set<string>();
|
|
360
|
+
for (const dir of dirs) {
|
|
361
|
+
const modulePath = goModReader.read(dir).modulePath;
|
|
362
|
+
if (modulePath !== null) {
|
|
363
|
+
out.add(modulePath);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
return out;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
function isTtscManagedModulePath(modulePath: string): boolean {
|
|
370
|
+
return (
|
|
371
|
+
modulePath === TTSC_GO_MODULE_PATH ||
|
|
372
|
+
modulePath === TSGO_GO_MODULE_PATH ||
|
|
373
|
+
modulePath.startsWith("github.com/microsoft/typescript-go/shim/")
|
|
374
|
+
);
|
|
203
375
|
}
|
|
204
376
|
|
|
205
377
|
function runGoBuild(
|
|
@@ -219,11 +391,7 @@ function runGoBuild(
|
|
|
219
391
|
});
|
|
220
392
|
if (result.error) {
|
|
221
393
|
if ((result.error as NodeJS.ErrnoException).code === "ENOENT") {
|
|
222
|
-
throw new Error(
|
|
223
|
-
`ttsc: building plugin "${pluginName}" failed because the Go toolchain was not found. ` +
|
|
224
|
-
`Reinstall ttsc with optional dependencies so the bundled Go compiler is present, ` +
|
|
225
|
-
`or set TTSC_GO_BINARY to an absolute path.`,
|
|
226
|
-
);
|
|
394
|
+
throw new Error(goToolchainNotFoundMessage(pluginName));
|
|
227
395
|
}
|
|
228
396
|
throw new Error(
|
|
229
397
|
`ttsc: building plugin "${pluginName}" failed to spawn ${goBinary}: ${result.error.message}`,
|
|
@@ -236,6 +404,14 @@ function runGoBuild(
|
|
|
236
404
|
}
|
|
237
405
|
}
|
|
238
406
|
|
|
407
|
+
function goToolchainNotFoundMessage(pluginName: string): string {
|
|
408
|
+
return (
|
|
409
|
+
`ttsc: building plugin "${pluginName}" failed because the Go toolchain was not found. ` +
|
|
410
|
+
`Reinstall ttsc with optional dependencies so the bundled Go compiler is present, ` +
|
|
411
|
+
`or set TTSC_GO_BINARY to an absolute path.`
|
|
412
|
+
);
|
|
413
|
+
}
|
|
414
|
+
|
|
239
415
|
function goBuildEnv(goBinary: string): NodeJS.ProcessEnv {
|
|
240
416
|
const env = { ...process.env };
|
|
241
417
|
const goRoot = inferGoRoot(goBinary);
|