@tsonic/cli 0.0.8 → 0.0.9
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/.tsbuildinfo +1 -1
- package/dist/cli/constants.d.ts +1 -1
- package/dist/cli/constants.js +1 -1
- package/dist/cli/dispatcher.d.ts.map +1 -1
- package/dist/cli/dispatcher.js +27 -3
- package/dist/cli/dispatcher.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +8 -4
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/parser.d.ts +1 -0
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +16 -2
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/parser.test.js +30 -3
- package/dist/cli/parser.test.js.map +1 -1
- package/dist/commands/add-package.d.ts +26 -0
- package/dist/commands/add-package.d.ts.map +1 -0
- package/dist/commands/add-package.js +119 -0
- package/dist/commands/add-package.js.map +1 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +12 -37
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/emit.d.ts.map +1 -1
- package/dist/commands/emit.js +29 -35
- package/dist/commands/emit.js.map +1 -1
- package/dist/commands/generate.d.ts +12 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +344 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.d.ts +15 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +94 -25
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.test.d.ts +5 -0
- package/dist/commands/init.test.d.ts.map +1 -0
- package/dist/commands/init.test.js +81 -0
- package/dist/commands/init.test.js.map +1 -0
- package/dist/commands/pack.js +6 -6
- package/dist/commands/pack.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/runtime/nodejs.dll +0 -0
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tsonic generate command - Generate C# code only
|
|
3
|
+
*/
|
|
4
|
+
import { mkdirSync, writeFileSync, existsSync, readdirSync, copyFileSync, } from "node:fs";
|
|
5
|
+
import { join, dirname, relative, resolve } from "node:path";
|
|
6
|
+
import { buildModuleDependencyGraph, } from "@tsonic/frontend";
|
|
7
|
+
import { emitCSharpFiles } from "@tsonic/emitter";
|
|
8
|
+
import { generateCsproj, generateProgramCs, } from "@tsonic/backend";
|
|
9
|
+
/**
|
|
10
|
+
* Find project .csproj file in current directory
|
|
11
|
+
*/
|
|
12
|
+
const findProjectCsproj = () => {
|
|
13
|
+
const cwd = process.cwd();
|
|
14
|
+
const files = readdirSync(cwd);
|
|
15
|
+
const csprojFile = files.find((f) => f.endsWith(".csproj"));
|
|
16
|
+
return csprojFile ? join(cwd, csprojFile) : null;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Collect all CLR assemblies used by modules
|
|
20
|
+
* Returns unique assembly names from module imports
|
|
21
|
+
*/
|
|
22
|
+
const collectClrAssemblies = (modules) => {
|
|
23
|
+
const assemblies = new Set();
|
|
24
|
+
for (const mod of modules) {
|
|
25
|
+
for (const imp of mod.imports) {
|
|
26
|
+
if (imp.isClr && imp.resolvedAssembly) {
|
|
27
|
+
assemblies.add(imp.resolvedAssembly);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return assemblies;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Find runtime DLLs bundled with @tsonic/cli npm package
|
|
35
|
+
* Returns assembly references for the csproj file
|
|
36
|
+
*/
|
|
37
|
+
const findRuntimeDlls = (runtime, outputDir, usedAssemblies = new Set()) => {
|
|
38
|
+
// Try to find runtime directory bundled with CLI package
|
|
39
|
+
// import.meta.dirname is the dist/commands directory
|
|
40
|
+
const possiblePaths = [
|
|
41
|
+
// Development: From dist/commands -> ../../runtime
|
|
42
|
+
join(import.meta.dirname, "../../runtime"),
|
|
43
|
+
// npm installed: From dist/commands -> ../runtime (inside @tsonic/cli package)
|
|
44
|
+
join(import.meta.dirname, "../runtime"),
|
|
45
|
+
// From project's node_modules (when CLI is a dev dependency)
|
|
46
|
+
join(process.cwd(), "node_modules/@tsonic/cli/runtime"),
|
|
47
|
+
];
|
|
48
|
+
let runtimeDir = null;
|
|
49
|
+
for (const p of possiblePaths) {
|
|
50
|
+
if (existsSync(p)) {
|
|
51
|
+
runtimeDir = p;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (!runtimeDir) {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
const refs = [];
|
|
59
|
+
// Calculate relative path from output directory to runtime directory
|
|
60
|
+
const relativeRuntimeDir = relative(outputDir, runtimeDir);
|
|
61
|
+
// Always include Tsonic.Runtime
|
|
62
|
+
const runtimeDll = join(runtimeDir, "Tsonic.Runtime.dll");
|
|
63
|
+
if (existsSync(runtimeDll)) {
|
|
64
|
+
refs.push({
|
|
65
|
+
name: "Tsonic.Runtime",
|
|
66
|
+
hintPath: join(relativeRuntimeDir, "Tsonic.Runtime.dll"),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// Include Tsonic.JSRuntime for js mode
|
|
70
|
+
if (runtime === "js") {
|
|
71
|
+
const jsRuntimeDll = join(runtimeDir, "Tsonic.JSRuntime.dll");
|
|
72
|
+
if (existsSync(jsRuntimeDll)) {
|
|
73
|
+
refs.push({
|
|
74
|
+
name: "Tsonic.JSRuntime",
|
|
75
|
+
hintPath: join(relativeRuntimeDir, "Tsonic.JSRuntime.dll"),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Include nodejs.dll if nodejs assembly is used
|
|
80
|
+
if (usedAssemblies.has("nodejs")) {
|
|
81
|
+
const nodejsDll = join(runtimeDir, "nodejs.dll");
|
|
82
|
+
if (existsSync(nodejsDll)) {
|
|
83
|
+
refs.push({
|
|
84
|
+
name: "nodejs",
|
|
85
|
+
hintPath: join(relativeRuntimeDir, "nodejs.dll"),
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return refs;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Collect assembly references from project libraries (lib/*.dll)
|
|
93
|
+
* These are DLLs registered in tsonic.json's dotnet.libraries
|
|
94
|
+
*/
|
|
95
|
+
const collectProjectLibraries = (projectRoot, outputDir, libraries) => {
|
|
96
|
+
const refs = [];
|
|
97
|
+
for (const libPath of libraries) {
|
|
98
|
+
// Library path is relative to project root
|
|
99
|
+
const absolutePath = join(projectRoot, libPath);
|
|
100
|
+
if (!existsSync(absolutePath)) {
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (!libPath.endsWith(".dll")) {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
// Extract assembly name from filename
|
|
107
|
+
const dllName = libPath.split("/").pop() ?? "";
|
|
108
|
+
const assemblyName = dllName.replace(/\.dll$/, "");
|
|
109
|
+
// Calculate relative path from output directory to the DLL
|
|
110
|
+
const hintPath = relative(outputDir, absolutePath);
|
|
111
|
+
refs.push({
|
|
112
|
+
name: assemblyName,
|
|
113
|
+
hintPath,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return refs;
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* Extract entry point information from IR module
|
|
120
|
+
*/
|
|
121
|
+
const extractEntryInfo = (entryModule, runtime) => {
|
|
122
|
+
// Look for exported 'main' function
|
|
123
|
+
for (const exp of entryModule.exports) {
|
|
124
|
+
if (exp.kind === "declaration") {
|
|
125
|
+
const decl = exp.declaration;
|
|
126
|
+
if (decl.kind === "functionDeclaration" && decl.name === "main") {
|
|
127
|
+
return {
|
|
128
|
+
namespace: entryModule.namespace,
|
|
129
|
+
className: entryModule.className,
|
|
130
|
+
methodName: "main",
|
|
131
|
+
isAsync: decl.isAsync,
|
|
132
|
+
needsProgram: true,
|
|
133
|
+
runtime,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (exp.kind === "named" && exp.name === "main") {
|
|
138
|
+
// Named export of 'main'
|
|
139
|
+
// Look in body for the function declaration
|
|
140
|
+
for (const stmt of entryModule.body) {
|
|
141
|
+
if (stmt.kind === "functionDeclaration" && stmt.name === "main") {
|
|
142
|
+
return {
|
|
143
|
+
namespace: entryModule.namespace,
|
|
144
|
+
className: entryModule.className,
|
|
145
|
+
methodName: "main",
|
|
146
|
+
isAsync: stmt.isAsync,
|
|
147
|
+
needsProgram: true,
|
|
148
|
+
runtime,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// No main function found
|
|
155
|
+
return null;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Emit C# code from TypeScript
|
|
159
|
+
*/
|
|
160
|
+
export const generateCommand = (config) => {
|
|
161
|
+
const { entryPoint, outputDirectory, rootNamespace, projectRoot, sourceRoot, packages, typeRoots, } = config;
|
|
162
|
+
// For libraries, entry point is optional
|
|
163
|
+
if (!entryPoint && config.outputConfig.type !== "library") {
|
|
164
|
+
return {
|
|
165
|
+
ok: false,
|
|
166
|
+
error: "Entry point is required for executable builds",
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
try {
|
|
170
|
+
// For libraries without entry point, we need a different approach
|
|
171
|
+
// For now, require entry point (library multi-file support can be added later)
|
|
172
|
+
if (!entryPoint) {
|
|
173
|
+
return {
|
|
174
|
+
ok: false,
|
|
175
|
+
error: "Entry point is required (library multi-file support coming soon)",
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
// Combine typeRoots and non-DLL libraries for TypeScript compilation
|
|
179
|
+
// DLL paths (*.dll) are for assembly references, not type roots
|
|
180
|
+
const typeLibraries = config.libraries.filter((lib) => !lib.endsWith(".dll"));
|
|
181
|
+
const allTypeRoots = [...typeRoots, ...typeLibraries];
|
|
182
|
+
// Build dependency graph - this traverses all imports and builds IR for all modules
|
|
183
|
+
const compilerOptions = {
|
|
184
|
+
projectRoot,
|
|
185
|
+
sourceRoot,
|
|
186
|
+
rootNamespace,
|
|
187
|
+
typeRoots: allTypeRoots,
|
|
188
|
+
verbose: config.verbose,
|
|
189
|
+
};
|
|
190
|
+
const graphResult = buildModuleDependencyGraph(entryPoint, compilerOptions);
|
|
191
|
+
if (!graphResult.ok) {
|
|
192
|
+
const errorMessages = graphResult.error
|
|
193
|
+
.map((d) => {
|
|
194
|
+
if (d.location) {
|
|
195
|
+
return `${d.location.file}:${d.location.line} ${d.message}`;
|
|
196
|
+
}
|
|
197
|
+
return d.message;
|
|
198
|
+
})
|
|
199
|
+
.join("\n");
|
|
200
|
+
return {
|
|
201
|
+
ok: false,
|
|
202
|
+
error: `TypeScript compilation failed:\n${errorMessages}`,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
const { modules, entryModule } = graphResult.value;
|
|
206
|
+
// irResult.value was an array of modules, now it's graphResult.value.modules
|
|
207
|
+
const irResult = { ok: true, value: modules };
|
|
208
|
+
// Emit C# code
|
|
209
|
+
const absoluteEntryPoint = entryPoint ? resolve(entryPoint) : undefined;
|
|
210
|
+
const emitResult = emitCSharpFiles(irResult.value, {
|
|
211
|
+
rootNamespace,
|
|
212
|
+
entryPointPath: absoluteEntryPoint,
|
|
213
|
+
libraries: typeLibraries, // Only non-DLL libraries (type roots)
|
|
214
|
+
runtime: config.runtime,
|
|
215
|
+
});
|
|
216
|
+
if (!emitResult.ok) {
|
|
217
|
+
// Handle file name collision errors
|
|
218
|
+
for (const error of emitResult.errors) {
|
|
219
|
+
console.error(`error ${error.code}: ${error.message}`);
|
|
220
|
+
}
|
|
221
|
+
process.exit(1);
|
|
222
|
+
}
|
|
223
|
+
const csFiles = emitResult.files;
|
|
224
|
+
// Create output directory
|
|
225
|
+
const outputDir = join(process.cwd(), outputDirectory);
|
|
226
|
+
mkdirSync(outputDir, { recursive: true });
|
|
227
|
+
// Write C# files preserving directory structure
|
|
228
|
+
for (const [modulePath, csCode] of csFiles) {
|
|
229
|
+
// Convert module path to C# file path
|
|
230
|
+
// src/models/User.ts → generated/src/models/User.cs
|
|
231
|
+
const csPath = modulePath.replace(/\.ts$/, ".cs");
|
|
232
|
+
const fullPath = join(outputDir, csPath);
|
|
233
|
+
mkdirSync(dirname(fullPath), { recursive: true });
|
|
234
|
+
writeFileSync(fullPath, csCode, "utf-8");
|
|
235
|
+
}
|
|
236
|
+
// Generate Program.cs entry point wrapper (only for executables)
|
|
237
|
+
if (absoluteEntryPoint) {
|
|
238
|
+
// entryModule is already provided by buildDependencyGraph
|
|
239
|
+
// But double-check by comparing relative paths
|
|
240
|
+
const entryRelative = relative(sourceRoot, absoluteEntryPoint).replace(/\\/g, "/");
|
|
241
|
+
const foundEntryModule = irResult.value.find((m) => m.filePath === entryRelative) ??
|
|
242
|
+
entryModule;
|
|
243
|
+
if (foundEntryModule) {
|
|
244
|
+
const entryInfo = extractEntryInfo(foundEntryModule, config.runtime);
|
|
245
|
+
if (entryInfo) {
|
|
246
|
+
const programCs = generateProgramCs(entryInfo);
|
|
247
|
+
const programPath = join(outputDir, "Program.cs");
|
|
248
|
+
writeFileSync(programPath, programCs, "utf-8");
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// Generate or copy existing .csproj
|
|
253
|
+
const csprojPath = join(outputDir, "tsonic.csproj");
|
|
254
|
+
const projectCsproj = findProjectCsproj();
|
|
255
|
+
// Collect CLR assemblies used by the modules (e.g., "nodejs")
|
|
256
|
+
const usedAssemblies = collectClrAssemblies(irResult.value);
|
|
257
|
+
// Debug: log collected assemblies
|
|
258
|
+
if (config.verbose && usedAssemblies.size > 0) {
|
|
259
|
+
console.log(` CLR assemblies used: ${[...usedAssemblies].join(", ")}`);
|
|
260
|
+
}
|
|
261
|
+
if (projectCsproj) {
|
|
262
|
+
// Copy existing .csproj from project root (preserves user edits)
|
|
263
|
+
copyFileSync(projectCsproj, csprojPath);
|
|
264
|
+
}
|
|
265
|
+
else if (!existsSync(csprojPath)) {
|
|
266
|
+
// Find Tsonic runtime - try multiple approaches:
|
|
267
|
+
// 1. ProjectReference to .csproj (development/monorepo)
|
|
268
|
+
// 2. Assembly references to DLLs (npm installed package)
|
|
269
|
+
let runtimePath;
|
|
270
|
+
let assemblyReferences = [];
|
|
271
|
+
// 1. Try monorepo structure (development) - ProjectReference
|
|
272
|
+
const monorepoPath = resolve(join(import.meta.dirname, "../../../runtime/src/Tsonic.Runtime.csproj"));
|
|
273
|
+
if (existsSync(monorepoPath)) {
|
|
274
|
+
runtimePath = monorepoPath;
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
// 2. Try installed package structure - ProjectReference
|
|
278
|
+
const installedPath = resolve(join(import.meta.dirname, "../../../../@tsonic/runtime/src/Tsonic.Runtime.csproj"));
|
|
279
|
+
if (existsSync(installedPath)) {
|
|
280
|
+
runtimePath = installedPath;
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
// 3. Try to find runtime DLLs from npm package
|
|
284
|
+
const runtimeRefs = findRuntimeDlls(config.runtime ?? "js", outputDir, usedAssemblies);
|
|
285
|
+
// 4. Add project libraries (from dotnet.libraries in tsonic.json)
|
|
286
|
+
const projectRefs = collectProjectLibraries(projectRoot, outputDir, config.libraries);
|
|
287
|
+
assemblyReferences = [...runtimeRefs, ...projectRefs];
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
// Build output configuration
|
|
291
|
+
const outputType = config.outputConfig.type ?? "executable";
|
|
292
|
+
let outputConfig;
|
|
293
|
+
if (outputType === "library") {
|
|
294
|
+
outputConfig = {
|
|
295
|
+
type: "library",
|
|
296
|
+
targetFrameworks: config.outputConfig.targetFrameworks ?? [
|
|
297
|
+
config.dotnetVersion,
|
|
298
|
+
],
|
|
299
|
+
generateDocumentation: config.outputConfig.generateDocumentation ?? true,
|
|
300
|
+
includeSymbols: config.outputConfig.includeSymbols ?? true,
|
|
301
|
+
packable: config.outputConfig.packable ?? false,
|
|
302
|
+
packageMetadata: config.outputConfig.package,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
outputConfig = {
|
|
307
|
+
type: "executable",
|
|
308
|
+
nativeAot: config.outputConfig.nativeAot ?? true,
|
|
309
|
+
singleFile: config.outputConfig.singleFile ?? true,
|
|
310
|
+
trimmed: config.outputConfig.trimmed ?? true,
|
|
311
|
+
stripSymbols: config.stripSymbols,
|
|
312
|
+
optimization: config.optimize === "size" ? "Size" : "Speed",
|
|
313
|
+
invariantGlobalization: config.invariantGlobalization,
|
|
314
|
+
selfContained: config.outputConfig.selfContained ?? true,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
const buildConfig = {
|
|
318
|
+
rootNamespace,
|
|
319
|
+
outputName: config.outputName,
|
|
320
|
+
dotnetVersion: config.dotnetVersion,
|
|
321
|
+
runtimePath,
|
|
322
|
+
assemblyReferences,
|
|
323
|
+
packages,
|
|
324
|
+
outputConfig,
|
|
325
|
+
};
|
|
326
|
+
const csproj = generateCsproj(buildConfig);
|
|
327
|
+
writeFileSync(csprojPath, csproj, "utf-8");
|
|
328
|
+
}
|
|
329
|
+
return {
|
|
330
|
+
ok: true,
|
|
331
|
+
value: {
|
|
332
|
+
filesGenerated: csFiles.size,
|
|
333
|
+
outputDir,
|
|
334
|
+
},
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
return {
|
|
339
|
+
ok: false,
|
|
340
|
+
error: `Emit failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -6,7 +6,22 @@ type InitOptions = {
|
|
|
6
6
|
readonly skipTypes?: boolean;
|
|
7
7
|
readonly typesVersion?: string;
|
|
8
8
|
readonly runtime?: "js" | "dotnet";
|
|
9
|
+
readonly nodejs?: boolean;
|
|
9
10
|
};
|
|
11
|
+
type TypePackageInfo = {
|
|
12
|
+
readonly packages: readonly {
|
|
13
|
+
name: string;
|
|
14
|
+
version: string;
|
|
15
|
+
}[];
|
|
16
|
+
readonly typeRoots: readonly string[];
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Get type package info based on runtime mode
|
|
20
|
+
*
|
|
21
|
+
* typeRoots: Only ambient globals packages (provide global types without imports)
|
|
22
|
+
* packages: All type packages to install (includes explicit import packages)
|
|
23
|
+
*/
|
|
24
|
+
export declare const getTypePackageInfo: (runtime: "js" | "dotnet", nodejs?: boolean) => TypePackageInfo;
|
|
10
25
|
/**
|
|
11
26
|
* Initialize a new Tsonic project
|
|
12
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,KAAK,WAAW,GAAG;IACjB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AA8DF,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,CAAC;AAKF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,IAAI,GAAG,QAAQ,EACxB,SAAQ,OAAe,KACtB,eAoCF,CAAC;AA+KF;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,MAAM,EACX,UAAS,WAAgB,KACxB,MAAM,CAAC,IAAI,EAAE,MAAM,CA2GrB,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* tsonic project init command
|
|
3
3
|
*/
|
|
4
|
-
import { writeFileSync, existsSync, readFileSync, mkdirSync } from "node:fs";
|
|
5
|
-
import { join } from "node:path";
|
|
4
|
+
import { writeFileSync, existsSync, readFileSync, mkdirSync, copyFileSync, } from "node:fs";
|
|
5
|
+
import { join, dirname } from "node:path";
|
|
6
6
|
import { spawnSync } from "node:child_process";
|
|
7
7
|
const DEFAULT_GITIGNORE = `# .NET build artifacts
|
|
8
8
|
generated/bin/
|
|
@@ -30,9 +30,9 @@ const SAMPLE_MAIN_TS_DOTNET = `import { Console } from "@tsonic/dotnet/System";
|
|
|
30
30
|
import { File } from "@tsonic/dotnet/System.IO";
|
|
31
31
|
|
|
32
32
|
export function main(): void {
|
|
33
|
-
Console.
|
|
34
|
-
const content = File.
|
|
35
|
-
Console.
|
|
33
|
+
Console.writeLine("Reading README.md...");
|
|
34
|
+
const content = File.readAllText("./README.md");
|
|
35
|
+
Console.writeLine(content);
|
|
36
36
|
}
|
|
37
37
|
`;
|
|
38
38
|
const SAMPLE_README = `# My Tsonic Project
|
|
@@ -60,26 +60,30 @@ npm run dev
|
|
|
60
60
|
- \`tsonic.json\` - Project configuration
|
|
61
61
|
- \`generated/\` - Generated C# code (gitignored)
|
|
62
62
|
`;
|
|
63
|
-
// CLI package version - installed as devDependency for npm run build/dev
|
|
64
|
-
const CLI_PACKAGE = { name: "@tsonic/
|
|
63
|
+
// Unified CLI package version - installed as devDependency for npm run build/dev
|
|
64
|
+
const CLI_PACKAGE = { name: "@tsonic/tsonic", version: "latest" };
|
|
65
65
|
/**
|
|
66
66
|
* Get type package info based on runtime mode
|
|
67
67
|
*
|
|
68
68
|
* typeRoots: Only ambient globals packages (provide global types without imports)
|
|
69
69
|
* packages: All type packages to install (includes explicit import packages)
|
|
70
70
|
*/
|
|
71
|
-
const getTypePackageInfo = (runtime) => {
|
|
71
|
+
export const getTypePackageInfo = (runtime, nodejs = false) => {
|
|
72
72
|
if (runtime === "js") {
|
|
73
73
|
// JS mode:
|
|
74
74
|
// - @tsonic/cli: the compiler CLI (provides `tsonic` command)
|
|
75
75
|
// - @tsonic/js-globals: ambient globals (Array, console, etc.) - needs typeRoots
|
|
76
76
|
// - @tsonic/types: explicit imports (int, float, etc.) - just npm dep
|
|
77
|
+
const packages = [
|
|
78
|
+
CLI_PACKAGE,
|
|
79
|
+
{ name: "@tsonic/js-globals", version: "latest" },
|
|
80
|
+
{ name: "@tsonic/types", version: "latest" },
|
|
81
|
+
];
|
|
82
|
+
if (nodejs) {
|
|
83
|
+
packages.push({ name: "@tsonic/nodejs", version: "latest" });
|
|
84
|
+
}
|
|
77
85
|
return {
|
|
78
|
-
packages
|
|
79
|
-
CLI_PACKAGE,
|
|
80
|
-
{ name: "@tsonic/js-globals", version: "0.1.1" },
|
|
81
|
-
{ name: "@tsonic/types", version: "0.2.0" },
|
|
82
|
-
],
|
|
86
|
+
packages,
|
|
83
87
|
typeRoots: ["node_modules/@tsonic/js-globals"],
|
|
84
88
|
};
|
|
85
89
|
}
|
|
@@ -88,19 +92,65 @@ const getTypePackageInfo = (runtime) => {
|
|
|
88
92
|
// - @tsonic/dotnet-globals: ambient globals - needs typeRoots
|
|
89
93
|
// - @tsonic/dotnet: explicit imports (System.*, etc.) - just npm dep
|
|
90
94
|
// - @tsonic/types: transitive dep of @tsonic/dotnet
|
|
95
|
+
const packages = [
|
|
96
|
+
CLI_PACKAGE,
|
|
97
|
+
{ name: "@tsonic/dotnet-globals", version: "latest" },
|
|
98
|
+
{ name: "@tsonic/dotnet", version: "latest" },
|
|
99
|
+
];
|
|
100
|
+
if (nodejs) {
|
|
101
|
+
packages.push({ name: "@tsonic/nodejs", version: "latest" });
|
|
102
|
+
}
|
|
91
103
|
return {
|
|
92
|
-
packages
|
|
93
|
-
CLI_PACKAGE,
|
|
94
|
-
{ name: "@tsonic/dotnet-globals", version: "0.1.2" },
|
|
95
|
-
{ name: "@tsonic/dotnet", version: "0.5.1" },
|
|
96
|
-
],
|
|
104
|
+
packages,
|
|
97
105
|
typeRoots: ["node_modules/@tsonic/dotnet-globals"],
|
|
98
106
|
};
|
|
99
107
|
};
|
|
108
|
+
/**
|
|
109
|
+
* Find nodejs.dll from the CLI package runtime directory
|
|
110
|
+
*/
|
|
111
|
+
const findNodejsDll = () => {
|
|
112
|
+
// Try to find runtime directory bundled with CLI package
|
|
113
|
+
// import.meta.dirname is the dist/commands directory when running from built CLI
|
|
114
|
+
// Or src/commands when running from source
|
|
115
|
+
const possiblePaths = [
|
|
116
|
+
// Development: From dist/commands -> ../../runtime
|
|
117
|
+
join(dirname(import.meta.url.replace("file://", "")), "../../runtime"),
|
|
118
|
+
// npm installed: From dist/commands -> ../runtime (inside @tsonic/cli package)
|
|
119
|
+
join(dirname(import.meta.url.replace("file://", "")), "../runtime"),
|
|
120
|
+
// From project's node_modules (when CLI is a dev dependency)
|
|
121
|
+
join(process.cwd(), "node_modules/@tsonic/cli/runtime"),
|
|
122
|
+
// Monorepo structure
|
|
123
|
+
join(process.cwd(), "packages/cli/runtime"),
|
|
124
|
+
];
|
|
125
|
+
for (const p of possiblePaths) {
|
|
126
|
+
const dllPath = join(p, "nodejs.dll");
|
|
127
|
+
if (existsSync(dllPath)) {
|
|
128
|
+
return dllPath;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return null;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Copy nodejs.dll to project's lib/ directory
|
|
135
|
+
*/
|
|
136
|
+
const copyNodejsDll = (cwd) => {
|
|
137
|
+
const sourceDll = findNodejsDll();
|
|
138
|
+
if (!sourceDll) {
|
|
139
|
+
return {
|
|
140
|
+
ok: false,
|
|
141
|
+
error: "nodejs.dll not found. Make sure @tsonic/tsonic is installed.",
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
const libDir = join(cwd, "lib");
|
|
145
|
+
const destDll = join(libDir, "nodejs.dll");
|
|
146
|
+
mkdirSync(libDir, { recursive: true });
|
|
147
|
+
copyFileSync(sourceDll, destDll);
|
|
148
|
+
return { ok: true, value: "lib/nodejs.dll" };
|
|
149
|
+
};
|
|
100
150
|
/**
|
|
101
151
|
* Generate tsonic.json config
|
|
102
152
|
*/
|
|
103
|
-
const generateConfig = (includeTypeRoots, runtime) => {
|
|
153
|
+
const generateConfig = (includeTypeRoots, runtime, nodejsLibPath) => {
|
|
104
154
|
const config = {
|
|
105
155
|
$schema: "https://tsonic.dev/schema/v1.json",
|
|
106
156
|
rootNamespace: "MyApp",
|
|
@@ -116,11 +166,16 @@ const generateConfig = (includeTypeRoots, runtime) => {
|
|
|
116
166
|
invariantGlobalization: true,
|
|
117
167
|
},
|
|
118
168
|
};
|
|
119
|
-
if (includeTypeRoots) {
|
|
169
|
+
if (includeTypeRoots || nodejsLibPath) {
|
|
120
170
|
const typeInfo = getTypePackageInfo(runtime);
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
171
|
+
const dotnet = {};
|
|
172
|
+
if (includeTypeRoots) {
|
|
173
|
+
dotnet.typeRoots = typeInfo.typeRoots;
|
|
174
|
+
}
|
|
175
|
+
if (nodejsLibPath) {
|
|
176
|
+
dotnet.libraries = [nodejsLibPath];
|
|
177
|
+
}
|
|
178
|
+
config.dotnet = dotnet;
|
|
124
179
|
}
|
|
125
180
|
return JSON.stringify(config, null, 2) + "\n";
|
|
126
181
|
};
|
|
@@ -211,7 +266,8 @@ export const initProject = (cwd, options = {}) => {
|
|
|
211
266
|
console.log(packageJsonExists ? "✓ Updated package.json" : "✓ Created package.json");
|
|
212
267
|
// Install type declarations based on runtime mode
|
|
213
268
|
const shouldInstallTypes = !options.skipTypes;
|
|
214
|
-
const
|
|
269
|
+
const nodejs = options.nodejs ?? false;
|
|
270
|
+
const typeInfo = getTypePackageInfo(runtime, nodejs);
|
|
215
271
|
if (shouldInstallTypes) {
|
|
216
272
|
for (const pkg of typeInfo.packages) {
|
|
217
273
|
const version = options.typesVersion ?? pkg.version;
|
|
@@ -223,8 +279,21 @@ export const initProject = (cwd, options = {}) => {
|
|
|
223
279
|
console.log(`✓ Installed ${pkg.name}`);
|
|
224
280
|
}
|
|
225
281
|
}
|
|
282
|
+
// Copy nodejs.dll if nodejs option is enabled
|
|
283
|
+
let nodejsLibPath;
|
|
284
|
+
if (nodejs) {
|
|
285
|
+
const copyResult = copyNodejsDll(cwd);
|
|
286
|
+
if (!copyResult.ok) {
|
|
287
|
+
// Log warning but continue - user can add manually later
|
|
288
|
+
console.log(`⚠ Warning: ${copyResult.error}`);
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
nodejsLibPath = copyResult.value;
|
|
292
|
+
console.log("✓ Copied nodejs.dll to lib/");
|
|
293
|
+
}
|
|
294
|
+
}
|
|
226
295
|
// Create tsonic.json
|
|
227
|
-
const config = generateConfig(shouldInstallTypes, runtime);
|
|
296
|
+
const config = generateConfig(shouldInstallTypes, runtime, nodejsLibPath);
|
|
228
297
|
writeFileSync(tsonicJsonPath, config, "utf-8");
|
|
229
298
|
console.log("✓ Created tsonic.json");
|
|
230
299
|
// Create or append to .gitignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.test.d.ts","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|