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