tsonic 0.0.1 → 0.0.10

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 (79) hide show
  1. package/README.md +21 -0
  2. package/bin.js +17 -0
  3. package/package.json +16 -29
  4. package/dist/cli/constants.d.ts +0 -5
  5. package/dist/cli/constants.d.ts.map +0 -1
  6. package/dist/cli/constants.js +0 -5
  7. package/dist/cli/constants.js.map +0 -1
  8. package/dist/cli/dispatcher.d.ts +0 -8
  9. package/dist/cli/dispatcher.d.ts.map +0 -1
  10. package/dist/cli/dispatcher.js +0 -98
  11. package/dist/cli/dispatcher.js.map +0 -1
  12. package/dist/cli/help.d.ts +0 -8
  13. package/dist/cli/help.d.ts.map +0 -1
  14. package/dist/cli/help.js +0 -48
  15. package/dist/cli/help.js.map +0 -1
  16. package/dist/cli/index.d.ts +0 -8
  17. package/dist/cli/index.d.ts.map +0 -1
  18. package/dist/cli/index.js +0 -8
  19. package/dist/cli/index.js.map +0 -1
  20. package/dist/cli/parser.d.ts +0 -14
  21. package/dist/cli/parser.d.ts.map +0 -1
  22. package/dist/cli/parser.js +0 -94
  23. package/dist/cli/parser.js.map +0 -1
  24. package/dist/cli/parser.test.d.ts +0 -5
  25. package/dist/cli/parser.test.d.ts.map +0 -1
  26. package/dist/cli/parser.test.js +0 -221
  27. package/dist/cli/parser.test.js.map +0 -1
  28. package/dist/cli.d.ts +0 -6
  29. package/dist/cli.d.ts.map +0 -1
  30. package/dist/cli.js +0 -6
  31. package/dist/cli.js.map +0 -1
  32. package/dist/commands/build.d.ts +0 -11
  33. package/dist/commands/build.d.ts.map +0 -1
  34. package/dist/commands/build.js +0 -99
  35. package/dist/commands/build.js.map +0 -1
  36. package/dist/commands/emit.d.ts +0 -12
  37. package/dist/commands/emit.d.ts.map +0 -1
  38. package/dist/commands/emit.js +0 -170
  39. package/dist/commands/emit.js.map +0 -1
  40. package/dist/commands/init.d.ts +0 -14
  41. package/dist/commands/init.d.ts.map +0 -1
  42. package/dist/commands/init.js +0 -217
  43. package/dist/commands/init.js.map +0 -1
  44. package/dist/commands/run.d.ts +0 -11
  45. package/dist/commands/run.d.ts.map +0 -1
  46. package/dist/commands/run.js +0 -40
  47. package/dist/commands/run.js.map +0 -1
  48. package/dist/config.d.ts +0 -17
  49. package/dist/config.d.ts.map +0 -1
  50. package/dist/config.js +0 -84
  51. package/dist/config.js.map +0 -1
  52. package/dist/config.test.d.ts +0 -5
  53. package/dist/config.test.d.ts.map +0 -1
  54. package/dist/config.test.js +0 -274
  55. package/dist/config.test.js.map +0 -1
  56. package/dist/index.d.ts +0 -8
  57. package/dist/index.d.ts.map +0 -1
  58. package/dist/index.js +0 -20
  59. package/dist/index.js.map +0 -1
  60. package/dist/types.d.ts +0 -74
  61. package/dist/types.d.ts.map +0 -1
  62. package/dist/types.js +0 -5
  63. package/dist/types.js.map +0 -1
  64. package/src/cli/constants.ts +0 -5
  65. package/src/cli/dispatcher.ts +0 -115
  66. package/src/cli/help.ts +0 -49
  67. package/src/cli/index.ts +0 -8
  68. package/src/cli/parser.test.ts +0 -259
  69. package/src/cli/parser.ts +0 -109
  70. package/src/cli.ts +0 -6
  71. package/src/commands/build.ts +0 -125
  72. package/src/commands/emit.ts +0 -222
  73. package/src/commands/init.ts +0 -272
  74. package/src/commands/run.ts +0 -51
  75. package/src/config.test.ts +0 -328
  76. package/src/config.ts +0 -105
  77. package/src/index.ts +0 -23
  78. package/src/types.ts +0 -74
  79. package/tsconfig.json +0 -18
@@ -1,221 +0,0 @@
1
- /**
2
- * Tests for CLI argument parser
3
- */
4
- import { describe, it } from "mocha";
5
- import { expect } from "chai";
6
- import { parseArgs } from "./parser.js";
7
- describe("CLI Parser", () => {
8
- describe("parseArgs", () => {
9
- describe("Commands", () => {
10
- it("should parse build command", () => {
11
- const result = parseArgs(["build"]);
12
- expect(result.command).to.equal("build");
13
- });
14
- it("should parse run command", () => {
15
- const result = parseArgs(["run"]);
16
- expect(result.command).to.equal("run");
17
- });
18
- it("should parse emit command", () => {
19
- const result = parseArgs(["emit"]);
20
- expect(result.command).to.equal("emit");
21
- });
22
- it("should parse project:init as two-word command", () => {
23
- const result = parseArgs(["project", "init"]);
24
- expect(result.command).to.equal("project:init");
25
- });
26
- it("should parse help command from --help", () => {
27
- const result = parseArgs(["--help"]);
28
- expect(result.command).to.equal("help");
29
- });
30
- it("should parse help command from -h", () => {
31
- const result = parseArgs(["-h"]);
32
- expect(result.command).to.equal("help");
33
- });
34
- it("should parse version command from --version", () => {
35
- const result = parseArgs(["--version"]);
36
- expect(result.command).to.equal("version");
37
- });
38
- it("should parse version command from -v", () => {
39
- const result = parseArgs(["-v"]);
40
- expect(result.command).to.equal("version");
41
- });
42
- });
43
- describe("Entry File", () => {
44
- it("should parse entry file after command", () => {
45
- const result = parseArgs(["run", "index.ts"]);
46
- expect(result.command).to.equal("run");
47
- expect(result.entryFile).to.equal("index.ts");
48
- });
49
- it("should parse entry file with path", () => {
50
- const result = parseArgs(["build", "src/main.ts"]);
51
- expect(result.command).to.equal("build");
52
- expect(result.entryFile).to.equal("src/main.ts");
53
- });
54
- it("should handle no entry file", () => {
55
- const result = parseArgs(["build"]);
56
- expect(result.entryFile).to.equal(undefined);
57
- });
58
- });
59
- describe("Options", () => {
60
- it("should parse --verbose option", () => {
61
- const result = parseArgs(["build", "--verbose"]);
62
- expect(result.options.verbose).to.equal(true);
63
- });
64
- it("should parse -V short option for verbose", () => {
65
- const result = parseArgs(["build", "-V"]);
66
- expect(result.options.verbose).to.equal(true);
67
- });
68
- it("should parse --quiet option", () => {
69
- const result = parseArgs(["build", "--quiet"]);
70
- expect(result.options.quiet).to.equal(true);
71
- });
72
- it("should parse -q short option for quiet", () => {
73
- const result = parseArgs(["build", "-q"]);
74
- expect(result.options.quiet).to.equal(true);
75
- });
76
- it("should parse --config option with value", () => {
77
- const result = parseArgs(["build", "--config", "tsonic.json"]);
78
- expect(result.options.config).to.equal("tsonic.json");
79
- });
80
- it("should parse -c short option for config", () => {
81
- const result = parseArgs(["build", "-c", "custom.json"]);
82
- expect(result.options.config).to.equal("custom.json");
83
- });
84
- it("should parse --src option with value", () => {
85
- const result = parseArgs(["build", "--src", "source"]);
86
- expect(result.options.src).to.equal("source");
87
- });
88
- it("should parse -s short option for src", () => {
89
- const result = parseArgs(["build", "-s", "app"]);
90
- expect(result.options.src).to.equal("app");
91
- });
92
- it("should parse --out option with value", () => {
93
- const result = parseArgs(["build", "--out", "output"]);
94
- expect(result.options.out).to.equal("output");
95
- });
96
- it("should parse -o short option for out", () => {
97
- const result = parseArgs(["build", "-o", "dist"]);
98
- expect(result.options.out).to.equal("dist");
99
- });
100
- it("should parse --namespace option with value", () => {
101
- const result = parseArgs(["build", "--namespace", "MyApp"]);
102
- expect(result.options.namespace).to.equal("MyApp");
103
- });
104
- it("should parse -n short option for namespace", () => {
105
- const result = parseArgs(["build", "-n", "App"]);
106
- expect(result.options.namespace).to.equal("App");
107
- });
108
- it("should parse --rid option with value", () => {
109
- const result = parseArgs(["build", "--rid", "linux-x64"]);
110
- expect(result.options.rid).to.equal("linux-x64");
111
- });
112
- it("should parse -r short option for rid", () => {
113
- const result = parseArgs(["build", "-r", "win-x64"]);
114
- expect(result.options.rid).to.equal("win-x64");
115
- });
116
- it("should parse --optimize option with speed", () => {
117
- const result = parseArgs(["build", "--optimize", "speed"]);
118
- expect(result.options.optimize).to.equal("speed");
119
- });
120
- it("should parse --optimize option with size", () => {
121
- const result = parseArgs(["build", "--optimize", "size"]);
122
- expect(result.options.optimize).to.equal("size");
123
- });
124
- it("should parse -O short option for optimize", () => {
125
- const result = parseArgs(["build", "-O", "speed"]);
126
- expect(result.options.optimize).to.equal("speed");
127
- });
128
- it("should parse --keep-temp option", () => {
129
- const result = parseArgs(["build", "--keep-temp"]);
130
- expect(result.options.keepTemp).to.equal(true);
131
- });
132
- it("should parse -k short option for keep-temp", () => {
133
- const result = parseArgs(["build", "-k"]);
134
- expect(result.options.keepTemp).to.equal(true);
135
- });
136
- it("should parse --no-strip option", () => {
137
- const result = parseArgs(["build", "--no-strip"]);
138
- expect(result.options.noStrip).to.equal(true);
139
- });
140
- });
141
- describe("Program Arguments", () => {
142
- it("should parse program arguments after --", () => {
143
- const result = parseArgs(["run", "index.ts", "--", "arg1", "arg2"]);
144
- expect(result.programArgs).to.deep.equal(["arg1", "arg2"]);
145
- });
146
- it("should handle options in program arguments", () => {
147
- const result = parseArgs([
148
- "run",
149
- "index.ts",
150
- "--",
151
- "--verbose",
152
- "-o",
153
- "out",
154
- ]);
155
- expect(result.programArgs).to.deep.equal(["--verbose", "-o", "out"]);
156
- });
157
- it("should handle empty program arguments", () => {
158
- const result = parseArgs(["run", "index.ts"]);
159
- expect(result.programArgs).to.deep.equal([]);
160
- });
161
- });
162
- describe("Complex Scenarios", () => {
163
- it("should parse command with entry file and multiple options", () => {
164
- const result = parseArgs([
165
- "build",
166
- "src/main.ts",
167
- "--namespace",
168
- "MyApp",
169
- "--out",
170
- "dist",
171
- "--verbose",
172
- ]);
173
- expect(result.command).to.equal("build");
174
- expect(result.entryFile).to.equal("src/main.ts");
175
- expect(result.options.namespace).to.equal("MyApp");
176
- expect(result.options.out).to.equal("dist");
177
- expect(result.options.verbose).to.equal(true);
178
- });
179
- it("should parse run command with entry, options, and program args", () => {
180
- const result = parseArgs([
181
- "run",
182
- "index.ts",
183
- "--verbose",
184
- "--",
185
- "programArg1",
186
- "programArg2",
187
- ]);
188
- expect(result.command).to.equal("run");
189
- expect(result.entryFile).to.equal("index.ts");
190
- expect(result.options.verbose).to.equal(true);
191
- expect(result.programArgs).to.deep.equal([
192
- "programArg1",
193
- "programArg2",
194
- ]);
195
- });
196
- it("should handle empty args array", () => {
197
- const result = parseArgs([]);
198
- expect(result.command).to.equal("");
199
- expect(result.entryFile).to.equal(undefined);
200
- expect(result.options).to.deep.equal({});
201
- expect(result.programArgs).to.deep.equal([]);
202
- });
203
- it("should handle mixed short and long options", () => {
204
- const result = parseArgs([
205
- "build",
206
- "-n",
207
- "App",
208
- "--out",
209
- "dist",
210
- "-V",
211
- "--keep-temp",
212
- ]);
213
- expect(result.options.namespace).to.equal("App");
214
- expect(result.options.out).to.equal("dist");
215
- expect(result.options.verbose).to.equal(true);
216
- expect(result.options.keepTemp).to.equal(true);
217
- });
218
- });
219
- });
220
- });
221
- //# sourceMappingURL=parser.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../src/cli/parser.test.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * CLI argument parsing and command dispatch
3
- * Main dispatcher - re-exports from cli/ subdirectory
4
- */
5
- export { VERSION, showHelp, parseArgs, runCli } from "./cli/index.js";
6
- //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/cli.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * CLI argument parsing and command dispatch
3
- * Main dispatcher - re-exports from cli/ subdirectory
4
- */
5
- export { VERSION, showHelp, parseArgs, runCli } from "./cli/index.js";
6
- //# sourceMappingURL=cli.js.map
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * tsonic build command - Build executable
3
- */
4
- import type { ResolvedConfig, Result } from "../types.js";
5
- /**
6
- * Build native executable
7
- */
8
- export declare const buildCommand: (config: ResolvedConfig) => Result<{
9
- outputPath: string;
10
- }, string>;
11
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1D;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,QAAQ,cAAc,KACrB,MAAM,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,CA6GvC,CAAC"}
@@ -1,99 +0,0 @@
1
- /**
2
- * tsonic build command - Build executable
3
- */
4
- import { spawnSync } from "node:child_process";
5
- import { join, relative } from "node:path";
6
- import { copyFileSync, chmodSync, existsSync } from "node:fs";
7
- import { emitCommand } from "./emit.js";
8
- /**
9
- * Build native executable
10
- */
11
- export const buildCommand = (config) => {
12
- const { outputDirectory, outputName, rid, quiet, verbose } = config;
13
- // Step 1: Emit C# code
14
- if (!quiet) {
15
- console.log("Step 1/3: Generating C# code...");
16
- }
17
- const emitResult = emitCommand(config);
18
- if (!emitResult.ok) {
19
- return emitResult;
20
- }
21
- const generatedDir = emitResult.value.outputDir;
22
- const csprojPath = join(generatedDir, "tsonic.csproj");
23
- if (!existsSync(csprojPath)) {
24
- return {
25
- ok: false,
26
- error: `No tsonic.csproj found in ${outputDirectory}/. This should have been created by emit.`,
27
- };
28
- }
29
- // Step 2: Run dotnet publish
30
- if (!quiet) {
31
- console.log("Step 2/3: Compiling with dotnet publish...");
32
- }
33
- const publishArgs = [
34
- "publish",
35
- "tsonic.csproj",
36
- "-c",
37
- "Release",
38
- "-r",
39
- rid,
40
- "--nologo",
41
- ];
42
- if (quiet) {
43
- publishArgs.push("--verbosity", "quiet");
44
- }
45
- else if (verbose) {
46
- publishArgs.push("--verbosity", "detailed");
47
- }
48
- else {
49
- publishArgs.push("--verbosity", "minimal");
50
- }
51
- const publishResult = spawnSync("dotnet", publishArgs, {
52
- cwd: generatedDir,
53
- stdio: verbose ? "inherit" : "pipe",
54
- encoding: "utf-8",
55
- });
56
- if (publishResult.status !== 0) {
57
- const errorMsg = publishResult.stderr || publishResult.stdout || "Unknown error";
58
- return {
59
- ok: false,
60
- error: `dotnet publish failed:\n${errorMsg}`,
61
- };
62
- }
63
- // Step 3: Copy output binary
64
- if (!quiet) {
65
- console.log("Step 3/3: Copying output binary...");
66
- }
67
- const binaryName = process.platform === "win32" ? `${outputName}.exe` : outputName;
68
- const publishDir = join(generatedDir, "bin", "Release", config.dotnetVersion, rid, "publish");
69
- const sourceBinary = join(publishDir, binaryName);
70
- const targetBinary = join(process.cwd(), binaryName);
71
- if (!existsSync(sourceBinary)) {
72
- return {
73
- ok: false,
74
- error: `Built binary not found at ${sourceBinary}`,
75
- };
76
- }
77
- try {
78
- copyFileSync(sourceBinary, targetBinary);
79
- // Make executable on Unix
80
- if (process.platform !== "win32") {
81
- chmodSync(targetBinary, 0o755);
82
- }
83
- if (!quiet) {
84
- const relativePath = relative(process.cwd(), targetBinary);
85
- console.log(`\n✓ Build complete: ${relativePath}`);
86
- }
87
- return {
88
- ok: true,
89
- value: { outputPath: targetBinary },
90
- };
91
- }
92
- catch (error) {
93
- return {
94
- ok: false,
95
- error: `Failed to copy binary: ${error instanceof Error ? error.message : String(error)}`,
96
- };
97
- }
98
- };
99
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * tsonic emit command - Generate C# code only
3
- */
4
- import type { ResolvedConfig, Result } from "../types.js";
5
- /**
6
- * Emit C# code from TypeScript
7
- */
8
- export declare const emitCommand: (config: ResolvedConfig) => Result<{
9
- filesGenerated: number;
10
- outputDir: string;
11
- }, string>;
12
- //# sourceMappingURL=emit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../src/commands/emit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAwC1D;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,cAAc,KACrB,MAAM,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,CA8J9D,CAAC"}
@@ -1,170 +0,0 @@
1
- /**
2
- * tsonic emit command - Generate C# code only
3
- */
4
- import { mkdirSync, writeFileSync, existsSync } from "node:fs";
5
- import { join, dirname, relative, resolve } from "node:path";
6
- import { compile, buildIr, } from "@tsonic/frontend";
7
- import { emitCSharpFiles } from "@tsonic/emitter";
8
- import { generateCsproj, generateProgramCs, } from "@tsonic/backend";
9
- /**
10
- * Extract entry point information from IR module
11
- */
12
- const extractEntryInfo = (entryModule) => {
13
- // Look for exported 'main' function
14
- for (const exp of entryModule.exports) {
15
- if (exp.kind === "declaration") {
16
- const decl = exp.declaration;
17
- if (decl.kind === "functionDeclaration" && decl.name === "main") {
18
- return {
19
- namespace: entryModule.namespace,
20
- className: entryModule.className,
21
- methodName: "main",
22
- isAsync: decl.isAsync,
23
- needsProgram: true,
24
- };
25
- }
26
- }
27
- else if (exp.kind === "named" && exp.name === "main") {
28
- // Named export of 'main'
29
- // Look in body for the function declaration
30
- for (const stmt of entryModule.body) {
31
- if (stmt.kind === "functionDeclaration" && stmt.name === "main") {
32
- return {
33
- namespace: entryModule.namespace,
34
- className: entryModule.className,
35
- methodName: "main",
36
- isAsync: stmt.isAsync,
37
- needsProgram: true,
38
- };
39
- }
40
- }
41
- }
42
- }
43
- // No main function found
44
- return null;
45
- };
46
- /**
47
- * Emit C# code from TypeScript
48
- */
49
- export const emitCommand = (config) => {
50
- const { entryPoint, outputDirectory, rootNamespace, sourceRoot, packages, typeRoots, } = config;
51
- if (!config.quiet) {
52
- console.log(`Emitting C# code for ${entryPoint}...`);
53
- }
54
- try {
55
- // Parse TypeScript
56
- const compileResult = compile([entryPoint], {
57
- sourceRoot,
58
- rootNamespace,
59
- typeRoots,
60
- });
61
- if (!compileResult.ok) {
62
- return {
63
- ok: false,
64
- error: `TypeScript compilation failed:\n${compileResult.error.diagnostics.map((d) => d.message).join("\n")}`,
65
- };
66
- }
67
- // Build IR
68
- const irResult = buildIr(compileResult.value.program, {
69
- sourceRoot,
70
- rootNamespace,
71
- });
72
- if (!irResult.ok) {
73
- return {
74
- ok: false,
75
- error: `IR build failed:\n${irResult.error.map((d) => d.message).join("\n")}`,
76
- };
77
- }
78
- // Emit C# code
79
- const absoluteEntryPoint = resolve(entryPoint);
80
- const csFiles = emitCSharpFiles(irResult.value, {
81
- rootNamespace,
82
- entryPointPath: absoluteEntryPoint,
83
- });
84
- // Create output directory
85
- const outputDir = join(process.cwd(), outputDirectory);
86
- mkdirSync(outputDir, { recursive: true });
87
- // Write C# files preserving directory structure
88
- for (const [modulePath, csCode] of csFiles) {
89
- // Convert module path to C# file path
90
- // src/models/User.ts → generated/src/models/User.cs
91
- const csPath = modulePath.replace(/\.ts$/, ".cs");
92
- const fullPath = join(outputDir, csPath);
93
- mkdirSync(dirname(fullPath), { recursive: true });
94
- writeFileSync(fullPath, csCode, "utf-8");
95
- if (config.verbose) {
96
- const relPath = relative(process.cwd(), fullPath);
97
- console.log(` Generated: ${relPath}`);
98
- }
99
- }
100
- // Generate Program.cs entry point wrapper
101
- const entryModule = irResult.value.find((m) => resolve(m.filePath) === absoluteEntryPoint);
102
- if (entryModule) {
103
- const entryInfo = extractEntryInfo(entryModule);
104
- if (entryInfo) {
105
- const programCs = generateProgramCs(entryInfo);
106
- const programPath = join(outputDir, "Program.cs");
107
- writeFileSync(programPath, programCs, "utf-8");
108
- if (config.verbose) {
109
- console.log(` Generated: ${relative(process.cwd(), programPath)}`);
110
- }
111
- }
112
- }
113
- // Generate or preserve tsonic.csproj
114
- const csprojPath = join(outputDir, "tsonic.csproj");
115
- if (!existsSync(csprojPath)) {
116
- // Find Tsonic.Runtime.csproj path - try multiple locations
117
- let runtimePath;
118
- // 1. Try monorepo structure (development)
119
- const monorepoPath = resolve(join(import.meta.dirname, "../../../runtime/src/Tsonic.Runtime.csproj"));
120
- if (existsSync(monorepoPath)) {
121
- runtimePath = monorepoPath;
122
- }
123
- else {
124
- // 2. Try installed package structure
125
- const installedPath = resolve(join(import.meta.dirname, "../../../../@tsonic/runtime/src/Tsonic.Runtime.csproj"));
126
- if (existsSync(installedPath)) {
127
- runtimePath = installedPath;
128
- }
129
- }
130
- // Warn if no runtime found
131
- if (!runtimePath && !config.quiet) {
132
- console.warn("Warning: Tsonic.Runtime.csproj not found. You may need to add a reference manually.");
133
- }
134
- const csproj = generateCsproj({
135
- rootNamespace,
136
- outputName: config.outputName,
137
- dotnetVersion: config.dotnetVersion,
138
- runtimePath,
139
- packages,
140
- invariantGlobalization: config.invariantGlobalization,
141
- stripSymbols: config.stripSymbols,
142
- optimizationPreference: config.optimize === "size" ? "Size" : "Speed",
143
- });
144
- writeFileSync(csprojPath, csproj, "utf-8");
145
- if (config.verbose) {
146
- console.log(` Generated: ${relative(process.cwd(), csprojPath)}`);
147
- }
148
- }
149
- else if (config.verbose) {
150
- console.log(` Preserved: ${relative(process.cwd(), csprojPath)} (user edits kept)`);
151
- }
152
- if (!config.quiet) {
153
- console.log(`\n✓ Generated ${csFiles.size} C# files in ${outputDirectory}/`);
154
- }
155
- return {
156
- ok: true,
157
- value: {
158
- filesGenerated: csFiles.size,
159
- outputDir,
160
- },
161
- };
162
- }
163
- catch (error) {
164
- return {
165
- ok: false,
166
- error: `Emit failed: ${error instanceof Error ? error.message : String(error)}`,
167
- };
168
- }
169
- };
170
- //# sourceMappingURL=emit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../src/commands/emit.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * tsonic project init command
3
- */
4
- import type { Result } from "../types.js";
5
- type InitOptions = {
6
- readonly skipTypes?: boolean;
7
- readonly typesVersion?: string;
8
- };
9
- /**
10
- * Initialize a new Tsonic project
11
- */
12
- export declare const initProject: (cwd: string, options?: InitOptions) => Result<void, string>;
13
- export {};
14
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,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;CAChC,CAAC;AAmKF;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,MAAM,EACX,UAAS,WAAgB,KACxB,MAAM,CAAC,IAAI,EAAE,MAAM,CA0FrB,CAAC"}