wrangler 0.0.0-e6ddf8a7 → 0.0.0-e70806f1
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 +1 -1
- package/bin/wrangler.js +0 -28
- package/config-schema.json +2947 -0
- package/package.json +47 -63
- package/templates/checked-fetch.js +1 -1
- package/templates/facade.d.ts +7 -5
- package/templates/gitignore +0 -5
- package/templates/init-tests/test-vitest-new-worker.js +1 -1
- package/templates/init-tests/test-vitest-new-worker.ts +1 -1
- package/templates/middleware/loader-modules.ts +92 -95
- package/templates/middleware/loader-sw.ts +4 -3
- package/templates/middleware/middleware-ensure-req-body-drained.ts +18 -0
- package/templates/middleware/middleware-miniflare3-json-error.ts +0 -1
- package/templates/middleware/middleware-serve-static-assets.ts +5 -5
- package/templates/pages-dev-pipeline.ts +2 -1
- package/templates/pages-template-plugin.ts +2 -2
- package/templates/pages-template-worker.ts +1 -1
- package/templates/startDevWorker/InspectorProxyWorker.ts +664 -0
- package/templates/startDevWorker/ProxyWorker.ts +334 -0
- package/wrangler-dist/InspectorProxyWorker.js +464 -0
- package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
- package/wrangler-dist/ProxyWorker.js +240 -0
- package/wrangler-dist/ProxyWorker.js.map +6 -0
- package/wrangler-dist/cli.d.ts +22861 -244
- package/wrangler-dist/cli.js +113945 -56555
- package/Cloudflare_CA.pem +0 -18
- package/templates/middleware/middleware-d1-beta.d.ts +0 -3
- package/templates/middleware/middleware-multiworker-dev.d.ts +0 -4
- package/templates/middleware/middleware-multiworker-dev.ts +0 -68
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wrangler",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-e70806f1",
|
|
4
4
|
"description": "Command-line interface for all things Cloudflare Workers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"wrangler",
|
|
@@ -47,43 +47,9 @@
|
|
|
47
47
|
"wrangler-dist",
|
|
48
48
|
"templates",
|
|
49
49
|
"kv-asset-handler.js",
|
|
50
|
-
"
|
|
50
|
+
"config-schema.json"
|
|
51
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|npx-import)"
|
|
79
|
-
],
|
|
80
|
-
"snapshotFormat": {
|
|
81
|
-
"escapeString": true,
|
|
82
|
-
"printBasicPrototype": true
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
52
|
"dependencies": {
|
|
86
|
-
"@cloudflare/kv-asset-handler": "^0.2.0",
|
|
87
53
|
"@esbuild-plugins/node-globals-polyfill": "^0.2.3",
|
|
88
54
|
"@esbuild-plugins/node-modules-polyfill": "^0.2.2",
|
|
89
55
|
"blake3-wasm": "^2.1.5",
|
|
@@ -91,39 +57,42 @@
|
|
|
91
57
|
"esbuild": "0.17.19",
|
|
92
58
|
"nanoid": "^3.3.3",
|
|
93
59
|
"path-to-regexp": "^6.2.0",
|
|
60
|
+
"resolve": "^1.22.8",
|
|
94
61
|
"resolve.exports": "^2.0.2",
|
|
95
62
|
"selfsigned": "^2.0.1",
|
|
96
63
|
"source-map": "0.6.1",
|
|
97
|
-
"
|
|
64
|
+
"unenv": "npm:unenv-nightly@1.10.0-1717606461.a117952",
|
|
98
65
|
"xxhash-wasm": "^1.0.1",
|
|
99
|
-
"
|
|
66
|
+
"@cloudflare/kv-asset-handler": "0.3.2",
|
|
67
|
+
"miniflare": "3.20240610.0"
|
|
100
68
|
},
|
|
101
69
|
"devDependencies": {
|
|
102
|
-
"@cloudflare/eslint-config-worker": "*",
|
|
103
70
|
"@cloudflare/types": "^6.18.4",
|
|
104
|
-
"
|
|
105
|
-
"@
|
|
71
|
+
"@cloudflare/workers-types": "^4.20240605.0",
|
|
72
|
+
"@cspotcode/source-map-support": "0.8.1",
|
|
106
73
|
"@iarna/toml": "^3.0.0",
|
|
107
74
|
"@microsoft/api-extractor": "^7.28.3",
|
|
75
|
+
"@sentry/node": "^7.86.0",
|
|
76
|
+
"@sentry/types": "^7.86.0",
|
|
77
|
+
"@sentry/utils": "^7.86.0",
|
|
108
78
|
"@types/body-parser": "^1.19.2",
|
|
109
|
-
"@types/busboy": "^1.5.0",
|
|
110
79
|
"@types/command-exists": "^1.2.0",
|
|
111
80
|
"@types/express": "^4.17.13",
|
|
112
81
|
"@types/glob-to-regexp": "0.4.1",
|
|
113
82
|
"@types/is-ci": "^3.0.0",
|
|
114
83
|
"@types/javascript-time-ago": "^2.0.3",
|
|
115
|
-
"@types/jest": "^29.5.5",
|
|
116
84
|
"@types/mime": "^2.0.3",
|
|
117
85
|
"@types/minimatch": "^5.1.2",
|
|
118
86
|
"@types/prompts": "^2.0.14",
|
|
119
87
|
"@types/react": "^17.0.37",
|
|
88
|
+
"@types/resolve": "^1.20.6",
|
|
120
89
|
"@types/serve-static": "^1.13.10",
|
|
121
90
|
"@types/shell-quote": "^1.7.2",
|
|
122
91
|
"@types/signal-exit": "^3.0.1",
|
|
123
|
-
"@types/source-map-support": "^0.5.7",
|
|
124
92
|
"@types/supports-color": "^8.1.1",
|
|
125
93
|
"@types/ws": "^8.5.3",
|
|
126
94
|
"@types/yargs": "^17.0.10",
|
|
95
|
+
"@vitest/ui": "^1.6.0",
|
|
127
96
|
"@webcontainer/env": "^1.1.0",
|
|
128
97
|
"body-parser": "^1.20.0",
|
|
129
98
|
"chalk": "^2.4.2",
|
|
@@ -134,38 +103,34 @@
|
|
|
134
103
|
"concurrently": "^7.2.2",
|
|
135
104
|
"devtools-protocol": "^0.0.955664",
|
|
136
105
|
"dotenv": "^16.0.0",
|
|
137
|
-
"
|
|
106
|
+
"es-module-lexer": "^1.3.0",
|
|
138
107
|
"execa": "^6.1.0",
|
|
139
108
|
"express": "^4.18.1",
|
|
140
|
-
"finalhandler": "^1.2.0",
|
|
141
109
|
"find-up": "^6.3.0",
|
|
142
110
|
"get-port": "^6.1.2",
|
|
143
111
|
"glob-to-regexp": "0.4.1",
|
|
144
112
|
"http-terminator": "^3.2.0",
|
|
113
|
+
"https-proxy-agent": "7.0.2",
|
|
145
114
|
"ignore": "^5.2.0",
|
|
146
115
|
"ink": "^3.2.0",
|
|
147
116
|
"ink-select-input": "^4.2.1",
|
|
148
117
|
"ink-spinner": "^4.0.3",
|
|
149
118
|
"ink-table": "^3.0.0",
|
|
150
|
-
"ink-testing-library": "^2.1.0",
|
|
151
|
-
"ink-text-input": "^4.0.3",
|
|
152
119
|
"is-ci": "^3.0.1",
|
|
153
120
|
"javascript-time-ago": "^2.5.4",
|
|
154
|
-
"
|
|
155
|
-
"jest-fetch-mock": "^3.0.3",
|
|
156
|
-
"jest-websocket-mock": "^2.5.0",
|
|
121
|
+
"md5-file": "5.0.0",
|
|
157
122
|
"mime": "^3.0.0",
|
|
158
123
|
"minimatch": "^5.1.0",
|
|
159
|
-
"
|
|
160
|
-
"
|
|
124
|
+
"mock-socket": "^9.3.1",
|
|
125
|
+
"msw": "^2.3.0",
|
|
161
126
|
"open": "^8.4.0",
|
|
162
127
|
"p-queue": "^7.2.0",
|
|
163
128
|
"patch-console": "^1.0.0",
|
|
164
129
|
"pretty-bytes": "^6.0.0",
|
|
165
130
|
"prompts": "^2.4.2",
|
|
131
|
+
"ps-list": "^8.1.1",
|
|
166
132
|
"react": "^17.0.2",
|
|
167
133
|
"react-error-boundary": "^3.1.4",
|
|
168
|
-
"remove-accents-esm": "^0.0.1",
|
|
169
134
|
"semiver": "^1.1.0",
|
|
170
135
|
"serve-static": "^1.15.0",
|
|
171
136
|
"shell-quote": "^1.8.1",
|
|
@@ -175,37 +140,56 @@
|
|
|
175
140
|
"supports-color": "^9.2.2",
|
|
176
141
|
"timeago.js": "^4.0.2",
|
|
177
142
|
"ts-dedent": "^2.2.0",
|
|
178
|
-
"
|
|
143
|
+
"ts-json-schema-generator": "^1.5.0",
|
|
144
|
+
"undici": "5.28.4",
|
|
179
145
|
"update-check": "^1.5.4",
|
|
146
|
+
"vitest": "^1.6.0",
|
|
147
|
+
"vitest-websocket-mock": "^0.3.0",
|
|
180
148
|
"ws": "^8.5.0",
|
|
181
149
|
"xdg-app-paths": "^8.3.0",
|
|
182
150
|
"yargs": "^17.7.2",
|
|
183
151
|
"yoga-layout": "file:../../vendor/yoga-layout-2.0.0-beta.1.tgz",
|
|
184
|
-
"@cloudflare/
|
|
185
|
-
"@cloudflare/
|
|
186
|
-
"@cloudflare/cli": "1.
|
|
152
|
+
"@cloudflare/eslint-config-worker": "1.1.0",
|
|
153
|
+
"@cloudflare/pages-shared": "^0.11.43",
|
|
154
|
+
"@cloudflare/cli": "1.1.1",
|
|
155
|
+
"@cloudflare/workers-tsconfig": "0.0.0"
|
|
187
156
|
},
|
|
188
157
|
"optionalDependencies": {
|
|
189
158
|
"fsevents": "~2.3.2"
|
|
190
159
|
},
|
|
160
|
+
"peerDependencies": {
|
|
161
|
+
"@cloudflare/workers-types": "^4.20240605.0"
|
|
162
|
+
},
|
|
163
|
+
"peerDependenciesMeta": {
|
|
164
|
+
"@cloudflare/workers-types": {
|
|
165
|
+
"optional": true
|
|
166
|
+
}
|
|
167
|
+
},
|
|
191
168
|
"engines": {
|
|
192
169
|
"node": ">=16.17.0"
|
|
193
170
|
},
|
|
171
|
+
"workers-sdk": {
|
|
172
|
+
"prerelease": true
|
|
173
|
+
},
|
|
174
|
+
"volta": {
|
|
175
|
+
"extends": "../../package.json"
|
|
176
|
+
},
|
|
194
177
|
"scripts": {
|
|
195
178
|
"assert-git-version": "node -r esbuild-register scripts/assert-git-version.ts",
|
|
196
|
-
"build": "pnpm run clean && pnpm run bundle && pnpm run emit-types",
|
|
179
|
+
"build": "pnpm run clean && pnpm run bundle && pnpm run emit-types && pnpm run generate-json-schema",
|
|
197
180
|
"bundle": "node -r esbuild-register scripts/bundle.ts",
|
|
198
181
|
"check:lint": "eslint .",
|
|
199
182
|
"check:type": "tsc",
|
|
200
183
|
"clean": "rimraf wrangler-dist miniflare-dist emitted-types",
|
|
201
184
|
"dev": "pnpm run clean && concurrently -c black,blue --kill-others-on-fail false \"pnpm run bundle --watch\" \"pnpm run check:type --watch --preserveWatchOutput\"",
|
|
202
185
|
"emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
|
|
186
|
+
"generate-json-schema": "pnpm exec ts-json-schema-generator --no-type-check --path src/config/config.ts --type RawConfig --out config-schema.json",
|
|
203
187
|
"start": "pnpm run bundle && cross-env NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
|
|
204
|
-
"test": "pnpm run assert-git-version &&
|
|
205
|
-
"test:ci": "pnpm run test
|
|
188
|
+
"test": "pnpm run assert-git-version && vitest",
|
|
189
|
+
"test:ci": "pnpm run test run",
|
|
206
190
|
"test:debug": "pnpm run test --silent=false --verbose=true",
|
|
207
|
-
"test:e2e": "vitest
|
|
208
|
-
"test:watch": "pnpm run test --
|
|
191
|
+
"test:e2e": "vitest -c ./e2e/vitest.config.ts",
|
|
192
|
+
"test:watch": "pnpm run test --testTimeout=50000 --watch",
|
|
209
193
|
"type:tests": "tsc -p ./src/__tests__/tsconfig.json && tsc -p ./e2e/tsconfig.json"
|
|
210
194
|
}
|
|
211
195
|
}
|
package/templates/facade.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
declare module "__ENTRY_POINT__" {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
import { Middleware } from "./middleware/common";
|
|
3
|
+
import { WorkerEntrypoint } from "cloudflare:workers";
|
|
4
|
+
|
|
5
|
+
export type WorkerEntrypointConstructor = typeof WorkerEntrypoint;
|
|
6
|
+
|
|
7
|
+
const worker: ExportedHandler | WorkerEntrypointConstructor;
|
|
7
8
|
export default worker;
|
|
9
|
+
export const __INTERNAL_WRANGLER_MIDDLEWARE__: Middleware[];
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
declare module "__KV_ASSET_HANDLER__" {
|
package/templates/gitignore
CHANGED
|
@@ -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;
|
|
@@ -1,23 +1,17 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
// // of "plugin" system.
|
|
1
|
+
// This loads all middlewares exposed on the middleware object and then starts
|
|
2
|
+
// the invocation chain. The big idea is that we can add these to the middleware
|
|
3
|
+
// export dynamically through wrangler, or we can potentially let users directly
|
|
4
|
+
// add them as a sort of "plugin" system.
|
|
6
5
|
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
__facade_invoke__,
|
|
11
|
-
__facade_register__,
|
|
12
|
-
} from "./common";
|
|
6
|
+
import ENTRY, { __INTERNAL_WRANGLER_MIDDLEWARE__ } from "__ENTRY_POINT__";
|
|
7
|
+
import { __facade_invoke__, __facade_register__, Dispatcher } from "./common";
|
|
8
|
+
import type { WorkerEntrypointConstructor } from "__ENTRY_POINT__";
|
|
13
9
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
// We need to preserve all of the exports from the worker
|
|
10
|
+
// Preserve all the exports from the worker
|
|
17
11
|
export * from "__ENTRY_POINT__";
|
|
18
12
|
|
|
19
13
|
class __Facade_ScheduledController__ implements ScheduledController {
|
|
20
|
-
#noRetry: ScheduledController["noRetry"];
|
|
14
|
+
readonly #noRetry: ScheduledController["noRetry"];
|
|
21
15
|
|
|
22
16
|
constructor(
|
|
23
17
|
readonly scheduledTime: number,
|
|
@@ -36,71 +30,34 @@ class __Facade_ScheduledController__ implements ScheduledController {
|
|
|
36
30
|
}
|
|
37
31
|
}
|
|
38
32
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
let env = rawEnv as Record<string, unknown>;
|
|
51
|
-
if (worker.envWrappers && worker.envWrappers.length > 0) {
|
|
52
|
-
for (const wrapFn of worker.envWrappers) {
|
|
53
|
-
env = wrapFn(env);
|
|
54
|
-
}
|
|
33
|
+
function wrapExportedHandler(worker: ExportedHandler): ExportedHandler {
|
|
34
|
+
// If we don't have any middleware defined, just return the handler as is
|
|
35
|
+
if (
|
|
36
|
+
__INTERNAL_WRANGLER_MIDDLEWARE__ === undefined ||
|
|
37
|
+
__INTERNAL_WRANGLER_MIDDLEWARE__.length === 0
|
|
38
|
+
) {
|
|
39
|
+
return worker;
|
|
40
|
+
}
|
|
41
|
+
// Otherwise, register all middleware once
|
|
42
|
+
for (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) {
|
|
43
|
+
__facade_register__(middleware);
|
|
55
44
|
}
|
|
56
|
-
return env;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* This type is here to cause a type error if a new export handler is added to
|
|
61
|
-
* `ExportHandler` without it being included in the `facade` below.
|
|
62
|
-
*/
|
|
63
|
-
type MissingExportHandlers = Omit<
|
|
64
|
-
Required<ExportedHandler>,
|
|
65
|
-
"tail" | "trace" | "scheduled" | "queue" | "test" | "email" | "fetch"
|
|
66
|
-
>;
|
|
67
|
-
|
|
68
|
-
let registeredMiddleware = false;
|
|
69
|
-
|
|
70
|
-
const facade: ExportedHandler<unknown> & MissingExportHandlers = {
|
|
71
|
-
...(worker.tail && {
|
|
72
|
-
tail: maskHandlerEnv(worker.tail),
|
|
73
|
-
}),
|
|
74
|
-
...(worker.trace && {
|
|
75
|
-
trace: maskHandlerEnv(worker.trace),
|
|
76
|
-
}),
|
|
77
|
-
...(worker.scheduled && {
|
|
78
|
-
scheduled: maskHandlerEnv(worker.scheduled),
|
|
79
|
-
}),
|
|
80
|
-
...(worker.queue && {
|
|
81
|
-
queue: maskHandlerEnv(worker.queue),
|
|
82
|
-
}),
|
|
83
|
-
...(worker.test && {
|
|
84
|
-
test: maskHandlerEnv(worker.test),
|
|
85
|
-
}),
|
|
86
|
-
...(worker.email && {
|
|
87
|
-
email: maskHandlerEnv(worker.email),
|
|
88
|
-
}),
|
|
89
45
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
}
|
|
46
|
+
const fetchDispatcher: ExportedHandlerFetchHandler = function (
|
|
47
|
+
request,
|
|
48
|
+
env,
|
|
49
|
+
ctx
|
|
50
|
+
) {
|
|
51
|
+
if (worker.fetch === undefined) {
|
|
52
|
+
throw new Error("Handler does not export a fetch() function.");
|
|
53
|
+
}
|
|
54
|
+
return worker.fetch(request, env, ctx);
|
|
55
|
+
};
|
|
102
56
|
|
|
103
|
-
|
|
57
|
+
return {
|
|
58
|
+
...worker,
|
|
59
|
+
fetch(request, env, ctx) {
|
|
60
|
+
const dispatcher: Dispatcher = function (type, init) {
|
|
104
61
|
if (type === "scheduled" && worker.scheduled !== undefined) {
|
|
105
62
|
const controller = new __Facade_ScheduledController__(
|
|
106
63
|
Date.now(),
|
|
@@ -110,28 +67,68 @@ const facade: ExportedHandler<unknown> & MissingExportHandlers = {
|
|
|
110
67
|
return worker.scheduled(controller, env, ctx);
|
|
111
68
|
}
|
|
112
69
|
};
|
|
70
|
+
return __facade_invoke__(request, env, ctx, dispatcher, fetchDispatcher);
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function wrapWorkerEntrypoint(
|
|
76
|
+
klass: WorkerEntrypointConstructor
|
|
77
|
+
): WorkerEntrypointConstructor {
|
|
78
|
+
// If we don't have any middleware defined, just return the handler as is
|
|
79
|
+
if (
|
|
80
|
+
__INTERNAL_WRANGLER_MIDDLEWARE__ === undefined ||
|
|
81
|
+
__INTERNAL_WRANGLER_MIDDLEWARE__.length === 0
|
|
82
|
+
) {
|
|
83
|
+
return klass;
|
|
84
|
+
}
|
|
85
|
+
// Otherwise, register all middleware once
|
|
86
|
+
for (const middleware of __INTERNAL_WRANGLER_MIDDLEWARE__) {
|
|
87
|
+
__facade_register__(middleware);
|
|
88
|
+
}
|
|
113
89
|
|
|
90
|
+
// `extend`ing `klass` here so other RPC methods remain callable
|
|
91
|
+
return class extends klass {
|
|
92
|
+
#fetchDispatcher: ExportedHandlerFetchHandler<Record<string, unknown>> = (
|
|
93
|
+
request,
|
|
94
|
+
env,
|
|
95
|
+
ctx
|
|
96
|
+
) => {
|
|
97
|
+
this.env = env;
|
|
98
|
+
this.ctx = ctx;
|
|
99
|
+
if (super.fetch === undefined) {
|
|
100
|
+
throw new Error("Entrypoint class does not define a fetch() function.");
|
|
101
|
+
}
|
|
102
|
+
return super.fetch(request);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
#dispatcher: Dispatcher = (type, init) => {
|
|
106
|
+
if (type === "scheduled" && super.scheduled !== undefined) {
|
|
107
|
+
const controller = new __Facade_ScheduledController__(
|
|
108
|
+
Date.now(),
|
|
109
|
+
init.cron ?? "",
|
|
110
|
+
() => {}
|
|
111
|
+
);
|
|
112
|
+
return super.scheduled(controller);
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
fetch(request: Request<unknown, IncomingRequestCfProperties>) {
|
|
114
117
|
return __facade_invoke__(
|
|
115
118
|
request,
|
|
116
|
-
env,
|
|
117
|
-
ctx,
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
this.env,
|
|
120
|
+
this.ctx,
|
|
121
|
+
this.#dispatcher,
|
|
122
|
+
this.#fetchDispatcher
|
|
120
123
|
);
|
|
121
|
-
} else {
|
|
122
|
-
// We didn't have any middleware so we can skip the invocation chain,
|
|
123
|
-
// and just call the fetch handler directly
|
|
124
|
-
|
|
125
|
-
// We "don't care" if this is undefined as we want to have the same behavior
|
|
126
|
-
// as if the worker completely bypassed middleware.
|
|
127
|
-
return __facade_modules_fetch__(request, env, ctx);
|
|
128
124
|
}
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
type HandlerFn<D, R> = (data: D, env: unknown, ctx: ExecutionContext) => R;
|
|
133
|
-
function maskHandlerEnv<D, R>(handler: HandlerFn<D, R>): HandlerFn<D, R> {
|
|
134
|
-
return (data, env, ctx) => handler(data, getMaskedEnv(env), ctx);
|
|
125
|
+
};
|
|
135
126
|
}
|
|
136
127
|
|
|
137
|
-
|
|
128
|
+
let WRAPPED_ENTRY: ExportedHandler | WorkerEntrypointConstructor | undefined;
|
|
129
|
+
if (typeof ENTRY === "object") {
|
|
130
|
+
WRAPPED_ENTRY = wrapExportedHandler(ENTRY);
|
|
131
|
+
} else if (typeof ENTRY === "function") {
|
|
132
|
+
WRAPPED_ENTRY = wrapWorkerEntrypoint(ENTRY);
|
|
133
|
+
}
|
|
134
|
+
export default WRAPPED_ENTRY;
|
|
@@ -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,18 @@
|
|
|
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;
|
|
@@ -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
|
-
|
|
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> = {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// @ts-ignore entry point will get replaced
|
|
2
2
|
import worker from "__ENTRY_POINT__";
|
|
3
|
+
import { isRoutingRuleMatch } from "./pages-dev-util";
|
|
4
|
+
|
|
3
5
|
// @ts-ignore entry point will get replaced
|
|
4
6
|
export * from "__ENTRY_POINT__";
|
|
5
|
-
import { isRoutingRuleMatch } from "./pages-dev-util";
|
|
6
7
|
|
|
7
8
|
// @ts-ignore routes are injected
|
|
8
9
|
const routes = __ROUTES__;
|
|
@@ -41,14 +41,14 @@ type EventPluginContext<Env, P extends string, Data, PluginArgs> = {
|
|
|
41
41
|
declare type PagesFunction<
|
|
42
42
|
Env = unknown,
|
|
43
43
|
P extends string = string,
|
|
44
|
-
Data extends Record<string, unknown> = Record<string, unknown
|
|
44
|
+
Data extends Record<string, unknown> = Record<string, unknown>,
|
|
45
45
|
> = (context: EventContext<Env, P, Data>) => Response | Promise<Response>;
|
|
46
46
|
|
|
47
47
|
declare type PagesPluginFunction<
|
|
48
48
|
Env = unknown,
|
|
49
49
|
P extends string = string,
|
|
50
50
|
Data extends Record<string, unknown> = Record<string, unknown>,
|
|
51
|
-
PluginArgs = unknown
|
|
51
|
+
PluginArgs = unknown,
|
|
52
52
|
> = (
|
|
53
53
|
context: EventPluginContext<Env, P, Data, PluginArgs>
|
|
54
54
|
) => Response | Promise<Response>;
|
|
@@ -29,7 +29,7 @@ type EventContext<Env, P extends string, Data> = {
|
|
|
29
29
|
declare type PagesFunction<
|
|
30
30
|
Env = unknown,
|
|
31
31
|
P extends string = string,
|
|
32
|
-
Data extends Record<string, unknown> = Record<string, unknown
|
|
32
|
+
Data extends Record<string, unknown> = Record<string, unknown>,
|
|
33
33
|
> = (context: EventContext<Env, P, Data>) => Response | Promise<Response>;
|
|
34
34
|
/* end @cloudflare/workers-types */
|
|
35
35
|
|