@@ -103,6 +103,7 @@ const { values: rawOptions } = parseArgs({ |
103 | 103 | tests: { type: "string", short: "t" }, |
104 | 104 | fix: { type: "boolean" }, |
105 | 105 | force: { type: "boolean", default: parseEnvBoolean("FORCE") }, |
| 106 | + generate: { type: "boolean", default: !isCI }, |
106 | 107 | api: { type: "boolean" }, |
107 | 108 | all: { type: "boolean" }, |
108 | 109 | debug: { type: "boolean" }, |
@@ -797,10 +798,12 @@ export const generate = task({ |
797 | 798 | run: runGenerate, |
798 | 799 | }); |
799 | 800 |
|
| 801 | +const generateDependencies = options.generate ? [generate] : []; |
| 802 | + |
800 | 803 | export const tscBuild = task({ |
801 | 804 | name: "tsc:build", |
802 | | - description: "Generates sources and builds the tsc binary.", |
803 | | - dependencies: [generate], |
| 805 | + description: "Builds the tsc binary, generating sources by default outside CI. Pass --generate or --no-generate to override.", |
| 806 | + dependencies: generateDependencies, |
804 | 807 | run: async () => { |
805 | 808 | await buildTsc({ extraFlags: options.release ? getReleaseBuildFlags() : [] }); |
806 | 809 | }, |
@@ -838,7 +841,9 @@ export const buildWatch = task({ |
838 | 841 | await watchDebounced("build:watch", async (_paths, abortSignal) => { |
839 | 842 | abortSignal.throwIfAborted(); |
840 | 843 | invalidateFileFingerprints(); |
841 | | - await runGenerate(); |
| 844 | + if (options.generate) { |
| 845 | + await runGenerate(); |
| 846 | + } |
842 | 847 | abortSignal.throwIfAborted(); |
843 | 848 | await generateLibs(builtLocal); |
844 | 849 | abortSignal.throwIfAborted(); |
@@ -1167,7 +1172,7 @@ export const testCodegen = task({ |
1167 | 1172 | export const buildAPI = task({ |
1168 | 1173 | name: "build:api", |
1169 | 1174 | description: "Builds @typescript/typescript JS API.", |
1170 | | - dependencies: [generate], |
| 1175 | + dependencies: generateDependencies, |
1171 | 1176 | run: async () => { |
1172 | 1177 | await run("npm", ["run", "-w", "@typescript/typescript", "build"]); |
1173 | 1178 | }, |
@@ -1275,7 +1280,7 @@ export const buildWasi = task({ |
1275 | 1280 | export const buildAPITests = task({ |
1276 | 1281 | name: "build:api:test", |
1277 | 1282 | description: "Builds the @typescript/typescript JS API tests.", |
1278 | | - dependencies: [generate, lib], |
| 1283 | + dependencies: [...generateDependencies, lib], |
1279 | 1284 | run: runBuildAPITests, |
1280 | 1285 | }); |
1281 | 1286 |
|
@@ -2579,7 +2584,7 @@ function stripConditionsFromValue(value) { |
2579 | 2584 | export const buildTypeScriptPackages = task({ |
2580 | 2585 | name: "typescript:build", |
2581 | 2586 | description: "Builds TypeScript npm packages for the current platform. Pass --respectGoEnv to preserve caller-provided Go build settings.", |
2582 | | - dependencies: usePublishedPlatformPackagesForVsix ? undefined : [generate], |
| 2587 | + dependencies: usePublishedPlatformPackagesForVsix ? undefined : generateDependencies, |
2583 | 2588 | run: runBuildTypeScriptPackages, |
2584 | 2589 | }); |
2585 | 2590 |
|
@@ -3546,7 +3551,7 @@ export const vscodeTypescriptRelease = task({ |
3546 | 3551 | export const typeScriptRelease = task({ |
3547 | 3552 | name: "typescript:release", |
3548 | 3553 | hiddenFromTaskList: true, |
3549 | | - dependencies: [generate], |
| 3554 | + dependencies: generateDependencies, |
3550 | 3555 | run: async () => { |
3551 | 3556 | if (releaseVscodeTypescript) { |
3552 | 3557 | throw new Error("typescript:release cannot be used with --vscodeTypescriptRelease; use vscode-typescript:release"); |
|