wrangler 0.0.0-e1e2ee5c → 0.0.0-e1f2576e
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/README.md +24 -12
- package/bin/wrangler.js +26 -67
- package/package.json +226 -167
- package/templates/__tests__/pages-dev-util.test.ts +128 -0
- package/templates/__tests__/tsconfig-sanity.ts +12 -0
- package/templates/__tests__/tsconfig.json +8 -0
- package/templates/checked-fetch.js +19 -6
- package/templates/facade.d.ts +17 -0
- package/templates/gitignore +0 -4
- package/templates/init-tests/test-jest-new-worker.js +23 -0
- package/templates/init-tests/test-vitest-new-worker.js +24 -0
- package/templates/init-tests/test-vitest-new-worker.ts +25 -0
- package/templates/middleware/common.ts +67 -0
- package/templates/middleware/loader-modules.ts +136 -0
- package/templates/middleware/loader-sw.ts +229 -0
- package/templates/middleware/middleware-d1-beta.d.ts +3 -0
- package/templates/middleware/middleware-ensure-req-body-drained.ts +19 -0
- package/templates/middleware/middleware-miniflare3-json-error.ts +33 -0
- package/templates/middleware/middleware-multiworker-dev.d.ts +4 -0
- package/templates/middleware/middleware-multiworker-dev.ts +68 -0
- package/templates/middleware/middleware-pretty-error.ts +40 -0
- package/templates/middleware/middleware-scheduled.ts +15 -0
- package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
- package/templates/middleware/middleware-serve-static-assets.ts +56 -0
- package/templates/modules-watch-stub.js +4 -0
- package/templates/new-worker-scheduled.ts +1 -1
- package/templates/new-worker.js +1 -1
- package/templates/new-worker.ts +4 -1
- package/templates/pages-dev-pipeline.ts +32 -0
- package/templates/pages-dev-util.ts +55 -0
- package/templates/pages-shim.ts +1 -1
- package/templates/pages-template-plugin.ts +51 -16
- package/templates/pages-template-worker.ts +48 -11
- package/templates/startDevWorker/InspectorProxyWorker.ts +661 -0
- package/templates/startDevWorker/ProxyWorker.ts +326 -0
- package/templates/tsconfig-sanity.ts +11 -0
- package/templates/tsconfig.init.json +105 -0
- package/templates/tsconfig.json +5 -102
- package/wrangler-dist/InspectorProxyWorker.js +464 -0
- package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
- package/wrangler-dist/ProxyWorker.js +237 -0
- package/wrangler-dist/ProxyWorker.js.map +6 -0
- package/wrangler-dist/cli.d.ts +23779 -186
- package/wrangler-dist/cli.js +157746 -110497
- package/wrangler-dist/wasm-sync.wasm +0 -0
- package/import_meta_url.js +0 -3
- package/miniflare-config-stubs/.env.empty +0 -0
- package/miniflare-config-stubs/package.empty.json +0 -1
- package/miniflare-config-stubs/wrangler.empty.toml +0 -0
- package/miniflare-dist/index.mjs +0 -5354
- package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
- package/src/__tests__/config-cache.test.ts +0 -42
- package/src/__tests__/configuration.test.ts +0 -3950
- package/src/__tests__/dev.test.tsx +0 -1203
- package/src/__tests__/guess-worker-format.test.ts +0 -85
- package/src/__tests__/helpers/clipboardy-mock.js +0 -4
- package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
- package/src/__tests__/helpers/mock-account-id.ts +0 -48
- package/src/__tests__/helpers/mock-bin.ts +0 -36
- package/src/__tests__/helpers/mock-cfetch.ts +0 -211
- package/src/__tests__/helpers/mock-console.ts +0 -97
- package/src/__tests__/helpers/mock-dialogs.ts +0 -153
- package/src/__tests__/helpers/mock-http-server.ts +0 -46
- package/src/__tests__/helpers/mock-istty.ts +0 -74
- package/src/__tests__/helpers/mock-kv.ts +0 -33
- package/src/__tests__/helpers/mock-oauth-flow.ts +0 -250
- package/src/__tests__/helpers/mock-process.ts +0 -39
- package/src/__tests__/helpers/mock-stdin.ts +0 -108
- package/src/__tests__/helpers/mock-web-socket.ts +0 -29
- package/src/__tests__/helpers/run-in-tmp.ts +0 -38
- package/src/__tests__/helpers/run-wrangler.ts +0 -16
- package/src/__tests__/helpers/write-worker-source.ts +0 -31
- package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
- package/src/__tests__/https-options.test.ts +0 -163
- package/src/__tests__/index.test.ts +0 -262
- package/src/__tests__/init.test.ts +0 -1992
- package/src/__tests__/jest.setup.ts +0 -120
- package/src/__tests__/kv.test.ts +0 -1671
- package/src/__tests__/logger.test.ts +0 -141
- package/src/__tests__/metrics.test.ts +0 -445
- package/src/__tests__/package-manager.test.ts +0 -353
- package/src/__tests__/pages.test.ts +0 -1261
- package/src/__tests__/parse.test.ts +0 -330
- package/src/__tests__/publish.test.ts +0 -6671
- package/src/__tests__/pubsub.test.ts +0 -367
- package/src/__tests__/r2.test.ts +0 -233
- package/src/__tests__/route.test.ts +0 -45
- package/src/__tests__/secret.test.ts +0 -492
- package/src/__tests__/tail.test.ts +0 -698
- package/src/__tests__/test-old-node-version.js +0 -31
- package/src/__tests__/user.test.ts +0 -143
- package/src/__tests__/version.test.ts +0 -35
- package/src/__tests__/whoami.test.tsx +0 -230
- package/src/__tests__/worker-namespace.test.ts +0 -327
- package/src/abort.d.ts +0 -3
- package/src/api/dev.ts +0 -86
- package/src/api/index.ts +0 -1
- package/src/bundle-reporter.tsx +0 -29
- package/src/bundle.ts +0 -236
- package/src/cfetch/index.ts +0 -121
- package/src/cfetch/internal.ts +0 -149
- package/src/cli.ts +0 -27
- package/src/config/README.md +0 -107
- package/src/config/config.ts +0 -251
- package/src/config/diagnostics.ts +0 -80
- package/src/config/environment.ts +0 -453
- package/src/config/index.ts +0 -238
- package/src/config/validation-helpers.ts +0 -584
- package/src/config/validation.ts +0 -1754
- package/src/config-cache.ts +0 -84
- package/src/create-worker-preview.ts +0 -255
- package/src/create-worker-upload-form.ts +0 -263
- package/src/dev/dev-vars.ts +0 -36
- package/src/dev/dev.tsx +0 -452
- package/src/dev/local.tsx +0 -373
- package/src/dev/remote.tsx +0 -386
- package/src/dev/use-esbuild.ts +0 -150
- package/src/dev.tsx +0 -593
- package/src/dialogs.tsx +0 -135
- package/src/durable.ts +0 -102
- package/src/entry.ts +0 -328
- package/src/environment-variables.ts +0 -35
- package/src/errors.ts +0 -11
- package/src/faye-websocket.d.ts +0 -6
- package/src/generate.ts +0 -33
- package/src/git-client.ts +0 -42
- package/src/global-wrangler-config-path.ts +0 -26
- package/src/https-options.ts +0 -127
- package/src/index.tsx +0 -2005
- package/src/init.ts +0 -549
- package/src/inspect.ts +0 -662
- package/src/intl-polyfill.d.ts +0 -139
- package/src/is-interactive.ts +0 -12
- package/src/kv.ts +0 -430
- package/src/logger.ts +0 -73
- package/src/metrics/index.ts +0 -4
- package/src/metrics/is-ci.ts +0 -14
- package/src/metrics/metrics-config.ts +0 -239
- package/src/metrics/metrics-dispatcher.ts +0 -95
- package/src/metrics/send-event.ts +0 -92
- package/src/miniflare-cli/README.md +0 -30
- package/src/miniflare-cli/assets.ts +0 -543
- package/src/miniflare-cli/enum-keys.ts +0 -17
- package/src/miniflare-cli/index.ts +0 -85
- package/src/miniflare-cli/request-context.ts +0 -40
- package/src/module-collection.ts +0 -258
- package/src/open-in-browser.ts +0 -17
- package/src/package-manager.ts +0 -219
- package/src/pages/build.tsx +0 -204
- package/src/pages/constants.ts +0 -7
- package/src/pages/deployments.tsx +0 -106
- package/src/pages/dev.tsx +0 -401
- package/src/pages/functions/buildPlugin.ts +0 -105
- package/src/pages/functions/buildWorker.ts +0 -151
- package/src/pages/functions/filepath-routing.test.ts +0 -234
- package/src/pages/functions/filepath-routing.ts +0 -189
- package/src/pages/functions/identifiers.ts +0 -78
- package/src/pages/functions/routes.ts +0 -151
- package/src/pages/index.tsx +0 -84
- package/src/pages/projects.tsx +0 -163
- package/src/pages/publish.tsx +0 -338
- package/src/pages/types.ts +0 -40
- package/src/pages/upload.tsx +0 -396
- package/src/pages/utils.ts +0 -12
- package/src/parse.ts +0 -286
- package/src/paths.ts +0 -26
- package/src/preview.ts +0 -31
- package/src/proxy.ts +0 -476
- package/src/publish.ts +0 -793
- package/src/pubsub/index.ts +0 -286
- package/src/pubsub/pubsub-commands.tsx +0 -623
- package/src/r2.ts +0 -50
- package/src/selfsigned.d.ts +0 -29
- package/src/sites.tsx +0 -372
- package/src/tail/filters.ts +0 -279
- package/src/tail/index.ts +0 -299
- package/src/tail/printing.ts +0 -67
- package/src/update-check.ts +0 -19
- package/src/user/choose-account.tsx +0 -69
- package/src/user/env-vars.ts +0 -46
- package/src/user/generate-auth-url.ts +0 -33
- package/src/user/generate-random-state.ts +0 -16
- package/src/user/index.ts +0 -3
- package/src/user/user.tsx +0 -1171
- package/src/whoami.tsx +0 -91
- package/src/worker-namespace.ts +0 -206
- package/src/worker.ts +0 -191
- package/src/zones.ts +0 -76
- package/templates/static-asset-facade.js +0 -49
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
import { mockAccountId, mockApiToken } from "./helpers/mock-account-id";
|
|
2
|
-
import { setMockResponse, unsetAllMocks } from "./helpers/mock-cfetch";
|
|
3
|
-
import { mockConsoleMethods } from "./helpers/mock-console";
|
|
4
|
-
import { runInTempDir } from "./helpers/run-in-tmp";
|
|
5
|
-
import { runWrangler } from "./helpers/run-wrangler";
|
|
6
|
-
|
|
7
|
-
describe("worker-namespace", () => {
|
|
8
|
-
runInTempDir();
|
|
9
|
-
const std = mockConsoleMethods();
|
|
10
|
-
mockAccountId();
|
|
11
|
-
mockApiToken();
|
|
12
|
-
|
|
13
|
-
afterEach(() => {
|
|
14
|
-
unsetAllMocks();
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
it("should should display a list of available subcommands, for worker-namespace with no subcommand", async () => {
|
|
18
|
-
await runWrangler("worker-namespace");
|
|
19
|
-
|
|
20
|
-
// wait a tick for the help menu to be printed
|
|
21
|
-
await new Promise((resolve) => setImmediate(resolve));
|
|
22
|
-
|
|
23
|
-
expect(std).toMatchInlineSnapshot(`
|
|
24
|
-
Object {
|
|
25
|
-
"debug": "",
|
|
26
|
-
"err": "",
|
|
27
|
-
"out": "wrangler worker-namespace
|
|
28
|
-
|
|
29
|
-
📦 Interact with a worker namespace
|
|
30
|
-
|
|
31
|
-
Commands:
|
|
32
|
-
wrangler worker-namespace list List all Worker namespaces
|
|
33
|
-
wrangler worker-namespace get <name> Get information about a Worker namespace
|
|
34
|
-
wrangler worker-namespace create <name> Create a Worker namespace
|
|
35
|
-
wrangler worker-namespace delete <name> Delete a Worker namespace
|
|
36
|
-
wrangler worker-namespace rename <old-name> <new-name> Rename a Worker namespace
|
|
37
|
-
|
|
38
|
-
Flags:
|
|
39
|
-
-c, --config Path to .toml configuration file [string]
|
|
40
|
-
-h, --help Show help [boolean]
|
|
41
|
-
-v, --version Show version number [boolean]",
|
|
42
|
-
"warn": "",
|
|
43
|
-
}
|
|
44
|
-
`);
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
describe("create namespace", () => {
|
|
48
|
-
function mockCreateRequest(expectedName: string) {
|
|
49
|
-
const requests = { count: 0 };
|
|
50
|
-
setMockResponse(
|
|
51
|
-
"/accounts/:accountId/workers/dispatch/namespaces",
|
|
52
|
-
([_url], init) => {
|
|
53
|
-
requests.count += 1;
|
|
54
|
-
|
|
55
|
-
const incomingText = init.body?.toString() || "";
|
|
56
|
-
const { name: namespace_name } = JSON.parse(incomingText);
|
|
57
|
-
|
|
58
|
-
expect(init.method).toBe("POST");
|
|
59
|
-
expect(namespace_name).toEqual(expectedName);
|
|
60
|
-
|
|
61
|
-
return {
|
|
62
|
-
namespace_id: "some-namespace-id",
|
|
63
|
-
namespace_name: "namespace-name",
|
|
64
|
-
created_on: "2022-06-29T14:30:08.16152Z",
|
|
65
|
-
created_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
66
|
-
modified_on: "2022-06-29T14:30:08.16152Z",
|
|
67
|
-
modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
);
|
|
71
|
-
return requests;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
it("should display help for create", async () => {
|
|
75
|
-
await expect(
|
|
76
|
-
runWrangler("worker-namespace create")
|
|
77
|
-
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
78
|
-
`"Not enough non-option arguments: got 0, need at least 1"`
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
expect(std.out).toMatchInlineSnapshot(`
|
|
82
|
-
"
|
|
83
|
-
wrangler worker-namespace create <name>
|
|
84
|
-
|
|
85
|
-
Create a Worker namespace
|
|
86
|
-
|
|
87
|
-
Positionals:
|
|
88
|
-
name Name of the Worker namespace [string] [required]
|
|
89
|
-
|
|
90
|
-
Flags:
|
|
91
|
-
-c, --config Path to .toml configuration file [string]
|
|
92
|
-
-h, --help Show help [boolean]
|
|
93
|
-
-v, --version Show version number [boolean]"
|
|
94
|
-
`);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
it("should attempt to create the given namespace", async () => {
|
|
98
|
-
const namespaceName = "my-namespace";
|
|
99
|
-
const requests = mockCreateRequest(namespaceName);
|
|
100
|
-
await runWrangler(`worker-namespace create ${namespaceName}`);
|
|
101
|
-
expect(requests.count).toEqual(1);
|
|
102
|
-
|
|
103
|
-
expect(std.out).toMatchInlineSnapshot(
|
|
104
|
-
`"Created Worker namespace \\"my-namespace\\" with ID \\"some-namespace-id\\""`
|
|
105
|
-
);
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
describe("delete namespace", () => {
|
|
110
|
-
function mockDeleteRequest(expectedName: string) {
|
|
111
|
-
const requests = { count: 0 };
|
|
112
|
-
setMockResponse(
|
|
113
|
-
"/accounts/:accountId/workers/dispatch/namespaces/:namespaceName",
|
|
114
|
-
([_url, _, namespaceName], init) => {
|
|
115
|
-
requests.count += 1;
|
|
116
|
-
|
|
117
|
-
expect(init.method).toBe("DELETE");
|
|
118
|
-
expect(namespaceName).toEqual(expectedName);
|
|
119
|
-
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
);
|
|
123
|
-
return requests;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
it("should display help for delete", async () => {
|
|
127
|
-
await expect(
|
|
128
|
-
runWrangler("worker-namespace create")
|
|
129
|
-
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
130
|
-
`"Not enough non-option arguments: got 0, need at least 1"`
|
|
131
|
-
);
|
|
132
|
-
|
|
133
|
-
expect(std.out).toMatchInlineSnapshot(`
|
|
134
|
-
"
|
|
135
|
-
wrangler worker-namespace create <name>
|
|
136
|
-
|
|
137
|
-
Create a Worker namespace
|
|
138
|
-
|
|
139
|
-
Positionals:
|
|
140
|
-
name Name of the Worker namespace [string] [required]
|
|
141
|
-
|
|
142
|
-
Flags:
|
|
143
|
-
-c, --config Path to .toml configuration file [string]
|
|
144
|
-
-h, --help Show help [boolean]
|
|
145
|
-
-v, --version Show version number [boolean]"
|
|
146
|
-
`);
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
it("should try to delete the given namespace", async () => {
|
|
150
|
-
const namespaceName = "my-namespace";
|
|
151
|
-
const requests = mockDeleteRequest(namespaceName);
|
|
152
|
-
await runWrangler(`worker-namespace delete ${namespaceName}`);
|
|
153
|
-
expect(requests.count).toBe(1);
|
|
154
|
-
|
|
155
|
-
expect(std.out).toMatchInlineSnapshot(
|
|
156
|
-
`"Deleted Worker namespace \\"my-namespace\\""`
|
|
157
|
-
);
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
describe("get namespace", () => {
|
|
162
|
-
function mockInfoRequest(expectedName: string) {
|
|
163
|
-
const requests = { count: 0 };
|
|
164
|
-
setMockResponse(
|
|
165
|
-
"/accounts/:accountId/workers/dispatch/namespaces/:namespaceName",
|
|
166
|
-
([_url, _, namespaceName], _init) => {
|
|
167
|
-
requests.count += 1;
|
|
168
|
-
|
|
169
|
-
expect(namespaceName).toEqual(expectedName);
|
|
170
|
-
|
|
171
|
-
return {
|
|
172
|
-
namespace_id: "some-namespace-id",
|
|
173
|
-
namespace_name: "namespace-name",
|
|
174
|
-
created_on: "2022-06-29T14:30:08.16152Z",
|
|
175
|
-
created_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
176
|
-
modified_on: "2022-06-29T14:30:08.16152Z",
|
|
177
|
-
modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
|
-
);
|
|
181
|
-
return requests;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
it("should display help for get", async () => {
|
|
185
|
-
await expect(
|
|
186
|
-
runWrangler("worker-namespace get")
|
|
187
|
-
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
188
|
-
`"Not enough non-option arguments: got 0, need at least 1"`
|
|
189
|
-
);
|
|
190
|
-
|
|
191
|
-
expect(std.out).toMatchInlineSnapshot(`
|
|
192
|
-
"
|
|
193
|
-
wrangler worker-namespace get <name>
|
|
194
|
-
|
|
195
|
-
Get information about a Worker namespace
|
|
196
|
-
|
|
197
|
-
Positionals:
|
|
198
|
-
name Name of the Worker namespace [string] [required]
|
|
199
|
-
|
|
200
|
-
Flags:
|
|
201
|
-
-c, --config Path to .toml configuration file [string]
|
|
202
|
-
-h, --help Show help [boolean]
|
|
203
|
-
-v, --version Show version number [boolean]"
|
|
204
|
-
`);
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
it("should attempt to get info for the given namespace", async () => {
|
|
208
|
-
const namespaceName = "my-namespace";
|
|
209
|
-
const requests = mockInfoRequest(namespaceName);
|
|
210
|
-
await runWrangler(`worker-namespace get ${namespaceName}`);
|
|
211
|
-
expect(requests.count).toBe(1);
|
|
212
|
-
|
|
213
|
-
expect(std.out).toMatchInlineSnapshot(`
|
|
214
|
-
"{
|
|
215
|
-
namespace_id: 'some-namespace-id',
|
|
216
|
-
namespace_name: 'namespace-name',
|
|
217
|
-
created_on: '2022-06-29T14:30:08.16152Z',
|
|
218
|
-
created_by: '1fc1df98cc4420fe00367c3ab68c1639',
|
|
219
|
-
modified_on: '2022-06-29T14:30:08.16152Z',
|
|
220
|
-
modified_by: '1fc1df98cc4420fe00367c3ab68c1639'
|
|
221
|
-
}"
|
|
222
|
-
`);
|
|
223
|
-
});
|
|
224
|
-
});
|
|
225
|
-
|
|
226
|
-
describe("list namespaces", () => {
|
|
227
|
-
function mockListRequest() {
|
|
228
|
-
const requests = { count: 0 };
|
|
229
|
-
setMockResponse(
|
|
230
|
-
"/accounts/:accountId/workers/dispatch/namespaces",
|
|
231
|
-
([_url, _, _page, _perPage], _init) => {
|
|
232
|
-
requests.count += 1;
|
|
233
|
-
|
|
234
|
-
return [
|
|
235
|
-
{
|
|
236
|
-
namespace_id: "some-namespace-id",
|
|
237
|
-
namespace_name: "namespace-name",
|
|
238
|
-
created_on: "2022-06-29T14:30:08.16152Z",
|
|
239
|
-
created_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
240
|
-
modified_on: "2022-06-29T14:30:08.16152Z",
|
|
241
|
-
modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
242
|
-
},
|
|
243
|
-
];
|
|
244
|
-
}
|
|
245
|
-
);
|
|
246
|
-
return requests;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
it("should list all namespaces", async () => {
|
|
250
|
-
const requests = mockListRequest();
|
|
251
|
-
await runWrangler("worker-namespace list");
|
|
252
|
-
expect(requests.count).toBe(1);
|
|
253
|
-
expect(std.out).toMatchInlineSnapshot(`
|
|
254
|
-
"[
|
|
255
|
-
{
|
|
256
|
-
namespace_id: 'some-namespace-id',
|
|
257
|
-
namespace_name: 'namespace-name',
|
|
258
|
-
created_on: '2022-06-29T14:30:08.16152Z',
|
|
259
|
-
created_by: '1fc1df98cc4420fe00367c3ab68c1639',
|
|
260
|
-
modified_on: '2022-06-29T14:30:08.16152Z',
|
|
261
|
-
modified_by: '1fc1df98cc4420fe00367c3ab68c1639'
|
|
262
|
-
}
|
|
263
|
-
]"
|
|
264
|
-
`);
|
|
265
|
-
});
|
|
266
|
-
});
|
|
267
|
-
|
|
268
|
-
describe("rename namespace", () => {
|
|
269
|
-
function mockRenameRequest(expectedName: string) {
|
|
270
|
-
const requests = { count: 0 };
|
|
271
|
-
setMockResponse(
|
|
272
|
-
"/accounts/:accountId/workers/dispatch/namespaces/:namespaceName",
|
|
273
|
-
([_url, _, namespaceName], init) => {
|
|
274
|
-
requests.count += 1;
|
|
275
|
-
|
|
276
|
-
expect(init.method).toEqual("PUT");
|
|
277
|
-
expect(namespaceName).toEqual(expectedName);
|
|
278
|
-
|
|
279
|
-
return {
|
|
280
|
-
namespace_id: "some-namespace-id",
|
|
281
|
-
namespace_name: "namespace-name",
|
|
282
|
-
created_on: "2022-06-29T14:30:08.16152Z",
|
|
283
|
-
created_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
284
|
-
modified_on: "2022-06-29T14:30:08.16152Z",
|
|
285
|
-
modified_by: "1fc1df98cc4420fe00367c3ab68c1639",
|
|
286
|
-
};
|
|
287
|
-
}
|
|
288
|
-
);
|
|
289
|
-
return requests;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
it("should display help for rename", async () => {
|
|
293
|
-
await expect(
|
|
294
|
-
runWrangler("worker-namespace rename")
|
|
295
|
-
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
296
|
-
`"Not enough non-option arguments: got 0, need at least 2"`
|
|
297
|
-
);
|
|
298
|
-
|
|
299
|
-
expect(std.out).toMatchInlineSnapshot(`
|
|
300
|
-
"
|
|
301
|
-
wrangler worker-namespace rename <old-name> <new-name>
|
|
302
|
-
|
|
303
|
-
Rename a Worker namespace
|
|
304
|
-
|
|
305
|
-
Positionals:
|
|
306
|
-
old-name Name of the Worker namespace [string] [required]
|
|
307
|
-
new-name New name of the Worker namespace [string] [required]
|
|
308
|
-
|
|
309
|
-
Flags:
|
|
310
|
-
-c, --config Path to .toml configuration file [string]
|
|
311
|
-
-h, --help Show help [boolean]
|
|
312
|
-
-v, --version Show version number [boolean]"
|
|
313
|
-
`);
|
|
314
|
-
});
|
|
315
|
-
|
|
316
|
-
it("should attempt to rename the given namespace", async () => {
|
|
317
|
-
const namespaceName = "my-namespace";
|
|
318
|
-
const newName = "new-namespace";
|
|
319
|
-
const requests = mockRenameRequest(namespaceName);
|
|
320
|
-
await runWrangler(`worker-namespace rename ${namespaceName} ${newName}`);
|
|
321
|
-
expect(requests.count).toBe(1);
|
|
322
|
-
expect(std.out).toMatchInlineSnapshot(
|
|
323
|
-
`"Renamed Worker namespace \\"my-namespace\\" to \\"new-namespace\\""`
|
|
324
|
-
);
|
|
325
|
-
});
|
|
326
|
-
});
|
|
327
|
-
});
|
package/src/abort.d.ts
DELETED
package/src/api/dev.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { startDev } from "../dev";
|
|
2
|
-
import { logger } from "../logger";
|
|
3
|
-
|
|
4
|
-
import type { EnablePagesAssetsServiceBindingOptions } from "../miniflare-cli";
|
|
5
|
-
import type { RequestInit, Response } from "undici";
|
|
6
|
-
|
|
7
|
-
interface DevOptions {
|
|
8
|
-
env?: string;
|
|
9
|
-
ip?: string;
|
|
10
|
-
port?: number;
|
|
11
|
-
localProtocol?: "http" | "https";
|
|
12
|
-
assets?: string;
|
|
13
|
-
site?: string;
|
|
14
|
-
siteInclude?: string[];
|
|
15
|
-
siteExclude?: string[];
|
|
16
|
-
nodeCompat?: boolean;
|
|
17
|
-
compatibilityDate?: string;
|
|
18
|
-
experimentalEnableLocalPersistence?: boolean;
|
|
19
|
-
liveReload?: boolean;
|
|
20
|
-
watch?: boolean;
|
|
21
|
-
vars: {
|
|
22
|
-
[key: string]: unknown;
|
|
23
|
-
};
|
|
24
|
-
kv?: {
|
|
25
|
-
binding: string;
|
|
26
|
-
id: string;
|
|
27
|
-
preview_id?: string;
|
|
28
|
-
}[];
|
|
29
|
-
durableObjects?: {
|
|
30
|
-
name: string;
|
|
31
|
-
class_name: string;
|
|
32
|
-
script_name?: string | undefined;
|
|
33
|
-
environment?: string | undefined;
|
|
34
|
-
}[];
|
|
35
|
-
showInteractiveDevSession?: boolean;
|
|
36
|
-
logLevel?: "none" | "error" | "log" | "warn" | "debug";
|
|
37
|
-
logPrefix?: string;
|
|
38
|
-
inspect?: boolean;
|
|
39
|
-
forceLocal?: boolean;
|
|
40
|
-
enablePagesAssetsServiceBinding?: EnablePagesAssetsServiceBindingOptions;
|
|
41
|
-
_?: (string | number)[]; //yargs wants this
|
|
42
|
-
$0?: string; //yargs wants this
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* unstable_dev starts a wrangler dev server, and returns a promise that resolves with utility functions to interact with it.
|
|
46
|
-
* @param {string} script
|
|
47
|
-
* @param {DevOptions} options
|
|
48
|
-
*/
|
|
49
|
-
export async function unstable_dev(
|
|
50
|
-
script: string,
|
|
51
|
-
options: DevOptions,
|
|
52
|
-
disableExperimentalWarning?: boolean
|
|
53
|
-
) {
|
|
54
|
-
if (!disableExperimentalWarning) {
|
|
55
|
-
logger.warn(
|
|
56
|
-
`unstable_dev() is experimental\nunstable_dev()'s behaviour will likely change in future releases`
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return new Promise<{
|
|
61
|
-
stop: () => void;
|
|
62
|
-
fetch: (init?: RequestInit) => Promise<Response | undefined>;
|
|
63
|
-
waitUntilExit: () => Promise<void>;
|
|
64
|
-
}>((resolve) => {
|
|
65
|
-
//lmao
|
|
66
|
-
return new Promise<Awaited<ReturnType<typeof startDev>>>((ready) => {
|
|
67
|
-
const devServer = startDev({
|
|
68
|
-
script: script,
|
|
69
|
-
inspect: false,
|
|
70
|
-
logLevel: "none",
|
|
71
|
-
showInteractiveDevSession: false,
|
|
72
|
-
_: [],
|
|
73
|
-
$0: "",
|
|
74
|
-
...options,
|
|
75
|
-
local: true,
|
|
76
|
-
onReady: () => ready(devServer),
|
|
77
|
-
});
|
|
78
|
-
}).then((devServer) => {
|
|
79
|
-
resolve({
|
|
80
|
-
stop: devServer.stop,
|
|
81
|
-
fetch: devServer.fetch,
|
|
82
|
-
waitUntilExit: devServer.devReactElement.waitUntilExit,
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
}
|
package/src/api/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { unstable_dev } from "./dev";
|
package/src/bundle-reporter.tsx
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Blob } from "node:buffer";
|
|
2
|
-
import { gzipSync } from "node:zlib";
|
|
3
|
-
import { logger } from "./logger";
|
|
4
|
-
import type { CfModule } from "./worker";
|
|
5
|
-
|
|
6
|
-
async function getSize(modules: CfModule[]) {
|
|
7
|
-
const gzipSize = gzipSync(
|
|
8
|
-
await new Blob(modules.map((file) => file.content)).arrayBuffer()
|
|
9
|
-
).byteLength;
|
|
10
|
-
const aggregateSize = new Blob(modules.map((file) => file.content)).size;
|
|
11
|
-
|
|
12
|
-
return { size: aggregateSize, gzipSize };
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export async function printBundleSize(
|
|
16
|
-
main: {
|
|
17
|
-
name: string;
|
|
18
|
-
content: string;
|
|
19
|
-
},
|
|
20
|
-
modules: CfModule[]
|
|
21
|
-
) {
|
|
22
|
-
const { size, gzipSize } = await getSize([...modules, main]);
|
|
23
|
-
|
|
24
|
-
const bundleReport = `${(size / 1024).toFixed(2)} KiB / gzip: ${(
|
|
25
|
-
gzipSize / 1024
|
|
26
|
-
).toFixed(2)} KiB`;
|
|
27
|
-
|
|
28
|
-
logger.log(`Total Upload: ${bundleReport}`);
|
|
29
|
-
}
|
package/src/bundle.ts
DELETED
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
import assert from "node:assert";
|
|
2
|
-
import * as fs from "node:fs";
|
|
3
|
-
import { builtinModules } from "node:module";
|
|
4
|
-
import * as path from "node:path";
|
|
5
|
-
import NodeGlobalsPolyfills from "@esbuild-plugins/node-globals-polyfill";
|
|
6
|
-
import NodeModulesPolyfills from "@esbuild-plugins/node-modules-polyfill";
|
|
7
|
-
import * as esbuild from "esbuild";
|
|
8
|
-
import createModuleCollector from "./module-collection";
|
|
9
|
-
import type { Config } from "./config";
|
|
10
|
-
import type { Entry } from "./entry";
|
|
11
|
-
import type { CfModule } from "./worker";
|
|
12
|
-
|
|
13
|
-
type BundleResult = {
|
|
14
|
-
modules: CfModule[];
|
|
15
|
-
resolvedEntryPointPath: string;
|
|
16
|
-
bundleType: "esm" | "commonjs";
|
|
17
|
-
stop: (() => void) | undefined;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Searches for any uses of node's builtin modules, and throws an error if it
|
|
22
|
-
* finds anything. This plugin is only used when nodeCompat is not enabled.
|
|
23
|
-
* Supports both regular node builtins, and the new "node:<MODULE>" format.
|
|
24
|
-
*/
|
|
25
|
-
const checkForNodeBuiltinsPlugin = {
|
|
26
|
-
name: "checkForNodeBuiltins",
|
|
27
|
-
setup(build: esbuild.PluginBuild) {
|
|
28
|
-
build.onResolve(
|
|
29
|
-
{
|
|
30
|
-
filter: new RegExp(
|
|
31
|
-
"^(" +
|
|
32
|
-
builtinModules.join("|") +
|
|
33
|
-
"|" +
|
|
34
|
-
builtinModules.map((module) => "node:" + module).join("|") +
|
|
35
|
-
")$"
|
|
36
|
-
),
|
|
37
|
-
},
|
|
38
|
-
() => {
|
|
39
|
-
throw new Error(
|
|
40
|
-
`Detected a Node builtin module import while Node compatibility is disabled.\nAdd node_compat = true to your wrangler.toml file to enable Node compatibility.`
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
);
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Generate a bundle for the worker identified by the arguments passed in.
|
|
49
|
-
*/
|
|
50
|
-
export async function bundleWorker(
|
|
51
|
-
entry: Entry,
|
|
52
|
-
destination: string,
|
|
53
|
-
options: {
|
|
54
|
-
serveAssetsFromWorker: boolean;
|
|
55
|
-
jsxFactory: string | undefined;
|
|
56
|
-
jsxFragment: string | undefined;
|
|
57
|
-
rules: Config["rules"];
|
|
58
|
-
watch?: esbuild.WatchMode;
|
|
59
|
-
tsconfig: string | undefined;
|
|
60
|
-
minify: boolean | undefined;
|
|
61
|
-
nodeCompat: boolean | undefined;
|
|
62
|
-
define: Config["define"];
|
|
63
|
-
checkFetch: boolean;
|
|
64
|
-
}
|
|
65
|
-
): Promise<BundleResult> {
|
|
66
|
-
const {
|
|
67
|
-
serveAssetsFromWorker,
|
|
68
|
-
jsxFactory,
|
|
69
|
-
jsxFragment,
|
|
70
|
-
rules,
|
|
71
|
-
watch,
|
|
72
|
-
tsconfig,
|
|
73
|
-
minify,
|
|
74
|
-
nodeCompat,
|
|
75
|
-
checkFetch,
|
|
76
|
-
} = options;
|
|
77
|
-
const entryDirectory = path.dirname(entry.file);
|
|
78
|
-
const moduleCollector = createModuleCollector({
|
|
79
|
-
wrangler1xlegacyModuleReferences: {
|
|
80
|
-
rootDirectory: entryDirectory,
|
|
81
|
-
fileNames: new Set(
|
|
82
|
-
fs
|
|
83
|
-
.readdirSync(entryDirectory, { withFileTypes: true })
|
|
84
|
-
.filter(
|
|
85
|
-
(dirEntry) =>
|
|
86
|
-
dirEntry.isFile() && dirEntry.name !== path.basename(entry.file)
|
|
87
|
-
)
|
|
88
|
-
.map((dirEnt) => dirEnt.name)
|
|
89
|
-
),
|
|
90
|
-
},
|
|
91
|
-
format: entry.format,
|
|
92
|
-
rules,
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
// In dev, we want to patch `fetch()` with a special version that looks
|
|
96
|
-
// for bad usages and can warn the user about them; so we inject
|
|
97
|
-
// `checked-fetch.js` to do so. However, with yarn 3 style pnp,
|
|
98
|
-
// we need to extract that file to an accessible place before injecting
|
|
99
|
-
// it in, hence this code here.
|
|
100
|
-
const checkedFetchFileToInject = path.join(
|
|
101
|
-
destination,
|
|
102
|
-
"--temp-wrangler-files--",
|
|
103
|
-
"checked-fetch.js"
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
if (checkFetch) {
|
|
107
|
-
fs.mkdirSync(path.join(destination, "--temp-wrangler-files--"), {
|
|
108
|
-
recursive: true,
|
|
109
|
-
});
|
|
110
|
-
fs.writeFileSync(
|
|
111
|
-
checkedFetchFileToInject,
|
|
112
|
-
fs.readFileSync(path.resolve(__dirname, "../templates/checked-fetch.js"))
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
// TODO: we need to have similar logic like above for other files
|
|
116
|
-
// like the static asset facade, and other middleware that we
|
|
117
|
-
// plan on injecting/referencing.
|
|
118
|
-
|
|
119
|
-
const result = await esbuild.build({
|
|
120
|
-
...getEntryPoint(entry.file, serveAssetsFromWorker),
|
|
121
|
-
bundle: true,
|
|
122
|
-
absWorkingDir: entry.directory,
|
|
123
|
-
outdir: destination,
|
|
124
|
-
inject: checkFetch ? [checkedFetchFileToInject] : [],
|
|
125
|
-
external: ["__STATIC_CONTENT_MANIFEST"],
|
|
126
|
-
format: entry.format === "modules" ? "esm" : "iife",
|
|
127
|
-
target: "es2020",
|
|
128
|
-
sourcemap: true,
|
|
129
|
-
minify,
|
|
130
|
-
metafile: true,
|
|
131
|
-
conditions: ["worker", "browser"],
|
|
132
|
-
...(process.env.NODE_ENV && {
|
|
133
|
-
define: {
|
|
134
|
-
// use process.env["NODE_ENV" + ""] so that esbuild doesn't replace it
|
|
135
|
-
// when we do a build of wrangler. (re: https://github.com/cloudflare/wrangler2/issues/1477)
|
|
136
|
-
"process.env.NODE_ENV": `"${process.env["NODE_ENV" + ""]}"`,
|
|
137
|
-
...(nodeCompat ? { global: "globalThis" } : {}),
|
|
138
|
-
...(checkFetch ? { fetch: "checkedFetch" } : {}),
|
|
139
|
-
...options.define,
|
|
140
|
-
},
|
|
141
|
-
}),
|
|
142
|
-
loader: {
|
|
143
|
-
".js": "jsx",
|
|
144
|
-
".mjs": "jsx",
|
|
145
|
-
".cjs": "jsx",
|
|
146
|
-
},
|
|
147
|
-
plugins: [
|
|
148
|
-
moduleCollector.plugin,
|
|
149
|
-
...(nodeCompat
|
|
150
|
-
? [NodeGlobalsPolyfills({ buffer: true }), NodeModulesPolyfills()]
|
|
151
|
-
: // we use checkForNodeBuiltinsPlugin to throw a nicer error
|
|
152
|
-
// if we find node builtins when nodeCompat isn't turned on
|
|
153
|
-
[checkForNodeBuiltinsPlugin]),
|
|
154
|
-
],
|
|
155
|
-
...(jsxFactory && { jsxFactory }),
|
|
156
|
-
...(jsxFragment && { jsxFragment }),
|
|
157
|
-
...(tsconfig && { tsconfig }),
|
|
158
|
-
watch,
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
const entryPointOutputs = Object.entries(result.metafile.outputs).filter(
|
|
162
|
-
([_path, output]) => output.entryPoint !== undefined
|
|
163
|
-
);
|
|
164
|
-
assert(
|
|
165
|
-
entryPointOutputs.length > 0,
|
|
166
|
-
`Cannot find entry-point "${entry.file}" in generated bundle.` +
|
|
167
|
-
listEntryPoints(entryPointOutputs)
|
|
168
|
-
);
|
|
169
|
-
assert(
|
|
170
|
-
entryPointOutputs.length < 2,
|
|
171
|
-
"More than one entry-point found for generated bundle." +
|
|
172
|
-
listEntryPoints(entryPointOutputs)
|
|
173
|
-
);
|
|
174
|
-
|
|
175
|
-
const entryPointExports = entryPointOutputs[0][1].exports;
|
|
176
|
-
const bundleType = entryPointExports.length > 0 ? "esm" : "commonjs";
|
|
177
|
-
|
|
178
|
-
return {
|
|
179
|
-
modules: moduleCollector.modules,
|
|
180
|
-
resolvedEntryPointPath: path.resolve(
|
|
181
|
-
entry.directory,
|
|
182
|
-
entryPointOutputs[0][0]
|
|
183
|
-
),
|
|
184
|
-
bundleType,
|
|
185
|
-
stop: result.stop,
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
type EntryPoint = { stdin: esbuild.StdinOptions } | { entryPoints: string[] };
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Create an object that describes the entry point for esbuild.
|
|
193
|
-
*
|
|
194
|
-
* If we are using the experimental asset handling, then the entry point is
|
|
195
|
-
* actually a shim worker that will either return an asset from a KV store,
|
|
196
|
-
* or delegate to the actual worker.
|
|
197
|
-
*/
|
|
198
|
-
function getEntryPoint(
|
|
199
|
-
entryFile: string,
|
|
200
|
-
serveAssetsFromWorker: boolean
|
|
201
|
-
): EntryPoint {
|
|
202
|
-
if (serveAssetsFromWorker) {
|
|
203
|
-
return {
|
|
204
|
-
stdin: {
|
|
205
|
-
contents: fs
|
|
206
|
-
.readFileSync(
|
|
207
|
-
path.join(__dirname, "../templates/static-asset-facade.js"),
|
|
208
|
-
"utf8"
|
|
209
|
-
)
|
|
210
|
-
// on windows, escape backslashes in the path (`\`)
|
|
211
|
-
.replace("__ENTRY_POINT__", entryFile.replaceAll("\\", "\\\\"))
|
|
212
|
-
.replace(
|
|
213
|
-
"__KV_ASSET_HANDLER__",
|
|
214
|
-
path
|
|
215
|
-
.join(__dirname, "../kv-asset-handler.js")
|
|
216
|
-
.replaceAll("\\", "\\\\")
|
|
217
|
-
),
|
|
218
|
-
sourcefile: "static-asset-facade.js",
|
|
219
|
-
resolveDir: path.dirname(entryFile),
|
|
220
|
-
},
|
|
221
|
-
};
|
|
222
|
-
} else {
|
|
223
|
-
return { entryPoints: [entryFile] };
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Generate a string that describes the entry-points that were identified by esbuild.
|
|
229
|
-
*/
|
|
230
|
-
function listEntryPoints(
|
|
231
|
-
outputs: [string, ValueOf<esbuild.Metafile["outputs"]>][]
|
|
232
|
-
): string {
|
|
233
|
-
return outputs.map(([_input, output]) => output.entryPoint).join("\n");
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
type ValueOf<T> = T[keyof T];
|