Skip to content

Commit c020737

Browse files
committed
fix: config preview_urls defaults to undefined (falsy) instead of true
We want preview_urls to be opt-in, rather than opt-out. For this reason its default value will be falsy.
1 parent 080f33f commit c020737

File tree

10 files changed

+58
-15
lines changed

10 files changed

+58
-15
lines changed

.changeset/ready-banks-repair.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"wrangler": minor
3+
---
4+
5+
Beta feature preview_urls is now disabled by default.
6+
7+
This change makes preview_urls disabled by default when it's not provided, making
8+
the feature opt-in instead of opt-out.

packages/wrangler/src/__tests__/config/configuration.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ describe("normalizeAndValidateConfig()", () => {
130130
wasm_modules: undefined,
131131
data_blobs: undefined,
132132
workers_dev: undefined,
133-
preview_urls: true,
133+
preview_urls: undefined,
134134
zone_id: undefined,
135135
no_bundle: undefined,
136136
minify: undefined,

packages/wrangler/src/__tests__/deploy.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1898,7 +1898,7 @@ Update them to point to this script instead?`,
18981898
});
18991899
await mockAUSRequest([]);
19001900
mockSubDomainRequest();
1901-
mockUpdateWorkerSubdomain({ enabled: false, previews_enabled: true });
1901+
mockUpdateWorkerSubdomain({ enabled: false, previews_enabled: false });
19021902
mockUploadWorkerRequest({
19031903
expectedAssets: {
19041904
jwt: "<<aus-completion-token>>",
@@ -1983,7 +1983,7 @@ Update them to point to this script instead?`,
19831983
});
19841984
await mockAUSRequest([]);
19851985
mockSubDomainRequest();
1986-
mockUpdateWorkerSubdomain({ enabled: false, previews_enabled: true });
1986+
mockUpdateWorkerSubdomain({ enabled: false, previews_enabled: false });
19871987
mockUploadWorkerRequest({
19881988
expectedAssets: {
19891989
jwt: "<<aus-completion-token>>",
@@ -2046,7 +2046,7 @@ Update them to point to this script instead?`,
20462046
writeWorkerSource();
20472047
await mockAUSRequest([]);
20482048
mockSubDomainRequest();
2049-
mockUpdateWorkerSubdomain({ enabled: false, previews_enabled: true });
2049+
mockUpdateWorkerSubdomain({ enabled: false, previews_enabled: false });
20502050
mockUploadWorkerRequest({
20512051
expectedAssets: {
20522052
jwt: "<<aus-completion-token>>",
@@ -2116,7 +2116,7 @@ Update them to point to this script instead?`,
21162116
});
21172117
await mockAUSRequest([]);
21182118
mockSubDomainRequest();
2119-
mockUpdateWorkerSubdomain({ enabled: false, previews_enabled: true });
2119+
mockUpdateWorkerSubdomain({ enabled: false, previews_enabled: false });
21202120
mockUploadWorkerRequest({
21212121
expectedAssets: {
21222122
jwt: "<<aus-completion-token>>",

packages/wrangler/src/__tests__/helpers/mock-upload-worker.ts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import { http, HttpResponse } from "msw";
2+
import { Route } from "../../config/environment";
3+
import { ParseError } from "../../parse";
4+
import { getSubdomainDefaults } from "../../triggers/deploy";
25
import { mockGetWorkerSubdomain } from "./mock-workers-subdomain";
36
import { createFetchResult, msw } from "./msw";
47
import { serialize, toString } from "./serialize-form-data-entry";
8+
import { readWranglerConfig } from "./write-wrangler-config";
9+
import type { RawConfig } from "../../config";
510
import type {
611
AssetConfigMetadata,
712
WorkerMetadata,
@@ -236,9 +241,27 @@ export function mockUploadWorkerRequest(
236241
)
237242
);
238243
}
239-
// TODO make explicit by callers?
244+
// Every upload is followed by a GET subdomain request, to check if the worker is enabled.
245+
// TODO: make this explicit by callers?
246+
let config: RawConfig = {};
247+
try {
248+
config = readWranglerConfig();
249+
} catch (e) {
250+
if (e instanceof ParseError) {
251+
// Ignore, config is either bad or doesn't exist.
252+
} else {
253+
throw e;
254+
}
255+
}
256+
let routes: Route[] = config.routes ?? [];
257+
if (env) {
258+
routes = config.env?.[env]?.routes ?? [];
259+
}
260+
const { workers_dev: defaultWorkersDev, preview_urls: defaultPreviewUrls } =
261+
getSubdomainDefaults(routes);
240262
mockGetWorkerSubdomain({
241-
enabled: true,
263+
enabled: config.workers_dev ?? defaultWorkersDev,
264+
previews_enabled: config.preview_urls ?? defaultPreviewUrls,
242265
env,
243266
legacyEnv,
244267
expectedScriptName,

packages/wrangler/src/__tests__/helpers/mock-workers-subdomain.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export function mockSubDomainRequest(
3636
/** Create a mock handler to fetch the <script>.<user>.workers.dev subdomain status*/
3737
export function mockGetWorkerSubdomain({
3838
enabled,
39-
previews_enabled = true,
39+
previews_enabled = false,
4040
env,
4141
legacyEnv = false,
4242
expectedScriptName = "test-name" + (legacyEnv && env ? `-${env}` : ""),
@@ -73,7 +73,7 @@ export function mockGetWorkerSubdomain({
7373
/** Create a mock handler to toggle a <script>.<user>.workers.dev subdomain status */
7474
export function mockUpdateWorkerSubdomain({
7575
enabled,
76-
previews_enabled = true,
76+
previews_enabled = false,
7777
env,
7878
legacyEnv = false,
7979
expectedScriptName = "test-name",

packages/wrangler/src/__tests__/helpers/write-wrangler-config.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as fs from "node:fs";
22
import { dirname } from "node:path";
3-
import { formatConfigSnippet } from "../../config";
3+
import { formatConfigSnippet, parseRawConfigFile } from "../../config";
44
import type { RawConfig } from "../../config";
55

66
/** Write a mock wrangler config file to disk. */
@@ -24,3 +24,7 @@ export function writeWranglerConfig(
2424
"utf-8"
2525
);
2626
}
27+
28+
export function readWranglerConfig(path = "./wrangler.toml"): RawConfig {
29+
return parseRawConfigFile(path);
30+
}

packages/wrangler/src/config/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ export const defaultWranglerConfig: Config = {
346346
preserve_file_names: undefined,
347347
base_dir: undefined,
348348
workers_dev: undefined,
349-
preview_urls: true,
349+
preview_urls: undefined,
350350
route: undefined,
351351
routes: undefined,
352352
tsconfig: undefined,

packages/wrangler/src/config/environment.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ interface EnvironmentInheritable {
312312
* Whether we use <version>-<name>.<subdomain>.workers.dev to
313313
* serve Preview URLs for your Worker.
314314
*
315-
* @default true
315+
* @default false
316316
* @inheritable
317317
*/
318318
preview_urls: boolean | undefined;

packages/wrangler/src/config/validation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1059,7 +1059,7 @@ function normalizeAndValidateEnvironment(
10591059
rawEnv,
10601060
"preview_urls",
10611061
isBoolean,
1062-
true
1062+
undefined
10631063
);
10641064

10651065
const build = normalizeAndValidateBuild(

packages/wrangler/src/triggers/deploy.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,13 @@ export default async function triggersDeploy(
292292
}
293293
}
294294

295+
export function getSubdomainDefaults(routes: Route[]) {
296+
return {
297+
workers_dev: routes.length === 0,
298+
preview_urls: false,
299+
};
300+
}
301+
295302
async function subdomainDeploy(
296303
props: Props,
297304
accountId: string,
@@ -305,9 +312,10 @@ async function subdomainDeploy(
305312

306313
// Get desired subdomain enablement status.
307314

308-
const defaultWorkersDev = routes.length === 0;
315+
const { workers_dev: defaultWorkersDev, preview_urls: defaultPreviews } =
316+
getSubdomainDefaults(routes);
309317
const wantWorkersDev = config.workers_dev ?? defaultWorkersDev;
310-
const wantPreviews = config.preview_urls ?? false;
318+
const wantPreviews = config.preview_urls ?? defaultPreviews;
311319

312320
// Get current subdomain enablement status.
313321

0 commit comments

Comments
 (0)