@tsonic/cli 0.0.26 → 0.0.28

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 (81) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cli/dispatcher.d.ts.map +1 -1
  3. package/dist/cli/dispatcher.js +90 -40
  4. package/dist/cli/dispatcher.js.map +1 -1
  5. package/dist/cli/help.d.ts.map +1 -1
  6. package/dist/cli/help.js +15 -16
  7. package/dist/cli/help.js.map +1 -1
  8. package/dist/cli/parser.js +5 -5
  9. package/dist/cli/parser.js.map +1 -1
  10. package/dist/cli/parser.test.js +3 -7
  11. package/dist/cli/parser.test.js.map +1 -1
  12. package/dist/commands/add-common.d.ts +2 -4
  13. package/dist/commands/add-common.d.ts.map +1 -1
  14. package/dist/commands/add-common.js +0 -6
  15. package/dist/commands/add-common.js.map +1 -1
  16. package/dist/commands/add-deps.test.js +13 -20
  17. package/dist/commands/add-deps.test.js.map +1 -1
  18. package/dist/commands/add-framework.d.ts +1 -1
  19. package/dist/commands/add-framework.d.ts.map +1 -1
  20. package/dist/commands/add-framework.js +14 -23
  21. package/dist/commands/add-framework.js.map +1 -1
  22. package/dist/commands/add-js.d.ts +2 -2
  23. package/dist/commands/add-js.d.ts.map +1 -1
  24. package/dist/commands/add-js.js +21 -19
  25. package/dist/commands/add-js.js.map +1 -1
  26. package/dist/commands/add-js.test.js +23 -11
  27. package/dist/commands/add-js.test.js.map +1 -1
  28. package/dist/commands/add-nodejs.d.ts +2 -2
  29. package/dist/commands/add-nodejs.d.ts.map +1 -1
  30. package/dist/commands/add-nodejs.js +22 -19
  31. package/dist/commands/add-nodejs.js.map +1 -1
  32. package/dist/commands/add-nodejs.test.js +31 -13
  33. package/dist/commands/add-nodejs.test.js.map +1 -1
  34. package/dist/commands/add-nuget.d.ts +1 -1
  35. package/dist/commands/add-nuget.d.ts.map +1 -1
  36. package/dist/commands/add-nuget.js +7 -7
  37. package/dist/commands/add-nuget.js.map +1 -1
  38. package/dist/commands/add-package.d.ts.map +1 -1
  39. package/dist/commands/add-package.js +44 -30
  40. package/dist/commands/add-package.js.map +1 -1
  41. package/dist/commands/build.d.ts.map +1 -1
  42. package/dist/commands/build.js +157 -11
  43. package/dist/commands/build.js.map +1 -1
  44. package/dist/commands/generate.d.ts.map +1 -1
  45. package/dist/commands/generate.js +47 -69
  46. package/dist/commands/generate.js.map +1 -1
  47. package/dist/commands/init.d.ts +10 -19
  48. package/dist/commands/init.d.ts.map +1 -1
  49. package/dist/commands/init.js +150 -260
  50. package/dist/commands/init.js.map +1 -1
  51. package/dist/commands/init.test.js +21 -51
  52. package/dist/commands/init.test.js.map +1 -1
  53. package/dist/commands/pack.js +1 -1
  54. package/dist/commands/pack.js.map +1 -1
  55. package/dist/commands/remove-nuget.d.ts +1 -1
  56. package/dist/commands/remove-nuget.d.ts.map +1 -1
  57. package/dist/commands/remove-nuget.js +3 -3
  58. package/dist/commands/remove-nuget.js.map +1 -1
  59. package/dist/commands/restore.d.ts +1 -1
  60. package/dist/commands/restore.d.ts.map +1 -1
  61. package/dist/commands/restore.js +42 -61
  62. package/dist/commands/restore.js.map +1 -1
  63. package/dist/commands/restore.test.js +42 -18
  64. package/dist/commands/restore.test.js.map +1 -1
  65. package/dist/commands/update-nuget.d.ts +1 -1
  66. package/dist/commands/update-nuget.d.ts.map +1 -1
  67. package/dist/commands/update-nuget.js +3 -3
  68. package/dist/commands/update-nuget.js.map +1 -1
  69. package/dist/config.d.ts +18 -9
  70. package/dist/config.d.ts.map +1 -1
  71. package/dist/config.js +212 -156
  72. package/dist/config.js.map +1 -1
  73. package/dist/config.test.js +156 -147
  74. package/dist/config.test.js.map +1 -1
  75. package/dist/dotnet/runtime-assets.d.ts +1 -0
  76. package/dist/dotnet/runtime-assets.d.ts.map +1 -1
  77. package/dist/dotnet/runtime-assets.js +30 -0
  78. package/dist/dotnet/runtime-assets.js.map +1 -1
  79. package/dist/types.d.ts +59 -36
  80. package/dist/types.d.ts.map +1 -1
  81. package/package.json +5 -5
package/dist/config.js CHANGED
@@ -1,162 +1,219 @@
1
1
  /**
2
- * Configuration loading and validation
2
+ * Workspace + project configuration loading and resolution.
3
+ *
4
+ * Airplane-grade rule: Tsonic always operates in a workspace.
5
+ * - Workspace root contains `tsonic.workspace.json`
6
+ * - Projects live under `packages/*` and contain `tsonic.json`
7
+ * - All external dependencies are workspace-scoped (no project-private deps)
3
8
  */
4
- import { readFileSync, existsSync } from "node:fs";
5
- import { join, resolve, dirname } from "node:path";
9
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
10
+ import { dirname, join, resolve } from "node:path";
6
11
  import { detectRid } from "@tsonic/backend";
12
+ export const WORKSPACE_CONFIG_FILE = "tsonic.workspace.json";
13
+ export const PROJECT_CONFIG_FILE = "tsonic.json";
7
14
  /**
8
- * Load tsonic.json from a directory
15
+ * Find `tsonic.workspace.json` by walking up the directory tree.
9
16
  */
10
- export const loadConfig = (configPath) => {
17
+ export const findWorkspaceConfig = (startDir) => {
18
+ let currentDir = resolve(startDir);
19
+ for (;;) {
20
+ const cfg = join(currentDir, WORKSPACE_CONFIG_FILE);
21
+ if (existsSync(cfg))
22
+ return cfg;
23
+ const parent = dirname(currentDir);
24
+ if (parent === currentDir)
25
+ return null;
26
+ currentDir = parent;
27
+ }
28
+ };
29
+ const parseJsonFile = (filePath) => {
30
+ try {
31
+ const raw = readFileSync(filePath, "utf-8");
32
+ return { ok: true, value: JSON.parse(raw) };
33
+ }
34
+ catch (error) {
35
+ return {
36
+ ok: false,
37
+ error: `Failed to parse ${filePath}: ${error instanceof Error ? error.message : String(error)}`,
38
+ };
39
+ }
40
+ };
41
+ export const loadWorkspaceConfig = (configPath) => {
11
42
  if (!existsSync(configPath)) {
43
+ return { ok: false, error: `Workspace config not found: ${configPath}` };
44
+ }
45
+ const parsed = parseJsonFile(configPath);
46
+ if (!parsed.ok)
47
+ return parsed;
48
+ const config = parsed.value;
49
+ if (!config.dotnetVersion || typeof config.dotnetVersion !== "string") {
12
50
  return {
13
51
  ok: false,
14
- error: `Config file not found: ${configPath}`,
52
+ error: `${WORKSPACE_CONFIG_FILE}: 'dotnetVersion' is required`,
15
53
  };
16
54
  }
17
- try {
18
- const content = readFileSync(configPath, "utf-8");
19
- const config = JSON.parse(content);
20
- // Validate required fields
21
- if (!config.rootNamespace) {
55
+ const dotnet = (config.dotnet ?? {});
56
+ const libraries = dotnet.libraries;
57
+ if (libraries !== undefined &&
58
+ (!Array.isArray(libraries) || libraries.some((p) => typeof p !== "string"))) {
59
+ return {
60
+ ok: false,
61
+ error: `${WORKSPACE_CONFIG_FILE}: 'dotnet.libraries' must be an array of strings`,
62
+ };
63
+ }
64
+ const frameworkReferences = dotnet.frameworkReferences;
65
+ if (frameworkReferences !== undefined &&
66
+ (!Array.isArray(frameworkReferences) ||
67
+ frameworkReferences.some((r) => {
68
+ if (typeof r === "string")
69
+ return false;
70
+ if (r === null || typeof r !== "object")
71
+ return true;
72
+ const id = r.id;
73
+ const types = r.types;
74
+ if (typeof id !== "string")
75
+ return true;
76
+ if (types !== undefined && typeof types !== "string")
77
+ return true;
78
+ return false;
79
+ }))) {
80
+ return {
81
+ ok: false,
82
+ error: `${WORKSPACE_CONFIG_FILE}: 'dotnet.frameworkReferences' must be an array of strings or { id: string, types?: string }`,
83
+ };
84
+ }
85
+ const packageReferences = dotnet.packageReferences;
86
+ if (packageReferences !== undefined) {
87
+ if (!Array.isArray(packageReferences)) {
22
88
  return {
23
89
  ok: false,
24
- error: "tsonic.json: 'rootNamespace' is required",
90
+ error: `${WORKSPACE_CONFIG_FILE}: 'dotnet.packageReferences' must be an array of { id, version }`,
25
91
  };
26
92
  }
27
- const isNamingPolicy = (value) => value === "clr" || value === "none";
28
- const validateNamingPolicyKey = (key, value) => {
29
- if (value === undefined)
30
- return { ok: true, value: undefined };
31
- if (isNamingPolicy(value))
32
- return { ok: true, value: undefined };
33
- return {
34
- ok: false,
35
- error: `tsonic.json: '${key}' must be one of 'clr', 'none' (got '${value}')`,
36
- };
37
- };
38
- const namingPolicy = config.namingPolicy;
39
- if (namingPolicy) {
40
- const checks = [
41
- validateNamingPolicyKey("namingPolicy.all", namingPolicy.all),
42
- validateNamingPolicyKey("namingPolicy.classes", namingPolicy.classes),
43
- validateNamingPolicyKey("namingPolicy.namespaces", namingPolicy.namespaces),
44
- validateNamingPolicyKey("namingPolicy.methods", namingPolicy.methods),
45
- validateNamingPolicyKey("namingPolicy.properties", namingPolicy.properties),
46
- validateNamingPolicyKey("namingPolicy.fields", namingPolicy.fields),
47
- validateNamingPolicyKey("namingPolicy.enumMembers", namingPolicy.enumMembers),
48
- ];
49
- for (const res of checks) {
50
- if (!res.ok)
51
- return res;
93
+ for (const entry of packageReferences) {
94
+ if (entry === null ||
95
+ typeof entry !== "object" ||
96
+ typeof entry.id !== "string" ||
97
+ typeof entry.version !== "string" ||
98
+ (entry.types !== undefined &&
99
+ typeof entry.types !== "string")) {
100
+ return {
101
+ ok: false,
102
+ error: `${WORKSPACE_CONFIG_FILE}: 'dotnet.packageReferences' entries must be { id: string, version: string, types?: string }`,
103
+ };
52
104
  }
53
105
  }
54
- const outputType = config.output?.type;
55
- if (outputType !== undefined &&
56
- outputType !== "executable" &&
57
- outputType !== "library" &&
58
- outputType !== "console-app") {
106
+ }
107
+ const typeRoots = dotnet.typeRoots;
108
+ if (typeRoots !== undefined &&
109
+ (!Array.isArray(typeRoots) || typeRoots.some((r) => typeof r !== "string"))) {
110
+ return {
111
+ ok: false,
112
+ error: `${WORKSPACE_CONFIG_FILE}: 'dotnet.typeRoots' must be an array of strings`,
113
+ };
114
+ }
115
+ return { ok: true, value: config };
116
+ };
117
+ export const loadProjectConfig = (configPath) => {
118
+ if (!existsSync(configPath)) {
119
+ return { ok: false, error: `Project config not found: ${configPath}` };
120
+ }
121
+ const parsed = parseJsonFile(configPath);
122
+ if (!parsed.ok)
123
+ return parsed;
124
+ // Airplane-grade enforcement: deps live in the workspace config only.
125
+ if ("dotnet" in parsed.value || "dotnetVersion" in parsed.value) {
126
+ return {
127
+ ok: false,
128
+ error: `${PROJECT_CONFIG_FILE}: dotnet dependencies must be declared in ${WORKSPACE_CONFIG_FILE} (workspace-scoped).\n` +
129
+ `Remove 'dotnet' / 'dotnetVersion' from this project config and retry.`,
130
+ };
131
+ }
132
+ const references = parsed.value.references;
133
+ if (references !== undefined) {
134
+ if (references === null || typeof references !== "object" || Array.isArray(references)) {
59
135
  return {
60
136
  ok: false,
61
- error: `tsonic.json: 'output.type' must be one of 'executable', 'library', 'console-app' (got '${outputType}')`,
137
+ error: `${PROJECT_CONFIG_FILE}: 'references' must be an object`,
62
138
  };
63
139
  }
64
- const frameworkReferences = config.dotnet?.frameworkReferences;
65
- if (frameworkReferences !== undefined &&
66
- (!Array.isArray(frameworkReferences) ||
67
- frameworkReferences.some((r) => {
68
- if (typeof r === "string")
69
- return false;
70
- if (r === null || typeof r !== "object")
71
- return true;
72
- const id = r.id;
73
- const types = r.types;
74
- if (typeof id !== "string")
75
- return true;
76
- if (types !== undefined && typeof types !== "string")
77
- return true;
78
- return false;
79
- }))) {
140
+ const libraries = references.libraries;
141
+ if (libraries !== undefined &&
142
+ (!Array.isArray(libraries) || libraries.some((p) => typeof p !== "string"))) {
80
143
  return {
81
144
  ok: false,
82
- error: "tsonic.json: 'dotnet.frameworkReferences' must be an array of strings or { id: string, types?: string }",
145
+ error: `${PROJECT_CONFIG_FILE}: 'references.libraries' must be an array of strings`,
83
146
  };
84
147
  }
85
- const packageReferences = config.dotnet?.packageReferences;
86
- if (packageReferences !== undefined) {
87
- if (!Array.isArray(packageReferences)) {
88
- return {
89
- ok: false,
90
- error: "tsonic.json: 'dotnet.packageReferences' must be an array of { id, version }",
91
- };
92
- }
93
- for (const entry of packageReferences) {
94
- if (entry === null ||
95
- typeof entry !== "object" ||
96
- typeof entry.id !== "string" ||
97
- typeof entry.version !== "string" ||
98
- (entry.types !== undefined &&
99
- typeof entry.types !== "string")) {
100
- return {
101
- ok: false,
102
- error: "tsonic.json: 'dotnet.packageReferences' entries must be { id: string, version: string, types?: string }",
103
- };
104
- }
105
- }
106
- }
107
- return { ok: true, value: config };
108
148
  }
109
- catch (error) {
149
+ const config = parsed.value;
150
+ if (!config.rootNamespace || typeof config.rootNamespace !== "string") {
151
+ return { ok: false, error: `${PROJECT_CONFIG_FILE}: 'rootNamespace' is required` };
152
+ }
153
+ const outputType = config.output?.type;
154
+ if (outputType !== undefined &&
155
+ outputType !== "executable" &&
156
+ outputType !== "library" &&
157
+ outputType !== "console-app") {
110
158
  return {
111
159
  ok: false,
112
- error: `Failed to parse tsonic.json: ${error instanceof Error ? error.message : String(error)}`,
160
+ error: `${PROJECT_CONFIG_FILE}: 'output.type' must be one of 'executable', 'library', 'console-app' (got '${String(outputType)}')`,
113
161
  };
114
162
  }
163
+ return { ok: true, value: config };
115
164
  };
116
- /**
117
- * Find tsonic.json by walking up the directory tree
118
- */
119
- export const findConfig = (startDir) => {
120
- let currentDir = resolve(startDir);
121
- // Walk up until we find tsonic.json or hit root
122
- while (true) {
123
- const configPath = join(currentDir, "tsonic.json");
124
- if (existsSync(configPath)) {
125
- return configPath;
165
+ export const listProjects = (workspaceRoot) => {
166
+ const packagesDir = join(workspaceRoot, "packages");
167
+ if (!existsSync(packagesDir))
168
+ return [];
169
+ const projects = [];
170
+ for (const entry of readdirSync(packagesDir, { withFileTypes: true })) {
171
+ if (!entry.isDirectory())
172
+ continue;
173
+ const projectDir = join(packagesDir, entry.name);
174
+ if (existsSync(join(projectDir, PROJECT_CONFIG_FILE))) {
175
+ projects.push(projectDir);
126
176
  }
127
- const parentDir = dirname(currentDir);
128
- if (parentDir === currentDir) {
129
- // Hit root
130
- return null;
131
- }
132
- currentDir = parentDir;
133
177
  }
178
+ return projects;
134
179
  };
135
180
  /**
136
- * Auto-detect output type based on entry point and project structure
181
+ * Find the nearest project config under `packages/<project>/tsonic.json` for a given working directory.
137
182
  */
138
- const autoDetectOutputType = (entryPoint) => {
139
- // If no entry point, default to library
140
- if (!entryPoint) {
141
- return "library";
183
+ export const findProjectConfig = (startDir, workspaceRoot) => {
184
+ let currentDir = resolve(startDir);
185
+ const workspaceAbs = resolve(workspaceRoot);
186
+ for (;;) {
187
+ // Don't walk above the workspace.
188
+ if (!currentDir.startsWith(workspaceAbs))
189
+ return null;
190
+ const cfg = join(currentDir, PROJECT_CONFIG_FILE);
191
+ if (existsSync(cfg)) {
192
+ // Enforce packages/* boundary.
193
+ const rel = currentDir.slice(workspaceAbs.length).replace(/^[\\/]/, "");
194
+ if (!rel.startsWith("packages/"))
195
+ return null;
196
+ return cfg;
197
+ }
198
+ if (currentDir === workspaceAbs)
199
+ return null;
200
+ const parent = dirname(currentDir);
201
+ if (parent === currentDir)
202
+ return null;
203
+ currentDir = parent;
142
204
  }
143
- // If entry point is provided, default to executable
144
- // The user specified an entry point, so they want a runnable program
145
- return "executable";
146
205
  };
147
206
  /**
148
- * Resolve output configuration from config + CLI options
207
+ * Resolve output configuration from project + workspace + CLI options.
149
208
  */
150
- const resolveOutputConfig = (config, cliOptions, entryPoint) => {
151
- const configOutput = config.output ?? {};
152
- // Determine output type
209
+ const resolveOutputConfig = (projectConfig, workspaceConfig, cliOptions, entryPoint) => {
210
+ const configOutput = projectConfig.output ?? {};
211
+ const autoDetectOutputType = (ep) => ep ? "executable" : "library";
153
212
  const outputType = cliOptions.type ?? configOutput.type ?? autoDetectOutputType(entryPoint);
154
- // Base config from file
155
213
  const baseConfig = {
156
214
  type: outputType,
157
- name: configOutput.name ?? config.outputName,
215
+ name: configOutput.name ?? projectConfig.outputName,
158
216
  };
159
- // Merge executable-specific options
160
217
  if (outputType === "executable") {
161
218
  return {
162
219
  ...baseConfig,
@@ -165,90 +222,89 @@ const resolveOutputConfig = (config, cliOptions, entryPoint) => {
165
222
  trimmed: configOutput.trimmed ?? true,
166
223
  stripSymbols: cliOptions.noStrip
167
224
  ? false
168
- : (configOutput.stripSymbols ?? config.buildOptions?.stripSymbols ?? true),
225
+ : (configOutput.stripSymbols ??
226
+ projectConfig.buildOptions?.stripSymbols ??
227
+ workspaceConfig.buildOptions?.stripSymbols ??
228
+ true),
169
229
  optimization: cliOptions.optimize ??
170
- config.optimize ??
230
+ projectConfig.optimize ??
231
+ workspaceConfig.optimize ??
171
232
  configOutput.optimization ??
172
233
  "speed",
173
234
  invariantGlobalization: configOutput.invariantGlobalization ??
174
- config.buildOptions?.invariantGlobalization ??
235
+ projectConfig.buildOptions?.invariantGlobalization ??
236
+ workspaceConfig.buildOptions?.invariantGlobalization ??
175
237
  true,
176
238
  selfContained: cliOptions.selfContained ?? configOutput.selfContained ?? true,
177
239
  };
178
240
  }
179
- // Merge library-specific options
180
241
  if (outputType === "library") {
181
242
  return {
182
243
  ...baseConfig,
183
- targetFrameworks: configOutput.targetFrameworks ?? [
184
- config.dotnetVersion ?? "net10.0",
185
- ],
244
+ targetFrameworks: configOutput.targetFrameworks ?? [workspaceConfig.dotnetVersion],
186
245
  generateDocumentation: cliOptions.generateDocs ?? configOutput.generateDocumentation ?? true,
187
246
  includeSymbols: cliOptions.includeSymbols ?? configOutput.includeSymbols ?? true,
188
247
  packable: cliOptions.pack ?? configOutput.packable ?? false,
189
248
  package: configOutput.package,
190
249
  };
191
250
  }
192
- // Console app (non-NativeAOT) output
193
251
  if (outputType === "console-app") {
194
252
  return {
195
253
  ...baseConfig,
196
254
  targetFramework: cliOptions.targetFramework ??
197
255
  configOutput.targetFramework ??
198
- config.dotnetVersion ??
199
- "net10.0",
256
+ workspaceConfig.dotnetVersion,
200
257
  singleFile: cliOptions.singleFile ?? configOutput.singleFile ?? true,
201
258
  selfContained: cliOptions.selfContained ?? configOutput.selfContained ?? true,
202
259
  };
203
260
  }
204
- // Unknown output type - preserve for downstream error handling.
205
261
  return baseConfig;
206
262
  };
207
263
  /**
208
- * Resolve final configuration from file + CLI args
209
- * @param projectRoot - Directory containing tsonic.json/package.json (for package resolution)
264
+ * Resolve a project's effective configuration (workspace-scoped deps + project settings).
210
265
  */
211
- export const resolveConfig = (config, cliOptions, projectRoot, entryFile) => {
212
- const entryPoint = entryFile ?? config.entryPoint;
266
+ export const resolveConfig = (workspaceConfig, projectConfig, cliOptions, workspaceRoot, projectRoot, entryFile) => {
267
+ const entryPoint = entryFile ?? projectConfig.entryPoint;
213
268
  const sourceRoot = cliOptions.src ??
214
- config.sourceRoot ??
269
+ projectConfig.sourceRoot ??
215
270
  (entryPoint ? dirname(entryPoint) : "src");
216
- // Default type roots
217
- // Only ambient globals packages need typeRoots - explicit import packages are resolved normally
218
271
  const defaultTypeRoots = ["node_modules/@tsonic/globals"];
219
- const typeRoots = config.dotnet?.typeRoots ?? defaultTypeRoots;
220
- // Merge libraries from config and CLI
221
- const configLibraries = config.dotnet?.libraries ?? [];
272
+ const typeRoots = workspaceConfig.dotnet?.typeRoots ?? defaultTypeRoots;
273
+ const configLibraries = workspaceConfig.dotnet?.libraries ?? [];
274
+ const projectLibraries = (projectConfig.references?.libraries ?? []).map((p) => resolve(projectRoot, p));
222
275
  const cliLibraries = cliOptions.lib ?? [];
223
- const libraries = [...configLibraries, ...cliLibraries];
224
- const rawFrameworkReferences = config.dotnet?.frameworkReferences ?? [];
276
+ const libraries = [...configLibraries, ...projectLibraries, ...cliLibraries];
277
+ const rawFrameworkReferences = (workspaceConfig.dotnet?.frameworkReferences ??
278
+ []);
225
279
  const frameworkReferences = rawFrameworkReferences.map((r) => typeof r === "string" ? r : r.id);
226
- const packageReferences = (config.dotnet?.packageReferences ?? []).map((p) => ({
227
- id: p.id,
228
- version: p.version,
229
- }));
230
- // Resolve output configuration
231
- const outputConfig = resolveOutputConfig(config, cliOptions, entryPoint);
280
+ const packageReferences = (workspaceConfig.dotnet?.packageReferences ??
281
+ []).map((p) => ({ id: p.id, version: p.version }));
282
+ const outputConfig = resolveOutputConfig(projectConfig, workspaceConfig, cliOptions, entryPoint);
232
283
  return {
233
- rootNamespace: cliOptions.namespace ?? config.rootNamespace,
234
- namingPolicy: config.namingPolicy,
284
+ workspaceRoot,
285
+ rootNamespace: cliOptions.namespace ?? projectConfig.rootNamespace,
235
286
  entryPoint,
236
287
  projectRoot,
237
288
  sourceRoot,
238
- outputDirectory: config.outputDirectory ?? "generated",
239
- outputName: cliOptions.out ?? config.outputName ?? "app",
240
- rid: cliOptions.rid ?? config.rid ?? detectRid(),
241
- dotnetVersion: config.dotnetVersion ?? "net10.0",
289
+ outputDirectory: projectConfig.outputDirectory ?? "generated",
290
+ outputName: cliOptions.out ?? projectConfig.outputName ?? "app",
291
+ rid: cliOptions.rid ?? workspaceConfig.rid ?? detectRid(),
292
+ dotnetVersion: workspaceConfig.dotnetVersion,
242
293
  optimize: cliOptions.optimize ??
243
- config.optimize ??
244
- config.output?.optimization ??
294
+ projectConfig.optimize ??
295
+ workspaceConfig.optimize ??
296
+ projectConfig.output?.optimization ??
245
297
  "speed",
246
298
  outputConfig,
247
299
  stripSymbols: cliOptions.noStrip
248
300
  ? false
249
- : (config.output?.stripSymbols ?? config.buildOptions?.stripSymbols ?? true),
250
- invariantGlobalization: config.output?.invariantGlobalization ??
251
- config.buildOptions?.invariantGlobalization ??
301
+ : (projectConfig.output?.stripSymbols ??
302
+ projectConfig.buildOptions?.stripSymbols ??
303
+ workspaceConfig.buildOptions?.stripSymbols ??
304
+ true),
305
+ invariantGlobalization: projectConfig.output?.invariantGlobalization ??
306
+ projectConfig.buildOptions?.invariantGlobalization ??
307
+ workspaceConfig.buildOptions?.invariantGlobalization ??
252
308
  true,
253
309
  keepTemp: cliOptions.keepTemp ?? false,
254
310
  verbose: cliOptions.verbose ?? false,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}