wrangler 0.0.0-e72a5794 → 0.0.0-e739b7fe

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/bin/wrangler.js CHANGED
@@ -76,6 +76,11 @@ Consider using a Node.js version manager such as https://volta.sh/ or https://gi
76
76
  if (process.send) {
77
77
  process.send(message);
78
78
  }
79
+ })
80
+ .on("disconnect", () => {
81
+ if (process.disconnect) {
82
+ process.disconnect();
83
+ }
79
84
  });
80
85
  }
81
86
 
package/package.json CHANGED
@@ -1,196 +1,227 @@
1
1
  {
2
- "name": "wrangler",
3
- "version": "0.0.0-e72a5794",
4
- "description": "Command-line interface for all things Cloudflare Workers",
5
- "keywords": [
6
- "wrangler",
7
- "cloudflare",
8
- "workers",
9
- "cloudflare workers",
10
- "edge",
11
- "compute",
12
- "serverless",
13
- "serverless application",
14
- "serverless module",
15
- "wasm",
16
- "web",
17
- "assembly",
18
- "webassembly",
19
- "rust",
20
- "emscripten",
21
- "typescript",
22
- "graphql",
23
- "router",
24
- "http",
25
- "cli"
26
- ],
27
- "homepage": "https://github.com/cloudflare/workers-sdk#readme",
28
- "bugs": {
29
- "url": "https://github.com/cloudflare/workers-sdk/issues"
30
- },
31
- "repository": {
32
- "type": "git",
33
- "url": "https://github.com/cloudflare/workers-sdk.git",
34
- "directory": "packages/wrangler"
35
- },
36
- "license": "MIT OR Apache-2.0",
37
- "author": "wrangler@cloudflare.com",
38
- "main": "wrangler-dist/cli.js",
39
- "types": "wrangler-dist/cli.d.ts",
40
- "bin": {
41
- "wrangler": "./bin/wrangler.js",
42
- "wrangler2": "./bin/wrangler.js"
43
- },
44
- "files": [
45
- "bin",
46
- "miniflare-dist",
47
- "wrangler-dist",
48
- "templates",
49
- "kv-asset-handler.js",
50
- "Cloudflare_CA.pem"
51
- ],
52
- "scripts": {
53
- "assert-git-version": "node -r esbuild-register scripts/assert-git-version.ts",
54
- "build": "npm run clean && npm run bundle && npm run emit-types",
55
- "bundle": "node -r esbuild-register scripts/bundle.ts",
56
- "check:lint": "eslint .",
57
- "check:type": "tsc",
58
- "clean": "rimraf wrangler-dist miniflare-dist emitted-types",
59
- "dev": "npm run clean && concurrently -c black,blue --kill-others-on-fail false 'npm run bundle -- --watch' 'npm run check:type -- --watch --preserveWatchOutput'",
60
- "emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
61
- "prepublishOnly": "SOURCEMAPS=false npm run build",
62
- "start": "npm run bundle && cross-env NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
63
- "test": "npm run assert-git-version && jest",
64
- "test:ci": "npm run test -- --coverage",
65
- "test:debug": "npm run test -- --silent=false --verbose=true",
66
- "test:e2e": "vitest --test-timeout 240000 --single-thread --dir ./e2e run",
67
- "test:watch": "npm run test -- --runInBand --testTimeout=50000 --watch",
68
- "type:tests": "tsc -p ./src/__tests__/tsconfig.json && tsc -p ./e2e/tsconfig.json"
69
- },
70
- "jest": {
71
- "coverageReporters": [
72
- "json",
73
- "html",
74
- "text",
75
- "cobertura"
76
- ],
77
- "moduleNameMapper": {
78
- "clipboardy": "<rootDir>/src/__tests__/helpers/clipboardy-mock.js",
79
- "miniflare/cli": "<rootDir>/../../node_modules/miniflare/dist/src/cli.js"
80
- },
81
- "restoreMocks": true,
82
- "setupFilesAfterEnv": [
83
- "<rootDir>/src/__tests__/jest.setup.ts"
84
- ],
85
- "testRegex": "src/__tests__/.*\\.(test|spec)\\.[jt]sx?$",
86
- "testTimeout": 50000,
87
- "transform": {
88
- "^.+\\.c?(t|j)sx?$": [
89
- "esbuild-jest",
90
- {
91
- "sourcemap": true
92
- }
93
- ]
94
- },
95
- "transformIgnorePatterns": [
96
- "node_modules/(?!find-up|locate-path|p-locate|p-limit|p-timeout|p-queue|yocto-queue|path-exists|execa|strip-final-newline|npm-run-path|path-key|onetime|mimic-fn|human-signals|is-stream|get-port|supports-color|pretty-bytes|npx-import)"
97
- ]
98
- },
99
- "dependencies": {
100
- "@cloudflare/kv-asset-handler": "^0.2.0",
101
- "@esbuild-plugins/node-globals-polyfill": "^0.1.1",
102
- "@esbuild-plugins/node-modules-polyfill": "^0.1.4",
103
- "blake3-wasm": "^2.1.5",
104
- "chokidar": "^3.5.3",
105
- "esbuild": "0.16.3",
106
- "miniflare": "3.20230717.0",
107
- "nanoid": "^3.3.3",
108
- "path-to-regexp": "^6.2.0",
109
- "selfsigned": "^2.0.1",
110
- "source-map": "^0.7.4",
111
- "xxhash-wasm": "^1.0.1"
112
- },
113
- "devDependencies": {
114
- "@cloudflare/eslint-config-worker": "*",
115
- "@cloudflare/types": "^6.18.4",
116
- "@cloudflare/workers-tsconfig": "*",
117
- "@cloudflare/workers-types": "^4.20230717.0",
118
- "@iarna/toml": "^3.0.0",
119
- "@microsoft/api-extractor": "^7.28.3",
120
- "@types/better-sqlite3": "^7.6.0",
121
- "@types/busboy": "^1.5.0",
122
- "@types/command-exists": "^1.2.0",
123
- "@types/express": "^4.17.13",
124
- "@types/glob-to-regexp": "0.4.1",
125
- "@types/javascript-time-ago": "^2.0.3",
126
- "@types/mime": "^2.0.3",
127
- "@types/prompts": "^2.0.14",
128
- "@types/react": "^17.0.37",
129
- "@types/serve-static": "^1.13.10",
130
- "@types/signal-exit": "^3.0.1",
131
- "@types/supports-color": "^8.1.1",
132
- "@types/ws": "^8.5.3",
133
- "@types/yargs": "^17.0.10",
134
- "@webcontainer/env": "^1.1.0",
135
- "body-parser": "^1.20.0",
136
- "chalk": "^2.4.2",
137
- "cli-table3": "^0.6.3",
138
- "clipboardy": "^3.0.0",
139
- "cmd-shim": "^4.1.0",
140
- "command-exists": "^1.2.9",
141
- "concurrently": "^7.2.2",
142
- "devtools-protocol": "^0.0.955664",
143
- "dotenv": "^16.0.0",
144
- "execa": "^6.1.0",
145
- "express": "^4.18.1",
146
- "finalhandler": "^1.2.0",
147
- "find-up": "^6.3.0",
148
- "get-port": "^6.1.2",
149
- "glob-to-regexp": "0.4.1",
150
- "http-terminator": "^3.2.0",
151
- "ignore": "^5.2.0",
152
- "ink": "^3.2.0",
153
- "ink-select-input": "^4.2.1",
154
- "ink-spinner": "^4.0.3",
155
- "ink-table": "^3.0.0",
156
- "ink-testing-library": "^2.1.0",
157
- "ink-text-input": "^4.0.3",
158
- "is-ci": "^3.0.1",
159
- "javascript-time-ago": "^2.5.4",
160
- "jest-fetch-mock": "^3.0.3",
161
- "jest-websocket-mock": "^2.3.0",
162
- "mime": "^3.0.0",
163
- "minimatch": "^5.1.0",
164
- "msw": "^0.49.1",
165
- "npx-import": "^1.1.3",
166
- "open": "^8.4.0",
167
- "p-queue": "^7.2.0",
168
- "pretty-bytes": "^6.0.0",
169
- "prompts": "^2.4.2",
170
- "react": "^17.0.2",
171
- "react-error-boundary": "^3.1.4",
172
- "remove-accents-esm": "^0.0.1",
173
- "semiver": "^1.1.0",
174
- "serve-static": "^1.15.0",
175
- "shellac": "^0.8.0",
176
- "signal-exit": "^3.0.7",
177
- "strip-ansi": "^7.0.1",
178
- "supports-color": "^9.2.2",
179
- "timeago.js": "^4.0.2",
180
- "tmp-promise": "^3.0.3",
181
- "ts-dedent": "^2.2.0",
182
- "undici": "5.20.0",
183
- "update-check": "^1.5.4",
184
- "vitest": "^0.31.0",
185
- "ws": "^8.5.0",
186
- "xdg-app-paths": "^7.3.0",
187
- "yargs": "^17.4.1",
188
- "yoga-layout": "file:../../vendor/yoga-layout-2.0.0-beta.1.tgz"
189
- },
190
- "optionalDependencies": {
191
- "fsevents": "~2.3.2"
192
- },
193
- "engines": {
194
- "node": ">=16.13.0"
195
- }
196
- }
2
+ "name": "wrangler",
3
+ "version": "0.0.0-e739b7fe",
4
+ "description": "Command-line interface for all things Cloudflare Workers",
5
+ "keywords": [
6
+ "wrangler",
7
+ "cloudflare",
8
+ "workers",
9
+ "cloudflare workers",
10
+ "edge",
11
+ "compute",
12
+ "serverless",
13
+ "serverless application",
14
+ "serverless module",
15
+ "wasm",
16
+ "web",
17
+ "assembly",
18
+ "webassembly",
19
+ "rust",
20
+ "emscripten",
21
+ "typescript",
22
+ "graphql",
23
+ "router",
24
+ "http",
25
+ "cli"
26
+ ],
27
+ "homepage": "https://github.com/cloudflare/workers-sdk#readme",
28
+ "bugs": {
29
+ "url": "https://github.com/cloudflare/workers-sdk/issues"
30
+ },
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/cloudflare/workers-sdk.git",
34
+ "directory": "packages/wrangler"
35
+ },
36
+ "license": "MIT OR Apache-2.0",
37
+ "author": "wrangler@cloudflare.com",
38
+ "main": "wrangler-dist/cli.js",
39
+ "types": "wrangler-dist/cli.d.ts",
40
+ "bin": {
41
+ "wrangler": "./bin/wrangler.js",
42
+ "wrangler2": "./bin/wrangler.js"
43
+ },
44
+ "files": [
45
+ "bin",
46
+ "miniflare-dist",
47
+ "wrangler-dist",
48
+ "templates",
49
+ "kv-asset-handler.js",
50
+ "Cloudflare_CA.pem"
51
+ ],
52
+ "jest": {
53
+ "coverageReporters": [
54
+ "json",
55
+ "html",
56
+ "text",
57
+ "cobertura"
58
+ ],
59
+ "moduleNameMapper": {
60
+ "clipboardy": "<rootDir>/src/__tests__/helpers/clipboardy-mock.js",
61
+ "miniflare/cli": "<rootDir>/../../node_modules/miniflare/dist/src/cli.js"
62
+ },
63
+ "restoreMocks": true,
64
+ "setupFilesAfterEnv": [
65
+ "<rootDir>/src/__tests__/jest.setup.ts"
66
+ ],
67
+ "testRegex": "src/__tests__/.*\\.(test|spec)\\.[jt]sx?$",
68
+ "testTimeout": 50000,
69
+ "transform": {
70
+ "^.+\\.c?(t|j)sx?$": [
71
+ "esbuild-jest",
72
+ {
73
+ "sourcemap": true
74
+ }
75
+ ]
76
+ },
77
+ "transformIgnorePatterns": [
78
+ "node_modules/.pnpm/(?!find-up|locate-path|p-locate|p-limit|p-timeout|p-queue|yocto-queue|path-exists|execa|strip-final-newline|npm-run-path|path-key|onetime|mimic-fn|human-signals|is-stream|get-port|supports-color|pretty-bytes|strip-ansi|ansi-regex)"
79
+ ],
80
+ "snapshotFormat": {
81
+ "escapeString": true,
82
+ "printBasicPrototype": true
83
+ }
84
+ },
85
+ "dependencies": {
86
+ "@esbuild-plugins/node-globals-polyfill": "^0.2.3",
87
+ "@esbuild-plugins/node-modules-polyfill": "^0.2.2",
88
+ "blake3-wasm": "^2.1.5",
89
+ "chokidar": "^3.5.3",
90
+ "esbuild": "0.17.19",
91
+ "nanoid": "^3.3.3",
92
+ "path-to-regexp": "^6.2.0",
93
+ "resolve": "^1.22.8",
94
+ "resolve.exports": "^2.0.2",
95
+ "selfsigned": "^2.0.1",
96
+ "source-map": "0.6.1",
97
+ "xxhash-wasm": "^1.0.1",
98
+ "@cloudflare/kv-asset-handler": "0.3.1",
99
+ "miniflare": "3.20240314.0"
100
+ },
101
+ "devDependencies": {
102
+ "@cloudflare/ai": "^1.0.35",
103
+ "@cloudflare/eslint-config-worker": "*",
104
+ "@cloudflare/types": "^6.18.4",
105
+ "@cloudflare/workers-types": "^4.20230914.0",
106
+ "@cspotcode/source-map-support": "0.8.1",
107
+ "@iarna/toml": "^3.0.0",
108
+ "@microsoft/api-extractor": "^7.28.3",
109
+ "@sentry/node": "^7.86.0",
110
+ "@sentry/types": "^7.86.0",
111
+ "@sentry/utils": "^7.86.0",
112
+ "@types/body-parser": "^1.19.2",
113
+ "@types/busboy": "^1.5.0",
114
+ "@types/command-exists": "^1.2.0",
115
+ "@types/express": "^4.17.13",
116
+ "@types/glob-to-regexp": "0.4.1",
117
+ "@types/is-ci": "^3.0.0",
118
+ "@types/javascript-time-ago": "^2.0.3",
119
+ "@types/jest": "^29.5.5",
120
+ "@types/mime": "^2.0.3",
121
+ "@types/minimatch": "^5.1.2",
122
+ "@types/prompts": "^2.0.14",
123
+ "@types/react": "^17.0.37",
124
+ "@types/resolve": "^1.20.6",
125
+ "@types/serve-static": "^1.13.10",
126
+ "@types/shell-quote": "^1.7.2",
127
+ "@types/signal-exit": "^3.0.1",
128
+ "@types/source-map-support": "^0.5.7",
129
+ "@types/supports-color": "^8.1.1",
130
+ "@types/ws": "^8.5.3",
131
+ "@types/yargs": "^17.0.10",
132
+ "@webcontainer/env": "^1.1.0",
133
+ "body-parser": "^1.20.0",
134
+ "chalk": "^2.4.2",
135
+ "cli-table3": "^0.6.3",
136
+ "clipboardy": "^3.0.0",
137
+ "cmd-shim": "^4.1.0",
138
+ "command-exists": "^1.2.9",
139
+ "concurrently": "^7.2.2",
140
+ "devtools-protocol": "^0.0.955664",
141
+ "dotenv": "^16.0.0",
142
+ "esbuild-jest": "0.5.0",
143
+ "execa": "^6.1.0",
144
+ "express": "^4.18.1",
145
+ "finalhandler": "^1.2.0",
146
+ "find-up": "^6.3.0",
147
+ "get-port": "^6.1.2",
148
+ "glob-to-regexp": "0.4.1",
149
+ "http-terminator": "^3.2.0",
150
+ "https-proxy-agent": "7.0.2",
151
+ "ignore": "^5.2.0",
152
+ "ink": "^3.2.0",
153
+ "ink-select-input": "^4.2.1",
154
+ "ink-spinner": "^4.0.3",
155
+ "ink-table": "^3.0.0",
156
+ "ink-testing-library": "^2.1.0",
157
+ "ink-text-input": "^4.0.3",
158
+ "is-ci": "^3.0.1",
159
+ "javascript-time-ago": "^2.5.4",
160
+ "jest": "^29.7.0",
161
+ "jest-fetch-mock": "^3.0.3",
162
+ "jest-websocket-mock": "^2.5.0",
163
+ "mime": "^3.0.0",
164
+ "minimatch": "^5.1.0",
165
+ "msw": "^0.49.1",
166
+ "open": "^8.4.0",
167
+ "p-queue": "^7.2.0",
168
+ "patch-console": "^1.0.0",
169
+ "pretty-bytes": "^6.0.0",
170
+ "prompts": "^2.4.2",
171
+ "react": "^17.0.2",
172
+ "react-error-boundary": "^3.1.4",
173
+ "remove-accents-esm": "^0.0.1",
174
+ "semiver": "^1.1.0",
175
+ "serve-static": "^1.15.0",
176
+ "shell-quote": "^1.8.1",
177
+ "shellac": "^0.8.0",
178
+ "signal-exit": "^3.0.7",
179
+ "strip-ansi": "^7.0.1",
180
+ "supports-color": "^9.2.2",
181
+ "timeago.js": "^4.0.2",
182
+ "ts-dedent": "^2.2.0",
183
+ "undici": "5.28.3",
184
+ "update-check": "^1.5.4",
185
+ "ws": "^8.5.0",
186
+ "xdg-app-paths": "^8.3.0",
187
+ "yargs": "^17.7.2",
188
+ "yoga-layout": "file:../../vendor/yoga-layout-2.0.0-beta.1.tgz",
189
+ "@cloudflare/cli": "1.1.1",
190
+ "@cloudflare/pages-shared": "^0.11.20",
191
+ "@cloudflare/workers-tsconfig": "0.0.0"
192
+ },
193
+ "optionalDependencies": {
194
+ "fsevents": "~2.3.2"
195
+ },
196
+ "peerDependencies": {
197
+ "@cloudflare/workers-types": "^4.20230914.0"
198
+ },
199
+ "peerDependenciesMeta": {
200
+ "@cloudflare/workers-types": {
201
+ "optional": true
202
+ }
203
+ },
204
+ "engines": {
205
+ "node": ">=16.17.0"
206
+ },
207
+ "workers-sdk": {
208
+ "prerelease": true
209
+ },
210
+ "scripts": {
211
+ "assert-git-version": "node -r esbuild-register scripts/assert-git-version.ts",
212
+ "build": "pnpm run clean && pnpm run bundle && pnpm run emit-types",
213
+ "bundle": "node -r esbuild-register scripts/bundle.ts",
214
+ "check:lint": "eslint .",
215
+ "check:type": "tsc",
216
+ "clean": "rimraf wrangler-dist miniflare-dist emitted-types",
217
+ "dev": "pnpm run clean && concurrently -c black,blue --kill-others-on-fail false \"pnpm run bundle --watch\" \"pnpm run check:type --watch --preserveWatchOutput\"",
218
+ "emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
219
+ "start": "pnpm run bundle && cross-env NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
220
+ "test": "pnpm run assert-git-version && jest",
221
+ "test:ci": "pnpm run test --coverage",
222
+ "test:debug": "pnpm run test --silent=false --verbose=true",
223
+ "test:e2e": "vitest -c ./e2e/vitest.config.ts",
224
+ "test:watch": "pnpm run test --testTimeout=50000 --watch",
225
+ "type:tests": "tsc -p ./src/__tests__/tsconfig.json && tsc -p ./e2e/tsconfig.json"
226
+ }
227
+ }
@@ -165,8 +165,3 @@ dist
165
165
  .yarn/build-state.yml
166
166
  .yarn/install-state.gz
167
167
  .pnp.\*
168
-
169
- # wrangler project
170
-
171
- .dev.vars
172
- .wrangler/
@@ -1,5 +1,5 @@
1
+ import { afterAll, beforeAll, describe, expect, it } from "vitest";
1
2
  import { unstable_dev } from "wrangler";
2
- import { describe, expect, it, beforeAll, afterAll } from "vitest";
3
3
 
4
4
  describe("Worker", () => {
5
5
  let worker;
@@ -1,6 +1,6 @@
1
+ import { afterAll, beforeAll, describe, expect, it } from "vitest";
1
2
  import { unstable_dev } from "wrangler";
2
3
  import type { UnstableDevWorker } from "wrangler";
3
- import { describe, expect, it, beforeAll, afterAll } from "vitest";
4
4
 
5
5
  describe("Worker", () => {
6
6
  let worker: UnstableDevWorker;
@@ -4,15 +4,14 @@
4
4
  // // through wrangler, or we can potentially let users directly add them as a sort
5
5
  // // of "plugin" system.
6
6
 
7
+ import worker from "__ENTRY_POINT__";
7
8
  import {
8
- Dispatcher,
9
- Middleware,
10
9
  __facade_invoke__,
11
10
  __facade_register__,
11
+ Dispatcher,
12
+ Middleware,
12
13
  } from "./common";
13
14
 
14
- import worker from "__ENTRY_POINT__";
15
-
16
15
  // We need to preserve all of the exports from the worker
17
16
  export * from "__ENTRY_POINT__";
18
17
 
@@ -1,12 +1,13 @@
1
1
  import {
2
+ __facade_invoke__,
3
+ __facade_register__,
4
+ __facade_registerInternal__,
2
5
  Awaitable,
3
6
  Dispatcher,
4
7
  IncomingRequest,
5
8
  Middleware,
6
- __facade_invoke__,
7
- __facade_register__,
8
- __facade_registerInternal__,
9
9
  } from "./common";
10
+
10
11
  export { __facade_register__, __facade_registerInternal__ };
11
12
 
12
13
  // Miniflare 2's `EventTarget` follows the spec and doesn't allow exceptions to
@@ -0,0 +1,19 @@
1
+ import type { Middleware } from "./common";
2
+
3
+ const drainBody: Middleware = async (request, env, _ctx, middlewareCtx) => {
4
+ try {
5
+ return await middlewareCtx.next(request, env);
6
+ } finally {
7
+ try {
8
+ if (request.body !== null && !request.bodyUsed) {
9
+ const reader = request.body.getReader();
10
+ while (!(await reader.read()).done) {}
11
+ }
12
+ } catch (e) {
13
+ console.error("Failed to drain the unused request body.", e);
14
+ }
15
+ }
16
+ };
17
+
18
+ export default drainBody;
19
+ export const wrap = undefined;
@@ -30,3 +30,4 @@ const jsonError: Middleware = async (request, env, _ctx, middlewareCtx) => {
30
30
  };
31
31
 
32
32
  export default jsonError;
33
+ export const wrap = undefined;
@@ -4,6 +4,42 @@
4
4
  import { workers } from "config:middleware/multiworker-dev";
5
5
  import type { WorkerRegistry } from "../../src/dev-registry";
6
6
 
7
+ class Fetcher {
8
+ #name: string;
9
+ #details: WorkerRegistry[string];
10
+ constructor(name: string, details: WorkerRegistry[string]) {
11
+ this.#name = name;
12
+ this.#details = details;
13
+ }
14
+
15
+ async fetch(...reqArgs: Parameters<Fetcher["fetch"]>) {
16
+ const reqFromArgs = new Request(...reqArgs);
17
+ if (this.#details.headers) {
18
+ for (const [key, value] of Object.entries(this.#details.headers)) {
19
+ // In remote mode, you need to add a couple of headers
20
+ // to make sure it's talking to the 'dev' preview session
21
+ // (much like wrangler dev already does via proxy.ts)
22
+ reqFromArgs.headers.set(key, value);
23
+ }
24
+ return (env[this.#name] as Fetcher).fetch(reqFromArgs);
25
+ }
26
+
27
+ const url = new URL(reqFromArgs.url);
28
+ if (this.#details.protocol !== undefined) {
29
+ url.protocol = this.#details.protocol;
30
+ }
31
+ if (this.#details.host !== undefined) {
32
+ url.host = this.#details.host;
33
+ }
34
+ if (this.#details.port !== undefined) {
35
+ url.port = this.#details.port.toString();
36
+ }
37
+
38
+ const request = new Request(url.toString(), reqFromArgs);
39
+ return fetch(request);
40
+ }
41
+ }
42
+
7
43
  export function wrap(env: Record<string, unknown>) {
8
44
  const facadeEnv = { ...env };
9
45
  // For every Worker definition that's available,
@@ -14,34 +50,7 @@ export function wrap(env: Record<string, unknown>) {
14
50
 
15
51
  for (const [name, details] of Object.entries(workers as WorkerRegistry)) {
16
52
  if (details) {
17
- facadeEnv[name] = {
18
- async fetch(...reqArgs: Parameters<Fetcher["fetch"]>) {
19
- const reqFromArgs = new Request(...reqArgs);
20
- if (details.headers) {
21
- for (const [key, value] of Object.entries(details.headers)) {
22
- // In remote mode, you need to add a couple of headers
23
- // to make sure it's talking to the 'dev' preview session
24
- // (much like wrangler dev already does via proxy.ts)
25
- reqFromArgs.headers.set(key, value);
26
- }
27
- return (env[name] as Fetcher).fetch(reqFromArgs);
28
- }
29
-
30
- const url = new URL(reqFromArgs.url);
31
- if (details.protocol !== undefined) {
32
- url.protocol = details.protocol;
33
- }
34
- if (details.host !== undefined) {
35
- url.host = details.host;
36
- }
37
- if (details.port !== undefined) {
38
- url.port = details.port.toString();
39
- }
40
-
41
- const request = new Request(url.toString(), reqFromArgs);
42
- return fetch(request);
43
- },
44
- };
53
+ facadeEnv[name] = new Fetcher(name, details);
45
54
  } else {
46
55
  // This means there's no dev binding available.
47
56
  // Let's use whatever's available, or put a shim with a message.
@@ -1,18 +1,18 @@
1
1
  /// <reference path="middleware-serve-static-assets.d.ts"/>
2
2
 
3
+ import manifest from "__STATIC_CONTENT_MANIFEST";
3
4
  import {
4
5
  getAssetFromKV,
5
- NotFoundError,
6
6
  MethodNotAllowedError,
7
+ NotFoundError,
7
8
  serveSinglePageApp,
8
9
  } from "@cloudflare/kv-asset-handler";
10
+ import { cacheControl, spaMode } from "config:middleware/serve-static-assets";
11
+ import type { Middleware } from "./common";
9
12
  import type { Options } from "@cloudflare/kv-asset-handler";
10
- import { spaMode, cacheControl } from "config:middleware/serve-static-assets";
11
13
  import type * as kvAssetHandler from "@cloudflare/kv-asset-handler";
12
- import manifest from "__STATIC_CONTENT_MANIFEST";
13
- const ASSET_MANIFEST = JSON.parse(manifest);
14
14
 
15
- import type { Middleware } from "./common";
15
+ const ASSET_MANIFEST = JSON.parse(manifest);
16
16
 
17
17
  const staticAssets: Middleware = async (request, env, _ctx, middlewareCtx) => {
18
18
  let options: Partial<Options> = {