wrangler 0.0.0-fa8e5232 → 0.0.0-fac199ba
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 +10 -12
- package/bin/wrangler.js +10 -76
- package/package.json +20 -19
- package/templates/__tests__/tsconfig.json +1 -1
- package/templates/checked-fetch.js +10 -3
- package/templates/facade.d.ts +4 -1
- package/templates/gitignore +1 -0
- package/templates/middleware/common.ts +9 -4
- package/templates/middleware/loader-modules.ts +64 -11
- package/templates/middleware/loader-sw.ts +2 -7
- package/templates/middleware/middleware-d1-beta.d.ts +3 -0
- package/templates/middleware/middleware-miniflare3-json-error.ts +17 -5
- package/templates/middleware/middleware-multiworker-dev.d.ts +4 -0
- package/templates/middleware/middleware-multiworker-dev.ts +59 -0
- package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
- package/templates/middleware/middleware-serve-static-assets.ts +56 -0
- package/templates/new-worker-scheduled.ts +1 -1
- package/templates/new-worker.ts +1 -1
- package/templates/pages-dev-util.ts +4 -1
- package/templates/pages-shim.ts +0 -3
- package/templates/pages-template-plugin.ts +19 -5
- package/templates/pages-template-worker.ts +11 -2
- package/templates/tsconfig.init.json +1 -2
- package/templates/tsconfig.json +1 -1
- package/wrangler-dist/cli.d.ts +758 -134
- package/wrangler-dist/cli.js +91931 -87171
- 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 -6368
- package/src/__tests__/access.test.ts +0 -25
- package/src/__tests__/api-dev.test.ts +0 -238
- package/src/__tests__/api-devregistry.test.js +0 -64
- package/src/__tests__/api.test.ts +0 -80
- 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 -4233
- package/src/__tests__/d1/d1.test.ts +0 -82
- package/src/__tests__/d1/execute.test.ts +0 -64
- package/src/__tests__/d1/migrate.test.ts +0 -155
- package/src/__tests__/d1/splitter.test.ts +0 -255
- package/src/__tests__/delete.test.ts +0 -266
- package/src/__tests__/deployments.test.ts +0 -129
- package/src/__tests__/dev.test.tsx +0 -1587
- package/src/__tests__/generate.test.ts +0 -238
- package/src/__tests__/get-host-from-url.test.ts +0 -16
- 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/end-event-loop.ts +0 -6
- package/src/__tests__/helpers/mock-account-id.ts +0 -48
- package/src/__tests__/helpers/mock-auth-domain.ts +0 -20
- package/src/__tests__/helpers/mock-bin.ts +0 -36
- package/src/__tests__/helpers/mock-console.ts +0 -106
- package/src/__tests__/helpers/mock-dialogs.ts +0 -139
- package/src/__tests__/helpers/mock-get-pages-upload-token.ts +0 -25
- package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -11
- package/src/__tests__/helpers/mock-http-server.ts +0 -46
- package/src/__tests__/helpers/mock-istty.ts +0 -74
- package/src/__tests__/helpers/mock-known-routes.ts +0 -12
- package/src/__tests__/helpers/mock-kv.ts +0 -46
- package/src/__tests__/helpers/mock-oauth-flow.ts +0 -263
- package/src/__tests__/helpers/mock-process.ts +0 -34
- package/src/__tests__/helpers/mock-set-timeout.ts +0 -16
- package/src/__tests__/helpers/mock-stdin.ts +0 -108
- package/src/__tests__/helpers/mock-web-socket.ts +0 -29
- package/src/__tests__/helpers/msw/blob-worker.cjs +0 -19
- package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
- package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -93
- package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -81
- package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
- package/src/__tests__/helpers/msw/handlers/r2.ts +0 -60
- package/src/__tests__/helpers/msw/handlers/script.ts +0 -56
- package/src/__tests__/helpers/msw/handlers/user.ts +0 -52
- package/src/__tests__/helpers/msw/handlers/zones.ts +0 -20
- package/src/__tests__/helpers/msw/index.ts +0 -50
- package/src/__tests__/helpers/msw/read-file-sync.js +0 -61
- package/src/__tests__/helpers/run-in-tmp.ts +0 -38
- package/src/__tests__/helpers/run-wrangler.ts +0 -16
- package/src/__tests__/helpers/string-dynamic-values-matcher.ts +0 -28
- package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
- package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
- package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
- package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -8
- package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
- 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 -274
- package/src/__tests__/init.test.ts +0 -3164
- package/src/__tests__/jest.setup.ts +0 -175
- package/src/__tests__/kv.test.ts +0 -1799
- package/src/__tests__/logger.test.ts +0 -141
- package/src/__tests__/logout.test.ts +0 -47
- package/src/__tests__/metrics.test.ts +0 -493
- package/src/__tests__/middleware.scheduled.test.ts +0 -145
- package/src/__tests__/middleware.test.ts +0 -815
- package/src/__tests__/mtls-certificates.test.ts +0 -585
- package/src/__tests__/package-manager.test.ts +0 -353
- package/src/__tests__/pages/deployment-list.test.ts +0 -78
- package/src/__tests__/pages/functions-build.test.ts +0 -402
- package/src/__tests__/pages/pages.test.ts +0 -81
- package/src/__tests__/pages/project-create.test.ts +0 -63
- package/src/__tests__/pages/project-list.test.ts +0 -108
- package/src/__tests__/pages/project-upload.test.ts +0 -481
- package/src/__tests__/pages/publish.test.ts +0 -2745
- package/src/__tests__/pages-deployment-tail.test.ts +0 -955
- package/src/__tests__/parse.test.ts +0 -436
- package/src/__tests__/paths.test.ts +0 -39
- package/src/__tests__/publish.test.ts +0 -8167
- package/src/__tests__/pubsub.test.ts +0 -493
- package/src/__tests__/queues.test.ts +0 -529
- package/src/__tests__/r2.test.ts +0 -374
- package/src/__tests__/route.test.ts +0 -45
- package/src/__tests__/secret.test.ts +0 -693
- package/src/__tests__/tail.test.ts +0 -958
- package/src/__tests__/test-old-node-version.js +0 -31
- package/src/__tests__/tsconfig-sanity.ts +0 -12
- package/src/__tests__/tsconfig.json +0 -8
- package/src/__tests__/tsconfig.tsbuildinfo +0 -1
- package/src/__tests__/type-generation.test.ts +0 -233
- package/src/__tests__/user.test.ts +0 -118
- package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
- package/src/__tests__/validate-dev-props.test.ts +0 -56
- package/src/__tests__/version.test.ts +0 -35
- package/src/__tests__/whoami.test.tsx +0 -172
- package/src/__tests__/worker-namespace.test.ts +0 -339
- package/src/abort.d.ts +0 -3
- package/src/api/dev.ts +0 -328
- package/src/api/index.ts +0 -11
- package/src/api/mtls-certificate.ts +0 -148
- package/src/api/pages/create-worker-bundle-contents.ts +0 -75
- package/src/api/pages/index.ts +0 -5
- package/src/api/pages/publish.tsx +0 -368
- package/src/bundle-reporter.ts +0 -68
- package/src/bundle.ts +0 -877
- package/src/cfetch/index.ts +0 -158
- package/src/cfetch/internal.ts +0 -258
- package/src/cli.ts +0 -28
- package/src/config/README.md +0 -107
- package/src/config/config.ts +0 -282
- package/src/config/diagnostics.ts +0 -80
- package/src/config/environment.ts +0 -586
- package/src/config/index.ts +0 -375
- package/src/config/validation-helpers.ts +0 -597
- package/src/config/validation.ts +0 -2198
- package/src/config-cache.ts +0 -85
- package/src/create-worker-preview.ts +0 -293
- package/src/create-worker-upload-form.ts +0 -334
- package/src/d1/backups.tsx +0 -215
- package/src/d1/constants.ts +0 -2
- package/src/d1/create.tsx +0 -64
- package/src/d1/delete.ts +0 -53
- package/src/d1/execute.tsx +0 -354
- package/src/d1/formatTimeAgo.ts +0 -14
- package/src/d1/index.ts +0 -100
- package/src/d1/list.tsx +0 -60
- package/src/d1/migrations/apply.tsx +0 -206
- package/src/d1/migrations/create.tsx +0 -76
- package/src/d1/migrations/helpers.ts +0 -172
- package/src/d1/migrations/index.ts +0 -3
- package/src/d1/migrations/list.tsx +0 -92
- package/src/d1/migrations/options.ts +0 -23
- package/src/d1/options.ts +0 -22
- package/src/d1/splitter.ts +0 -161
- package/src/d1/types.ts +0 -25
- package/src/d1/utils.ts +0 -49
- package/src/delete.ts +0 -100
- package/src/deployments.ts +0 -116
- package/src/deprecated/index.ts +0 -144
- package/src/dev/dev-vars.ts +0 -39
- package/src/dev/dev.tsx +0 -600
- package/src/dev/get-local-persistence-path.ts +0 -31
- package/src/dev/local.tsx +0 -923
- package/src/dev/remote.tsx +0 -632
- package/src/dev/start-server.ts +0 -538
- package/src/dev/use-esbuild.ts +0 -205
- package/src/dev/validate-dev-props.ts +0 -31
- package/src/dev-registry.ts +0 -201
- package/src/dev.tsx +0 -914
- package/src/dialogs.ts +0 -136
- package/src/dispatch-namespace.ts +0 -211
- package/src/docs/index.ts +0 -97
- package/src/durable.ts +0 -102
- package/src/entry.ts +0 -328
- package/src/environment-variables/factory.ts +0 -88
- package/src/environment-variables/misc-variables.ts +0 -30
- package/src/errors.ts +0 -11
- package/src/generate/index.ts +0 -298
- package/src/git-client.ts +0 -135
- package/src/global-wrangler-config-path.ts +0 -26
- package/src/https-options.ts +0 -127
- package/src/index.ts +0 -705
- package/src/init.ts +0 -1022
- package/src/inspect.ts +0 -779
- package/src/intl-polyfill.d.ts +0 -139
- package/src/is-ci.ts +0 -14
- package/src/is-interactive.ts +0 -16
- package/src/jest.d.ts +0 -4
- package/src/kv/helpers.ts +0 -430
- package/src/kv/index.ts +0 -594
- package/src/logger.ts +0 -104
- package/src/metrics/index.ts +0 -5
- package/src/metrics/metrics-config.ts +0 -239
- package/src/metrics/metrics-dispatcher.ts +0 -96
- package/src/metrics/metrics-usage-headers.ts +0 -24
- package/src/metrics/send-event.ts +0 -98
- package/src/miniflare-cli/README.md +0 -30
- package/src/miniflare-cli/assets.ts +0 -250
- package/src/miniflare-cli/index.ts +0 -210
- package/src/miniflare-cli/request-context.ts +0 -40
- package/src/miniflare-cli/tsconfig.json +0 -9
- package/src/miniflare-cli/tsconfig.tsbuildinfo +0 -1
- package/src/miniflare-cli/types.ts +0 -11
- package/src/module-collection.ts +0 -267
- package/src/mtls-certificate/cli.ts +0 -155
- package/src/open-in-browser.ts +0 -17
- package/src/package-manager.ts +0 -219
- package/src/pages/build.ts +0 -232
- package/src/pages/buildFunctions.ts +0 -130
- package/src/pages/constants.ts +0 -18
- package/src/pages/deployment-tails.ts +0 -281
- package/src/pages/deployments.tsx +0 -86
- package/src/pages/dev.ts +0 -716
- package/src/pages/errors.ts +0 -66
- package/src/pages/functions/buildPlugin.ts +0 -90
- package/src/pages/functions/buildWorker.ts +0 -288
- 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-consolidation.test.ts +0 -250
- package/src/pages/functions/routes-consolidation.ts +0 -73
- package/src/pages/functions/routes-transformation.test.ts +0 -282
- package/src/pages/functions/routes-transformation.ts +0 -115
- package/src/pages/functions/routes-validation.test.ts +0 -403
- package/src/pages/functions/routes-validation.ts +0 -202
- package/src/pages/functions/routes.ts +0 -151
- package/src/pages/functions/tsconfig.json +0 -8
- package/src/pages/functions/tsconfig.tsbuildinfo +0 -1
- package/src/pages/functions.ts +0 -86
- package/src/pages/hash.ts +0 -13
- package/src/pages/index.ts +0 -102
- package/src/pages/projects.tsx +0 -162
- package/src/pages/prompt-select-project.tsx +0 -31
- package/src/pages/publish.tsx +0 -276
- package/src/pages/types.ts +0 -46
- package/src/pages/upload.tsx +0 -449
- package/src/pages/utils.ts +0 -23
- package/src/parse.ts +0 -308
- package/src/paths.ts +0 -71
- package/src/proxy.ts +0 -694
- package/src/publish/index.ts +0 -274
- package/src/publish/publish.ts +0 -1065
- package/src/pubsub/index.ts +0 -286
- package/src/pubsub/pubsub-commands.ts +0 -623
- package/src/queues/cli/commands/consumer/add.ts +0 -65
- package/src/queues/cli/commands/consumer/index.ts +0 -19
- package/src/queues/cli/commands/consumer/remove.ts +0 -31
- package/src/queues/cli/commands/create.ts +0 -25
- package/src/queues/cli/commands/delete.ts +0 -26
- package/src/queues/cli/commands/index.ts +0 -35
- package/src/queues/cli/commands/list.ts +0 -25
- package/src/queues/client.ts +0 -135
- package/src/queues/utils.ts +0 -18
- package/src/r2/constants.ts +0 -4
- package/src/r2/helpers.ts +0 -131
- package/src/r2/index.ts +0 -289
- package/src/routes.ts +0 -140
- package/src/secret/index.ts +0 -375
- package/src/selfsigned.d.ts +0 -29
- package/src/sites.ts +0 -372
- package/src/tail/createTail.ts +0 -406
- package/src/tail/filters.ts +0 -277
- package/src/tail/index.ts +0 -211
- package/src/tail/printing.ts +0 -122
- package/src/tsconfig-sanity.ts +0 -16
- package/src/type-generation.ts +0 -181
- package/src/update-check.ts +0 -19
- package/src/user/access.ts +0 -68
- package/src/user/auth-variables.ts +0 -113
- package/src/user/choose-account.tsx +0 -39
- package/src/user/generate-auth-url.ts +0 -33
- package/src/user/generate-random-state.ts +0 -16
- package/src/user/index.ts +0 -2
- package/src/user/user.ts +0 -1233
- package/src/utils/collectKeyValues.ts +0 -14
- package/src/whoami.ts +0 -135
- package/src/worker.ts +0 -257
- package/src/yargs-types.ts +0 -37
- package/src/zones.ts +0 -191
- package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
- package/templates/d1-beta-facade.js +0 -241
- package/templates/first-party-worker-module-facade.ts +0 -19
- package/templates/format-dev-errors.ts +0 -34
- package/templates/serve-static-assets.ts +0 -66
- package/templates/service-bindings-module-facade.js +0 -55
- package/templates/service-bindings-sw-facade.js +0 -42
- package/templates/tsconfig.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -6,8 +6,6 @@
|
|
|
6
6
|
<a href="https://discord.gg/CloudflareDev"><img alt="Discord" src="https://img.shields.io/discord/595317990191398933?color=%23F48120&style=flat-square"></a>
|
|
7
7
|
</section>
|
|
8
8
|
|
|
9
|
-
> This package is for wrangler v2.x, released first in May 2022. If you're looking for v1.x of the `@cloudflare/wrangler` package, visit https://www.npmjs.com/package/@cloudflare/wrangler / https://github.com/cloudflare/wrangler-legacy.
|
|
10
|
-
|
|
11
9
|
`wrangler` is a command line tool for building [Cloudflare Workers](https://workers.cloudflare.com/).
|
|
12
10
|
|
|
13
11
|
## Quick Start
|
|
@@ -17,8 +15,8 @@
|
|
|
17
15
|
echo "export default { fetch() { return new Response('hello world') } }" > index.js
|
|
18
16
|
# try it out
|
|
19
17
|
npx wrangler dev index.js
|
|
20
|
-
# and then
|
|
21
|
-
npx wrangler
|
|
18
|
+
# and then deploy it
|
|
19
|
+
npx wrangler deploy index.js --name my-worker
|
|
22
20
|
# visit https://my-worker.<your workers subdomain>.workers.dev
|
|
23
21
|
```
|
|
24
22
|
|
|
@@ -26,10 +24,10 @@ npx wrangler publish index.js --name my-worker
|
|
|
26
24
|
|
|
27
25
|
```bash
|
|
28
26
|
# Generate a new project
|
|
29
|
-
npx wrangler init my-worker
|
|
27
|
+
npx wrangler init my-worker --no-delegate-c3
|
|
30
28
|
# try it out
|
|
31
29
|
cd my-worker && npm run start
|
|
32
|
-
# and then
|
|
30
|
+
# and then deploy it
|
|
33
31
|
npm run deploy
|
|
34
32
|
```
|
|
35
33
|
|
|
@@ -43,15 +41,15 @@ $ npm install wrangler --save-dev
|
|
|
43
41
|
|
|
44
42
|
Wrangler is configured via a `wrangler.toml` file in the project root. When utilizing the `wrangler init` command, a `wrangler.toml` file will be created for you.
|
|
45
43
|
|
|
46
|
-
|
|
44
|
+
Example:
|
|
47
45
|
|
|
48
46
|
```toml
|
|
49
|
-
main = "./src/index.ts" # init w/ TypeScript
|
|
50
47
|
name = "my-worker"
|
|
51
|
-
|
|
48
|
+
main = "./src/index.ts" # init w/ TypeScript
|
|
49
|
+
compatibility_date = "YYYY-MM-DD"
|
|
52
50
|
```
|
|
53
51
|
|
|
54
|
-
|
|
52
|
+
For more detailed information about configuration, refer to the [documentation](https://developers.cloudflare.com/workers/wrangler/configuration/).
|
|
55
53
|
|
|
56
54
|
## Commands
|
|
57
55
|
|
|
@@ -63,11 +61,11 @@ Creates a Worker project. For details on configuration keys and values, refer to
|
|
|
63
61
|
|
|
64
62
|
Start a local development server, with live reloading and devtools.
|
|
65
63
|
|
|
66
|
-
### `wrangler
|
|
64
|
+
### `wrangler deploy`
|
|
67
65
|
|
|
68
66
|
Publish the given script to the worldwide Cloudflare network.
|
|
69
67
|
|
|
70
|
-
For more commands and options, refer to the [documentation](https://developers.cloudflare.com/workers/
|
|
68
|
+
For more commands and options, refer to the [documentation](https://developers.cloudflare.com/workers/wrangler/commands/).
|
|
71
69
|
|
|
72
70
|
## Pages
|
|
73
71
|
|
package/bin/wrangler.js
CHANGED
|
@@ -20,7 +20,7 @@ function runWrangler() {
|
|
|
20
20
|
// Note Volta and nvm are also recommended in the official docs:
|
|
21
21
|
// https://developers.cloudflare.com/workers/get-started/guide#2-install-the-workers-cli
|
|
22
22
|
console.error(
|
|
23
|
-
`Wrangler requires at least
|
|
23
|
+
`Wrangler requires at least Node.js v${MIN_NODE_VERSION}. You are using v${process.versions.node}. Please update your version of Node.js.
|
|
24
24
|
|
|
25
25
|
Consider using a Node.js version manager such as https://volta.sh/ or https://github.com/nvm-sh/nvm.`
|
|
26
26
|
);
|
|
@@ -79,80 +79,6 @@ Consider using a Node.js version manager such as https://volta.sh/ or https://gi
|
|
|
79
79
|
});
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
/**
|
|
83
|
-
* Runs a locally-installed version of wrangler, delegating from this version.
|
|
84
|
-
* @throws {MODULE_NOT_FOUND} if there isn't a locally installed version of wrangler.
|
|
85
|
-
*/
|
|
86
|
-
function runDelegatedWrangler() {
|
|
87
|
-
const packageJsonPath = require.resolve("wrangler/package.json", {
|
|
88
|
-
paths: [process.cwd()],
|
|
89
|
-
});
|
|
90
|
-
const {
|
|
91
|
-
bin: { wrangler: binaryPath },
|
|
92
|
-
version,
|
|
93
|
-
} = JSON.parse(fs.readFileSync(packageJsonPath));
|
|
94
|
-
const resolvedBinaryPath = path.resolve(packageJsonPath, "..", binaryPath);
|
|
95
|
-
|
|
96
|
-
// Make sure the user knows we're delegating to a different installation
|
|
97
|
-
const currentPackageJsonPath = path.resolve(__dirname, "..", "package.json");
|
|
98
|
-
const currentPackage = JSON.parse(fs.readFileSync(currentPackageJsonPath));
|
|
99
|
-
const argv = process.argv.slice(2).join(" ");
|
|
100
|
-
console.log(
|
|
101
|
-
`Delegating to locally-installed wrangler@${version} over global wrangler@${currentPackage.version}...
|
|
102
|
-
Run \`npx wrangler ${argv}\` to use the local version directly.
|
|
103
|
-
`
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
// this call to `spawn` is simpler because the delegated version will do all
|
|
107
|
-
// of the other work.
|
|
108
|
-
return spawn(
|
|
109
|
-
process.execPath,
|
|
110
|
-
[resolvedBinaryPath, ...process.argv.slice(2)],
|
|
111
|
-
{
|
|
112
|
-
stdio: ["inherit", "inherit", "inherit", "ipc"],
|
|
113
|
-
}
|
|
114
|
-
)
|
|
115
|
-
.on("exit", (code) =>
|
|
116
|
-
process.exit(code === undefined || code === null ? 0 : code)
|
|
117
|
-
)
|
|
118
|
-
.on("message", (message) => {
|
|
119
|
-
if (process.send) {
|
|
120
|
-
process.send(message);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Indicates if this invocation of `wrangler` should delegate
|
|
127
|
-
* to a locally-installed version.
|
|
128
|
-
*/
|
|
129
|
-
function shouldDelegate() {
|
|
130
|
-
try {
|
|
131
|
-
// `require.resolve` will throw if it can't find
|
|
132
|
-
// a locally-installed version of `wrangler`
|
|
133
|
-
const delegatedPackageJson = require.resolve("wrangler/package.json", {
|
|
134
|
-
paths: [process.cwd()],
|
|
135
|
-
});
|
|
136
|
-
const thisPackageJson = path.resolve(__dirname, "..", "package.json");
|
|
137
|
-
// if it's the same path, then we're already a local install -- no need to delegate
|
|
138
|
-
return thisPackageJson !== delegatedPackageJson;
|
|
139
|
-
} catch (e) {
|
|
140
|
-
// there's no local version to delegate to -- `require.resolve` threw
|
|
141
|
-
return false;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
async function main() {
|
|
146
|
-
wranglerProcess = shouldDelegate() ? runDelegatedWrangler() : runWrangler();
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
process.on("SIGINT", () => {
|
|
150
|
-
wranglerProcess && wranglerProcess.kill();
|
|
151
|
-
});
|
|
152
|
-
process.on("SIGTERM", () => {
|
|
153
|
-
wranglerProcess && wranglerProcess.kill();
|
|
154
|
-
});
|
|
155
|
-
|
|
156
82
|
// semiver implementation via https://github.com/lukeed/semiver/blob/ae7eebe6053c96be63032b14fb0b68e2553fcac4/src/index.js
|
|
157
83
|
|
|
158
84
|
/**
|
|
@@ -185,4 +111,12 @@ function semiver(a, b, bool) {
|
|
|
185
111
|
|
|
186
112
|
// end semiver implementation
|
|
187
113
|
|
|
188
|
-
|
|
114
|
+
if (module === require.main) {
|
|
115
|
+
wranglerProcess = runWrangler();
|
|
116
|
+
process.on("SIGINT", () => {
|
|
117
|
+
wranglerProcess && wranglerProcess.kill();
|
|
118
|
+
});
|
|
119
|
+
process.on("SIGTERM", () => {
|
|
120
|
+
wranglerProcess && wranglerProcess.kill();
|
|
121
|
+
});
|
|
122
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wrangler",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-fac199ba",
|
|
4
4
|
"description": "Command-line interface for all things Cloudflare Workers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"wrangler",
|
|
@@ -42,14 +42,10 @@
|
|
|
42
42
|
"wrangler2": "./bin/wrangler.js"
|
|
43
43
|
},
|
|
44
44
|
"files": [
|
|
45
|
-
"src",
|
|
46
45
|
"bin",
|
|
47
|
-
"miniflare-config-stubs",
|
|
48
46
|
"miniflare-dist",
|
|
49
47
|
"wrangler-dist",
|
|
50
48
|
"templates",
|
|
51
|
-
"vendor",
|
|
52
|
-
"import_meta_url.js",
|
|
53
49
|
"kv-asset-handler.js",
|
|
54
50
|
"Cloudflare_CA.pem"
|
|
55
51
|
],
|
|
@@ -57,15 +53,19 @@
|
|
|
57
53
|
"assert-git-version": "node -r esbuild-register scripts/assert-git-version.ts",
|
|
58
54
|
"build": "npm run clean && npm run bundle && npm run emit-types",
|
|
59
55
|
"bundle": "node -r esbuild-register scripts/bundle.ts",
|
|
60
|
-
"check:
|
|
56
|
+
"check:lint": "eslint .",
|
|
57
|
+
"check:type": "tsc",
|
|
61
58
|
"clean": "rimraf wrangler-dist miniflare-dist emitted-types",
|
|
62
59
|
"dev": "npm run clean && concurrently -c black,blue --kill-others-on-fail false 'npm run bundle -- --watch' 'npm run check:type -- --watch --preserveWatchOutput'",
|
|
63
60
|
"emit-types": "tsc -p tsconfig.emit.json && node -r esbuild-register scripts/emit-types.ts",
|
|
64
61
|
"prepublishOnly": "SOURCEMAPS=false npm run build",
|
|
65
62
|
"start": "npm run bundle && cross-env NODE_OPTIONS=--enable-source-maps ./bin/wrangler.js",
|
|
66
|
-
"test": "npm run assert-git-version && jest
|
|
67
|
-
"test
|
|
68
|
-
"test:
|
|
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
69
|
},
|
|
70
70
|
"jest": {
|
|
71
71
|
"coverageReporters": [
|
|
@@ -82,8 +82,8 @@
|
|
|
82
82
|
"setupFilesAfterEnv": [
|
|
83
83
|
"<rootDir>/src/__tests__/jest.setup.ts"
|
|
84
84
|
],
|
|
85
|
-
"testRegex": "
|
|
86
|
-
"testTimeout":
|
|
85
|
+
"testRegex": "src/__tests__/.*\\.(test|spec)\\.[jt]sx?$",
|
|
86
|
+
"testTimeout": 50000,
|
|
87
87
|
"transform": {
|
|
88
88
|
"^.+\\.c?(t|j)sx?$": [
|
|
89
89
|
"esbuild-jest",
|
|
@@ -100,13 +100,10 @@
|
|
|
100
100
|
"@cloudflare/kv-asset-handler": "^0.2.0",
|
|
101
101
|
"@esbuild-plugins/node-globals-polyfill": "^0.1.1",
|
|
102
102
|
"@esbuild-plugins/node-modules-polyfill": "^0.1.4",
|
|
103
|
-
"@miniflare/core": "2.12.0",
|
|
104
|
-
"@miniflare/d1": "2.12.0",
|
|
105
|
-
"@miniflare/durable-objects": "2.12.0",
|
|
106
103
|
"blake3-wasm": "^2.1.5",
|
|
107
104
|
"chokidar": "^3.5.3",
|
|
108
105
|
"esbuild": "0.16.3",
|
|
109
|
-
"miniflare": "
|
|
106
|
+
"miniflare": "3.20230814.1",
|
|
110
107
|
"nanoid": "^3.3.3",
|
|
111
108
|
"path-to-regexp": "^6.2.0",
|
|
112
109
|
"selfsigned": "^2.0.1",
|
|
@@ -114,11 +111,12 @@
|
|
|
114
111
|
"xxhash-wasm": "^1.0.1"
|
|
115
112
|
},
|
|
116
113
|
"devDependencies": {
|
|
114
|
+
"@cloudflare/eslint-config-worker": "*",
|
|
117
115
|
"@cloudflare/types": "^6.18.4",
|
|
118
|
-
"@cloudflare/workers-
|
|
116
|
+
"@cloudflare/workers-tsconfig": "*",
|
|
117
|
+
"@cloudflare/workers-types": "^4.20230724.0",
|
|
119
118
|
"@iarna/toml": "^3.0.0",
|
|
120
119
|
"@microsoft/api-extractor": "^7.28.3",
|
|
121
|
-
"@miniflare/tre": "^3.0.0-next.8",
|
|
122
120
|
"@types/better-sqlite3": "^7.6.0",
|
|
123
121
|
"@types/busboy": "^1.5.0",
|
|
124
122
|
"@types/command-exists": "^1.2.0",
|
|
@@ -133,7 +131,7 @@
|
|
|
133
131
|
"@types/supports-color": "^8.1.1",
|
|
134
132
|
"@types/ws": "^8.5.3",
|
|
135
133
|
"@types/yargs": "^17.0.10",
|
|
136
|
-
"@webcontainer/env": "^1.0
|
|
134
|
+
"@webcontainer/env": "^1.1.0",
|
|
137
135
|
"body-parser": "^1.20.0",
|
|
138
136
|
"chalk": "^2.4.2",
|
|
139
137
|
"cli-table3": "^0.6.3",
|
|
@@ -174,13 +172,16 @@
|
|
|
174
172
|
"remove-accents-esm": "^0.0.1",
|
|
175
173
|
"semiver": "^1.1.0",
|
|
176
174
|
"serve-static": "^1.15.0",
|
|
175
|
+
"shellac": "^0.8.0",
|
|
177
176
|
"signal-exit": "^3.0.7",
|
|
177
|
+
"strip-ansi": "^7.0.1",
|
|
178
178
|
"supports-color": "^9.2.2",
|
|
179
179
|
"timeago.js": "^4.0.2",
|
|
180
180
|
"tmp-promise": "^3.0.3",
|
|
181
181
|
"ts-dedent": "^2.2.0",
|
|
182
|
-
"undici": "5.
|
|
182
|
+
"undici": "5.20.0",
|
|
183
183
|
"update-check": "^1.5.4",
|
|
184
|
+
"vitest": "^0.31.0",
|
|
184
185
|
"ws": "^8.5.0",
|
|
185
186
|
"xdg-app-paths": "^7.3.0",
|
|
186
187
|
"yargs": "^17.4.1",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const urls = new Set();
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
function checkURL(request, init) {
|
|
4
4
|
const url =
|
|
5
5
|
request instanceof URL
|
|
6
6
|
? request
|
|
@@ -15,9 +15,16 @@ export function checkedFetch(request, init) {
|
|
|
15
15
|
urls.add(url.toString());
|
|
16
16
|
console.warn(
|
|
17
17
|
`WARNING: known issue with \`fetch()\` requests to custom HTTPS ports in published Workers:\n` +
|
|
18
|
-
` - ${url.toString()} - the custom port will be ignored when the Worker is published using the \`wrangler
|
|
18
|
+
` - ${url.toString()} - the custom port will be ignored when the Worker is published using the \`wrangler deploy\` command.\n`
|
|
19
19
|
);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
return globalThis.fetch(request, init);
|
|
23
22
|
}
|
|
23
|
+
|
|
24
|
+
globalThis.fetch = new Proxy(globalThis.fetch, {
|
|
25
|
+
apply(target, thisArg, argArray) {
|
|
26
|
+
const [request, init] = argArray;
|
|
27
|
+
checkURL(request, init);
|
|
28
|
+
return Reflect.apply(target, thisArg, argArray);
|
|
29
|
+
},
|
|
30
|
+
});
|
package/templates/facade.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
declare module "__ENTRY_POINT__" {
|
|
2
2
|
import type { Middleware } from "./middleware/common";
|
|
3
|
-
const worker: ExportedHandler & {
|
|
3
|
+
const worker: ExportedHandler & {
|
|
4
|
+
middleware?: Middleware[];
|
|
5
|
+
envWrappers: ((env: Record<string, unknown>) => Record<string, unknown>)[];
|
|
6
|
+
};
|
|
4
7
|
export default worker;
|
|
5
8
|
}
|
|
6
9
|
|
package/templates/gitignore
CHANGED
|
@@ -5,13 +5,18 @@ export type Dispatcher = (
|
|
|
5
5
|
init: { cron?: string }
|
|
6
6
|
) => Awaitable<void>;
|
|
7
7
|
|
|
8
|
+
export type IncomingRequest = Request<
|
|
9
|
+
unknown,
|
|
10
|
+
IncomingRequestCfProperties<unknown>
|
|
11
|
+
>;
|
|
12
|
+
|
|
8
13
|
export interface MiddlewareContext {
|
|
9
14
|
dispatch: Dispatcher;
|
|
10
|
-
next(request:
|
|
15
|
+
next(request: IncomingRequest, env: any): Awaitable<Response>;
|
|
11
16
|
}
|
|
12
17
|
|
|
13
18
|
export type Middleware = (
|
|
14
|
-
request:
|
|
19
|
+
request: IncomingRequest,
|
|
15
20
|
env: any,
|
|
16
21
|
ctx: ExecutionContext,
|
|
17
22
|
middlewareCtx: MiddlewareContext
|
|
@@ -32,7 +37,7 @@ export function __facade_registerInternal__(
|
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
function __facade_invokeChain__(
|
|
35
|
-
request:
|
|
40
|
+
request: IncomingRequest,
|
|
36
41
|
env: any,
|
|
37
42
|
ctx: ExecutionContext,
|
|
38
43
|
dispatch: Dispatcher,
|
|
@@ -49,7 +54,7 @@ function __facade_invokeChain__(
|
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
export function __facade_invoke__(
|
|
52
|
-
request:
|
|
57
|
+
request: IncomingRequest,
|
|
53
58
|
env: any,
|
|
54
59
|
ctx: ExecutionContext,
|
|
55
60
|
dispatch: Dispatcher,
|
|
@@ -36,17 +36,68 @@ class __Facade_ScheduledController__ implements ScheduledController {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
const __facade_modules_fetch__:
|
|
40
|
-
|
|
39
|
+
const __facade_modules_fetch__: ExportedHandlerFetchHandler = function (
|
|
40
|
+
request,
|
|
41
|
+
env,
|
|
42
|
+
ctx
|
|
43
|
+
) {
|
|
44
|
+
if (worker.fetch === undefined)
|
|
45
|
+
throw new Error("Handler does not export a fetch() function.");
|
|
41
46
|
return worker.fetch(request, env, ctx);
|
|
42
47
|
};
|
|
43
48
|
|
|
44
|
-
|
|
45
|
-
|
|
49
|
+
function getMaskedEnv(rawEnv: unknown) {
|
|
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
|
+
}
|
|
55
|
+
}
|
|
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
|
+
|
|
90
|
+
fetch(request, rawEnv, ctx) {
|
|
91
|
+
const env = getMaskedEnv(rawEnv);
|
|
46
92
|
// Get the chain of middleware from the worker object
|
|
47
93
|
if (worker.middleware && worker.middleware.length > 0) {
|
|
48
|
-
|
|
49
|
-
|
|
94
|
+
// Make sure we only register middleware once:
|
|
95
|
+
// https://github.com/cloudflare/workers-sdk/issues/2386#issuecomment-1614715911
|
|
96
|
+
if (!registeredMiddleware) {
|
|
97
|
+
registeredMiddleware = true;
|
|
98
|
+
for (const middleware of worker.middleware) {
|
|
99
|
+
__facade_register__(middleware);
|
|
100
|
+
}
|
|
50
101
|
}
|
|
51
102
|
|
|
52
103
|
const __facade_modules_dispatch__: Dispatcher = function (type, init) {
|
|
@@ -71,14 +122,16 @@ const facade: ExportedHandler<unknown> = {
|
|
|
71
122
|
// We didn't have any middleware so we can skip the invocation chain,
|
|
72
123
|
// and just call the fetch handler directly
|
|
73
124
|
|
|
74
|
-
// We "don't care" if this is undefined as we want to have the same
|
|
125
|
+
// We "don't care" if this is undefined as we want to have the same behavior
|
|
75
126
|
// as if the worker completely bypassed middleware.
|
|
76
|
-
return
|
|
127
|
+
return __facade_modules_fetch__(request, env, ctx);
|
|
77
128
|
}
|
|
78
129
|
},
|
|
79
|
-
scheduled: worker.scheduled,
|
|
80
|
-
queue: worker.queue,
|
|
81
|
-
trace: worker.trace,
|
|
82
130
|
};
|
|
83
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);
|
|
135
|
+
}
|
|
136
|
+
|
|
84
137
|
export default facade;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Awaitable,
|
|
3
3
|
Dispatcher,
|
|
4
|
+
IncomingRequest,
|
|
4
5
|
Middleware,
|
|
5
6
|
__facade_invoke__,
|
|
6
7
|
__facade_register__,
|
|
@@ -183,8 +184,6 @@ __facade__originalAddEventListener__("fetch", (event) => {
|
|
|
183
184
|
});
|
|
184
185
|
|
|
185
186
|
__FACADE_EVENT_TARGET__.dispatchEvent(facadeEvent);
|
|
186
|
-
// @ts-expect-error `waitUntil` types are currently broken, blocked on
|
|
187
|
-
// https://github.com/cloudflare/workerd/pull/191
|
|
188
187
|
event.waitUntil(Promise.all(facadeEvent[__facade_waitUntil__]));
|
|
189
188
|
}
|
|
190
189
|
};
|
|
@@ -197,8 +196,6 @@ __facade__originalAddEventListener__("fetch", (event) => {
|
|
|
197
196
|
|
|
198
197
|
__FACADE_EVENT_TARGET__.dispatchEvent(facadeEvent);
|
|
199
198
|
facadeEvent[__facade_dispatched__] = true;
|
|
200
|
-
// @ts-expect-error `waitUntil` types are currently broken, blocked on
|
|
201
|
-
// https://github.com/cloudflare/workerd/pull/191
|
|
202
199
|
event.waitUntil(Promise.all(facadeEvent[__facade_waitUntil__]));
|
|
203
200
|
|
|
204
201
|
const response = facadeEvent[__facade_response__];
|
|
@@ -210,7 +207,7 @@ __facade__originalAddEventListener__("fetch", (event) => {
|
|
|
210
207
|
|
|
211
208
|
event.respondWith(
|
|
212
209
|
__facade_invoke__(
|
|
213
|
-
event.request,
|
|
210
|
+
event.request as IncomingRequest,
|
|
214
211
|
globalThis,
|
|
215
212
|
ctx,
|
|
216
213
|
__facade_sw_dispatch__,
|
|
@@ -227,7 +224,5 @@ __facade__originalAddEventListener__("scheduled", (event) => {
|
|
|
227
224
|
});
|
|
228
225
|
|
|
229
226
|
__FACADE_EVENT_TARGET__.dispatchEvent(facadeEvent);
|
|
230
|
-
// @ts-expect-error `waitUntil` types are currently broken, blocked on
|
|
231
|
-
// https://github.com/cloudflare/workerd/pull/191
|
|
232
227
|
event.waitUntil(Promise.all(facadeEvent[__facade_waitUntil__]));
|
|
233
228
|
});
|
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
import type { Middleware } from "./common";
|
|
2
2
|
|
|
3
|
+
interface JsonError {
|
|
4
|
+
message?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
stack?: string;
|
|
7
|
+
cause?: JsonError;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function reduceError(e: any): JsonError {
|
|
11
|
+
return {
|
|
12
|
+
name: e?.name,
|
|
13
|
+
message: e?.message ?? String(e),
|
|
14
|
+
stack: e?.stack,
|
|
15
|
+
cause: e?.cause === undefined ? undefined : reduceError(e.cause),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
3
19
|
// See comment in `bundle.ts` for details on why this is needed
|
|
4
20
|
const jsonError: Middleware = async (request, env, _ctx, middlewareCtx) => {
|
|
5
21
|
try {
|
|
6
22
|
return await middlewareCtx.next(request, env);
|
|
7
23
|
} catch (e: any) {
|
|
8
|
-
const error =
|
|
9
|
-
name: e?.name,
|
|
10
|
-
message: e?.message ?? String(e),
|
|
11
|
-
stack: e?.stack,
|
|
12
|
-
};
|
|
24
|
+
const error = reduceError(e);
|
|
13
25
|
return Response.json(error, {
|
|
14
26
|
status: 500,
|
|
15
27
|
headers: { "MF-Experimental-Error-Stack": "true" },
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
/// <reference path="middleware-multiworker-dev.d.ts"/>
|
|
3
|
+
|
|
4
|
+
import { workers } from "config:middleware/multiworker-dev";
|
|
5
|
+
import type { WorkerRegistry } from "../../src/dev-registry";
|
|
6
|
+
|
|
7
|
+
export function wrap(env: Record<string, unknown>) {
|
|
8
|
+
const facadeEnv = { ...env };
|
|
9
|
+
// For every Worker definition that's available,
|
|
10
|
+
// create a fetcher for it on the facade env.
|
|
11
|
+
// for const [name, binding] of env
|
|
12
|
+
// if Workers[name]
|
|
13
|
+
// const details = Workers[name];
|
|
14
|
+
|
|
15
|
+
for (const [name, details] of Object.entries(workers as WorkerRegistry)) {
|
|
16
|
+
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
|
+
};
|
|
45
|
+
} else {
|
|
46
|
+
// This means there's no dev binding available.
|
|
47
|
+
// Let's use whatever's available, or put a shim with a message.
|
|
48
|
+
facadeEnv[name] = facadeEnv[name] || {
|
|
49
|
+
async fetch() {
|
|
50
|
+
return new Response(
|
|
51
|
+
`You should start up wrangler dev --local on the ${name} worker`,
|
|
52
|
+
{ status: 404 }
|
|
53
|
+
);
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return facadeEnv;
|
|
59
|
+
}
|