@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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli/dispatcher.d.ts.map +1 -1
- package/dist/cli/dispatcher.js +90 -40
- 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 +21 -19
- package/dist/commands/add-js.js.map +1 -1
- package/dist/commands/add-js.test.js +23 -11
- 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 +22 -19
- package/dist/commands/add-nodejs.js.map +1 -1
- package/dist/commands/add-nodejs.test.js +31 -13
- 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 +44 -30
- 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 +47 -69
- 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 -260
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.test.js +21 -51
- 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 +42 -61
- package/dist/commands/restore.js.map +1 -1
- package/dist/commands/restore.test.js +42 -18
- 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 +212 -156
- package/dist/config.js.map +1 -1
- package/dist/config.test.js +156 -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 +59 -36
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/config.js
CHANGED
|
@@ -1,162 +1,219 @@
|
|
|
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
|
-
|
|
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:
|
|
90
|
+
error: `${WORKSPACE_CONFIG_FILE}: 'dotnet.packageReferences' must be an array of { id, version }`,
|
|
25
91
|
};
|
|
26
92
|
}
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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:
|
|
137
|
+
error: `${PROJECT_CONFIG_FILE}: 'references' must be an object`,
|
|
62
138
|
};
|
|
63
139
|
}
|
|
64
|
-
const
|
|
65
|
-
if (
|
|
66
|
-
(!Array.isArray(
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
*
|
|
181
|
+
* Find the nearest project config under `packages/<project>/tsonic.json` for a given working directory.
|
|
137
182
|
*/
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
|
207
|
+
* Resolve output configuration from project + workspace + CLI options.
|
|
149
208
|
*/
|
|
150
|
-
const resolveOutputConfig = (
|
|
151
|
-
const configOutput =
|
|
152
|
-
|
|
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 ??
|
|
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 ??
|
|
225
|
+
: (configOutput.stripSymbols ??
|
|
226
|
+
projectConfig.buildOptions?.stripSymbols ??
|
|
227
|
+
workspaceConfig.buildOptions?.stripSymbols ??
|
|
228
|
+
true),
|
|
169
229
|
optimization: cliOptions.optimize ??
|
|
170
|
-
|
|
230
|
+
projectConfig.optimize ??
|
|
231
|
+
workspaceConfig.optimize ??
|
|
171
232
|
configOutput.optimization ??
|
|
172
233
|
"speed",
|
|
173
234
|
invariantGlobalization: configOutput.invariantGlobalization ??
|
|
174
|
-
|
|
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
|
-
|
|
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
|
|
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 = (
|
|
212
|
-
const entryPoint = entryFile ??
|
|
266
|
+
export const resolveConfig = (workspaceConfig, projectConfig, cliOptions, workspaceRoot, projectRoot, entryFile) => {
|
|
267
|
+
const entryPoint = entryFile ?? projectConfig.entryPoint;
|
|
213
268
|
const sourceRoot = cliOptions.src ??
|
|
214
|
-
|
|
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 =
|
|
220
|
-
|
|
221
|
-
const
|
|
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 =
|
|
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 = (
|
|
227
|
-
id: p.id,
|
|
228
|
-
|
|
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
|
-
|
|
234
|
-
|
|
284
|
+
workspaceRoot,
|
|
285
|
+
rootNamespace: cliOptions.namespace ?? projectConfig.rootNamespace,
|
|
235
286
|
entryPoint,
|
|
236
287
|
projectRoot,
|
|
237
288
|
sourceRoot,
|
|
238
|
-
outputDirectory:
|
|
239
|
-
outputName: cliOptions.out ??
|
|
240
|
-
rid: cliOptions.rid ??
|
|
241
|
-
dotnetVersion:
|
|
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
|
-
|
|
244
|
-
|
|
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
|
-
: (
|
|
250
|
-
|
|
251
|
-
|
|
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,
|
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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"}
|