wrangler 0.0.0-ea54623c → 0.0.0-ea71df3d4

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.
Files changed (239) hide show
  1. package/README.md +35 -49
  2. package/bin/wrangler.js +27 -102
  3. package/config-schema.json +2432 -0
  4. package/package.json +182 -185
  5. package/templates/__tests__/pages-dev-util.test.ts +128 -0
  6. package/templates/__tests__/tsconfig-sanity.ts +12 -0
  7. package/templates/__tests__/tsconfig.json +8 -0
  8. package/templates/checked-fetch.js +19 -6
  9. package/templates/facade.d.ts +19 -0
  10. package/templates/gitignore +2 -3
  11. package/templates/init-tests/test-jest-new-worker.js +3 -5
  12. package/templates/init-tests/test-vitest-new-worker.js +4 -6
  13. package/templates/init-tests/test-vitest-new-worker.ts +25 -0
  14. package/templates/middleware/common.ts +9 -4
  15. package/templates/middleware/loader-modules.ts +94 -44
  16. package/templates/middleware/loader-sw.ts +48 -32
  17. package/templates/middleware/middleware-ensure-req-body-drained.ts +18 -0
  18. package/templates/middleware/middleware-miniflare3-json-error.ts +32 -0
  19. package/templates/middleware/middleware-patch-console-prefix.d.ts +3 -0
  20. package/templates/middleware/middleware-patch-console-prefix.ts +21 -0
  21. package/templates/middleware/middleware-scheduled.ts +15 -1
  22. package/templates/mixedMode/proxyServerWorker/index.ts +26 -0
  23. package/templates/mixedMode/proxyServerWorker/wrangler.jsonc +4 -0
  24. package/templates/modules-watch-stub.js +4 -0
  25. package/templates/new-worker-scheduled.ts +1 -1
  26. package/templates/new-worker.ts +4 -1
  27. package/templates/pages-dev-pipeline.ts +12 -14
  28. package/templates/pages-dev-util.ts +55 -0
  29. package/templates/pages-shim.ts +1 -1
  30. package/templates/pages-template-plugin.ts +37 -14
  31. package/templates/pages-template-worker.ts +33 -7
  32. package/templates/startDevWorker/InspectorProxyWorker.ts +679 -0
  33. package/templates/startDevWorker/ProxyWorker.ts +336 -0
  34. package/templates/tsconfig-sanity.ts +11 -0
  35. package/templates/tsconfig.init.json +22 -0
  36. package/templates/tsconfig.json +12 -102
  37. package/templates/tsconfig.tsbuildinfo +1 -0
  38. package/wrangler-dist/InspectorProxyWorker.js +471 -0
  39. package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
  40. package/wrangler-dist/ProxyWorker.js +238 -0
  41. package/wrangler-dist/ProxyWorker.js.map +6 -0
  42. package/wrangler-dist/cli.d.ts +26457 -498
  43. package/wrangler-dist/cli.js +146525 -150172
  44. package/wrangler-dist/cli.js.map +7 -0
  45. package/Cloudflare_CA.pem +0 -18
  46. package/import_meta_url.js +0 -3
  47. package/miniflare-config-stubs/.env.empty +0 -0
  48. package/miniflare-config-stubs/package.empty.json +0 -1
  49. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  50. package/miniflare-dist/index.mjs +0 -6310
  51. package/src/__tests__/api-dev.test.ts +0 -209
  52. package/src/__tests__/api-devregistry.test.js +0 -56
  53. package/src/__tests__/api.test.ts +0 -80
  54. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  55. package/src/__tests__/config-cache.test.ts +0 -42
  56. package/src/__tests__/configuration.test.ts +0 -3864
  57. package/src/__tests__/dev.test.tsx +0 -1356
  58. package/src/__tests__/dialogs.test.tsx +0 -40
  59. package/src/__tests__/generate.test.ts +0 -91
  60. package/src/__tests__/guess-worker-format.test.ts +0 -85
  61. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  62. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  63. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  64. package/src/__tests__/helpers/mock-bin.ts +0 -36
  65. package/src/__tests__/helpers/mock-cfetch.ts +0 -316
  66. package/src/__tests__/helpers/mock-console.ts +0 -106
  67. package/src/__tests__/helpers/mock-dialogs.ts +0 -153
  68. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -8
  69. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  70. package/src/__tests__/helpers/mock-istty.ts +0 -74
  71. package/src/__tests__/helpers/mock-known-routes.ts +0 -7
  72. package/src/__tests__/helpers/mock-kv.ts +0 -33
  73. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -252
  74. package/src/__tests__/helpers/mock-process.ts +0 -39
  75. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  76. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  77. package/src/__tests__/helpers/msw/handlers/index.ts +0 -13
  78. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -104
  79. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -36
  80. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -80
  81. package/src/__tests__/helpers/msw/handlers/user.ts +0 -63
  82. package/src/__tests__/helpers/msw/index.ts +0 -4
  83. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  84. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  85. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  86. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  87. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  88. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -8
  89. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  90. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  91. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  92. package/src/__tests__/https-options.test.ts +0 -163
  93. package/src/__tests__/index.test.ts +0 -249
  94. package/src/__tests__/init.test.ts +0 -2816
  95. package/src/__tests__/jest.setup.ts +0 -186
  96. package/src/__tests__/kv.test.ts +0 -1671
  97. package/src/__tests__/logger.test.ts +0 -141
  98. package/src/__tests__/metrics.test.ts +0 -450
  99. package/src/__tests__/middleware.scheduled.test.ts +0 -135
  100. package/src/__tests__/middleware.test.ts +0 -726
  101. package/src/__tests__/package-manager.test.ts +0 -353
  102. package/src/__tests__/pages.test.ts +0 -2111
  103. package/src/__tests__/parse.test.ts +0 -330
  104. package/src/__tests__/paths.test.ts +0 -39
  105. package/src/__tests__/publish.test.ts +0 -7090
  106. package/src/__tests__/pubsub.test.ts +0 -367
  107. package/src/__tests__/r2.test.ts +0 -371
  108. package/src/__tests__/route.test.ts +0 -45
  109. package/src/__tests__/secret.test.ts +0 -644
  110. package/src/__tests__/tail.test.ts +0 -775
  111. package/src/__tests__/test-old-node-version.js +0 -31
  112. package/src/__tests__/user.test.ts +0 -155
  113. package/src/__tests__/validate-dev-props.test.ts +0 -56
  114. package/src/__tests__/version.test.ts +0 -35
  115. package/src/__tests__/whoami.test.tsx +0 -273
  116. package/src/__tests__/worker-namespace.test.ts +0 -319
  117. package/src/abort.d.ts +0 -3
  118. package/src/api/dev.ts +0 -207
  119. package/src/api/index.ts +0 -2
  120. package/src/bundle-reporter.tsx +0 -29
  121. package/src/bundle.ts +0 -756
  122. package/src/cfetch/index.ts +0 -121
  123. package/src/cfetch/internal.ts +0 -314
  124. package/src/cli.ts +0 -29
  125. package/src/config/README.md +0 -107
  126. package/src/config/config.ts +0 -275
  127. package/src/config/diagnostics.ts +0 -80
  128. package/src/config/environment.ts +0 -505
  129. package/src/config/index.ts +0 -293
  130. package/src/config/validation-helpers.ts +0 -597
  131. package/src/config/validation.ts +0 -1930
  132. package/src/config-cache.ts +0 -85
  133. package/src/create-worker-preview.ts +0 -275
  134. package/src/create-worker-upload-form.ts +0 -301
  135. package/src/d1/backups.tsx +0 -212
  136. package/src/d1/create.tsx +0 -54
  137. package/src/d1/delete.tsx +0 -56
  138. package/src/d1/execute.tsx +0 -294
  139. package/src/d1/formatTimeAgo.ts +0 -14
  140. package/src/d1/index.ts +0 -75
  141. package/src/d1/list.tsx +0 -48
  142. package/src/d1/options.ts +0 -12
  143. package/src/d1/types.tsx +0 -14
  144. package/src/d1/utils.ts +0 -39
  145. package/src/dev/dev-vars.ts +0 -36
  146. package/src/dev/dev.tsx +0 -575
  147. package/src/dev/get-local-persistence-path.tsx +0 -31
  148. package/src/dev/local.tsx +0 -686
  149. package/src/dev/remote.tsx +0 -590
  150. package/src/dev/start-server.ts +0 -506
  151. package/src/dev/use-esbuild.ts +0 -197
  152. package/src/dev/validate-dev-props.ts +0 -31
  153. package/src/dev-registry.tsx +0 -190
  154. package/src/dev.tsx +0 -872
  155. package/src/dialogs.tsx +0 -158
  156. package/src/dispatch-namespace.ts +0 -206
  157. package/src/durable.ts +0 -102
  158. package/src/entry.ts +0 -329
  159. package/src/environment-variables.ts +0 -50
  160. package/src/errors.ts +0 -11
  161. package/src/generate.ts +0 -131
  162. package/src/git-client.ts +0 -42
  163. package/src/global-wrangler-config-path.ts +0 -26
  164. package/src/https-options.ts +0 -127
  165. package/src/index.tsx +0 -2369
  166. package/src/init.ts +0 -971
  167. package/src/inspect.ts +0 -747
  168. package/src/intl-polyfill.d.ts +0 -139
  169. package/src/is-ci.ts +0 -14
  170. package/src/is-interactive.ts +0 -12
  171. package/src/kv.ts +0 -430
  172. package/src/logger.ts +0 -80
  173. package/src/metrics/index.ts +0 -5
  174. package/src/metrics/metrics-config.ts +0 -239
  175. package/src/metrics/metrics-dispatcher.ts +0 -96
  176. package/src/metrics/metrics-usage-headers.ts +0 -24
  177. package/src/metrics/send-event.ts +0 -93
  178. package/src/miniflare-cli/README.md +0 -30
  179. package/src/miniflare-cli/assets.ts +0 -215
  180. package/src/miniflare-cli/index.ts +0 -208
  181. package/src/miniflare-cli/request-context.ts +0 -40
  182. package/src/module-collection.ts +0 -267
  183. package/src/open-in-browser.ts +0 -17
  184. package/src/package-manager.ts +0 -219
  185. package/src/pages/build.tsx +0 -238
  186. package/src/pages/constants.ts +0 -16
  187. package/src/pages/deployments.tsx +0 -106
  188. package/src/pages/dev.tsx +0 -687
  189. package/src/pages/errors.ts +0 -66
  190. package/src/pages/functions/buildPlugin.ts +0 -110
  191. package/src/pages/functions/buildWorker.ts +0 -156
  192. package/src/pages/functions/filepath-routing.test.ts +0 -234
  193. package/src/pages/functions/filepath-routing.ts +0 -189
  194. package/src/pages/functions/identifiers.ts +0 -78
  195. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  196. package/src/pages/functions/routes-consolidation.ts +0 -73
  197. package/src/pages/functions/routes-transformation.test.ts +0 -282
  198. package/src/pages/functions/routes-transformation.ts +0 -115
  199. package/src/pages/functions/routes-validation.test.ts +0 -403
  200. package/src/pages/functions/routes-validation.ts +0 -202
  201. package/src/pages/functions/routes.ts +0 -151
  202. package/src/pages/functions.tsx +0 -82
  203. package/src/pages/hash.tsx +0 -13
  204. package/src/pages/index.tsx +0 -94
  205. package/src/pages/projects.tsx +0 -169
  206. package/src/pages/publish.tsx +0 -436
  207. package/src/pages/types.ts +0 -49
  208. package/src/pages/upload.tsx +0 -398
  209. package/src/pages/utils.ts +0 -12
  210. package/src/parse.ts +0 -286
  211. package/src/paths.ts +0 -71
  212. package/src/preview.ts +0 -31
  213. package/src/proxy.ts +0 -657
  214. package/src/publish.ts +0 -878
  215. package/src/pubsub/index.ts +0 -286
  216. package/src/pubsub/pubsub-commands.tsx +0 -623
  217. package/src/r2.ts +0 -131
  218. package/src/selfsigned.d.ts +0 -29
  219. package/src/sites.tsx +0 -372
  220. package/src/tail/filters.ts +0 -277
  221. package/src/tail/index.ts +0 -315
  222. package/src/tail/printing.ts +0 -107
  223. package/src/update-check.ts +0 -19
  224. package/src/user/choose-account.tsx +0 -69
  225. package/src/user/env-vars.ts +0 -46
  226. package/src/user/generate-auth-url.ts +0 -33
  227. package/src/user/generate-random-state.ts +0 -16
  228. package/src/user/index.ts +0 -3
  229. package/src/user/user.tsx +0 -1192
  230. package/src/whoami.tsx +0 -169
  231. package/src/worker.ts +0 -234
  232. package/src/zones.ts +0 -167
  233. package/templates/d1-beta-facade.js +0 -174
  234. package/templates/experimental-local-cache-stubs.js +0 -27
  235. package/templates/first-party-worker-module-facade.ts +0 -18
  236. package/templates/format-dev-errors.ts +0 -32
  237. package/templates/serve-static-assets.ts +0 -63
  238. package/templates/service-bindings-module-facade.js +0 -54
  239. package/templates/service-bindings-sw-facade.js +0 -42
package/README.md CHANGED
@@ -1,88 +1,74 @@
1
1
  <h1 align="center"> ⛅️ wrangler </h1>
2
2
  <section align="center" id="shieldio-badges">
3
3
  <a href="https://www.npmjs.com/package/wrangler"><img alt="npm" src="https://img.shields.io/npm/dw/wrangler?style=flat-square"></a>
4
- <img alt="GitHub contributors" src="https://img.shields.io/github/contributors/cloudflare/wrangler2?style=flat-square">
5
- <img alt="GitHub commit activity (branch)" src="https://img.shields.io/github/commit-activity/w/cloudflare/wrangler2/main?style=flat-square">
6
- <a href="https://discord.gg/CloudflareDev"><img alt="Discord" src="https://img.shields.io/discord/595317990191398933?color=%23F48120&style=flat-square"></a>
4
+ <img alt="GitHub contributors" src="https://img.shields.io/github/contributors/cloudflare/workers-sdk?style=flat-square">
5
+ <img alt="GitHub commit activity (branch)" src="https://img.shields.io/github/commit-activity/w/cloudflare/workers-sdk/main?style=flat-square">
6
+ <a href="https://discord.cloudflare.com"><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.
10
-
11
9
  `wrangler` is a command line tool for building [Cloudflare Workers](https://workers.cloudflare.com/).
12
10
 
13
11
  ## Quick Start
14
12
 
13
+ To get started quickly with a Hello World worker, run the command below:
14
+
15
15
  ```bash
16
- # Make a javascript file
17
- echo "export default { fetch() { return new Response('hello world') } }" > index.js
18
- # try it out
19
- npx wrangler dev index.js
20
- # and then publish it
21
- npx wrangler publish index.js --name my-worker
22
- # visit https://my-worker.<your workers subdomain>.workers.dev
16
+ npx wrangler init my-worker -y
23
17
  ```
24
18
 
25
- ## Create a Project
19
+ For more info, visit our [Getting Started](https://developers.cloudflare.com/workers/get-started/guide/) guide.
26
20
 
27
- ```bash
28
- # Generate a new project
29
- npx wrangler init my-worker
30
- # try it out
31
- cd my-worker && npm run start
32
- # and then publish it
33
- npm run deploy
34
- ```
21
+ <details><summary>Wrangler System Requirements</summary>
35
22
 
36
- ## Installation:
23
+ We support running the Wrangler CLI with the [Current, Active, and Maintenance](https://nodejs.org/en/about/previous-releases) versions of Node.js. Your Worker will always be executed in `workerd`, the open source Cloudflare Workers runtime.
37
24
 
38
- ```bash
39
- $ npm install wrangler --save-dev
40
- ```
25
+ Wrangler is only supported on macOS 13.5+, Windows 11, and Linux distros that support glib 2.35. This follows [`workerd`'s OS support policy](https://github.com/cloudflare/workerd?tab=readme-ov-file#running-workerd).
26
+
27
+ </details>
28
+
29
+ ## Documentation
30
+
31
+ For the latest Wrangler documentation, [click here](https://developers.cloudflare.com/workers/wrangler/).
41
32
 
42
- ## Configuration:
33
+ To read more about Workers in general:
43
34
 
44
- 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.
35
+ - [Getting Started](https://developers.cloudflare.com/workers/get-started/guide/)
36
+ - [How Workers works](https://developers.cloudflare.com/workers/reference/how-workers-works/)
37
+ - [Observability](https://developers.cloudflare.com/workers/observability/)
38
+ - [Platform](https://developers.cloudflare.com/workers/platform/)
45
39
 
46
- example:
40
+ ## Configuration
41
+
42
+ Wrangler is configured via a `wrangler.toml` or `wrangler.json` file in the project root. An example configuration generated by `npx wrangler init` or `npx create cloudflare` is as follows:
47
43
 
48
44
  ```toml
49
- main = "./src/index.ts" # init w/ TypeScript
50
45
  name = "my-worker"
51
- compatibility_date = "YYY-MM-DD"
46
+ main = "./src/index.ts"
47
+ compatibility_date = "YYYY-MM-DD"
52
48
  ```
53
49
 
54
- for more detailed information about configuration, see the [documentation](https://developers.cloudflare.com/workers/cli-wrangler/configuration)
50
+ For more detailed information about configuration, refer to the [documentation](https://developers.cloudflare.com/workers/wrangler/configuration/).
55
51
 
56
52
  ## Commands
57
53
 
58
- ### `wrangler init [name]`
59
-
60
- Creates a Worker project. For details on configuration keys and values, refer to the [documentation](https://developers.cloudflare.com/workers/wrangler/commands/#init).
54
+ ### Workers
61
55
 
62
- ### `wrangler dev`
56
+ #### `wrangler dev`
63
57
 
64
58
  Start a local development server, with live reloading and devtools.
65
59
 
66
- ### `wrangler publish`
60
+ #### `wrangler deploy`
67
61
 
68
- Publish the given script to the worldwide Cloudflare network.
62
+ Publish the given script to Cloudflare's global network.
69
63
 
70
- For more commands and options, refer to the [documentation](https://developers.cloudflare.com/workers/cli-wrangler/commands).
64
+ For more commands and options, refer to the [documentation](https://developers.cloudflare.com/workers/wrangler/commands/).
71
65
 
72
- ## Pages
66
+ ### Pages
73
67
 
74
- ### `wrangler pages dev [directory] [-- command]`
68
+ #### `wrangler pages dev [directory]`
75
69
 
76
- Either serves a static build asset directory, or proxies itself in front of a command.
70
+ Serves a static build asset directory.
77
71
 
78
72
  Builds and runs functions from a `./functions` directory or uses a `_worker.js` file inside the static build asset directory.
79
73
 
80
74
  For more commands and options, refer to the [documentation](https://developers.cloudflare.com/pages/platform/functions#develop-and-preview-locally) or run `wrangler pages dev --help`.
81
-
82
- ## Documentation
83
-
84
- For the latest Wrangler documentation, [click here](https://developers.cloudflare.com/workers/wrangler/).
85
-
86
- ```
87
-
88
- ```
package/bin/wrangler.js CHANGED
@@ -1,26 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  const { spawn } = require("child_process");
3
3
  const path = require("path");
4
- const fs = require("fs");
5
- const os = require("os");
6
-
7
- const MIN_NODE_VERSION = "16.13.0";
8
- const debug =
9
- process.env["WRANGLER_LOG"] === "debug"
10
- ? (...args) => console.log(...args)
11
- : () => {};
12
4
 
5
+ const ERR_NODE_VERSION = "18.0.0";
6
+ const MIN_NODE_VERSION = "20.0.0";
13
7
  let wranglerProcess;
14
8
 
15
9
  /**
16
10
  * Executes ../wrangler-dist/cli.js
17
11
  */
18
12
  function runWrangler() {
19
- if (semiver(process.versions.node, MIN_NODE_VERSION) < 0) {
13
+ if (semiver(process.versions.node, ERR_NODE_VERSION) < 0) {
20
14
  // Note Volta and nvm are also recommended in the official docs:
21
15
  // https://developers.cloudflare.com/workers/get-started/guide#2-install-the-workers-cli
22
16
  console.error(
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.
17
+ `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
18
 
25
19
  Consider using a Node.js version manager such as https://volta.sh/ or https://github.com/nvm-sh/nvm.`
26
20
  );
@@ -28,30 +22,6 @@ Consider using a Node.js version manager such as https://volta.sh/ or https://gi
28
22
  return;
29
23
  }
30
24
 
31
- let pathToCACerts = process.env.NODE_EXTRA_CA_CERTS;
32
- if (pathToCACerts) {
33
- // TODO:
34
- // - should we log a warning here?
35
- // - maybe we can generate a certificate that concatenates with ours?
36
- //
37
- // I do think it'll be rare that someone wants to add a cert AND
38
- // use Cloudflare WARP, but let's wait till the situation actually
39
- // arises before we do anything about it
40
- } else {
41
- const osTempDir = os.tmpdir();
42
- const certDir = path.join(osTempDir, "wrangler-cert");
43
- const certPath = path.join(certDir, "Cloudflare_CA.pem");
44
- // copy cert to the system temp dir if needed
45
- if (!fs.existsSync(certPath)) {
46
- fs.mkdirSync(certDir, { recursive: true });
47
- fs.writeFileSync(
48
- certPath,
49
- fs.readFileSync(path.join(__dirname, "../Cloudflare_CA.pem"), "utf-8")
50
- );
51
- }
52
- pathToCACerts = certPath;
53
- }
54
-
55
25
  return spawn(
56
26
  process.execPath,
57
27
  [
@@ -62,77 +32,24 @@ Consider using a Node.js version manager such as https://volta.sh/ or https://gi
62
32
  ...process.argv.slice(2),
63
33
  ],
64
34
  {
65
- stdio: "inherit",
66
- env: {
67
- ...process.env,
68
- NODE_EXTRA_CA_CERTS: pathToCACerts,
69
- },
70
- }
71
- ).on("exit", (code) =>
72
- process.exit(code === undefined || code === null ? 0 : code)
73
- );
74
- }
75
-
76
- /**
77
- * Runs a locally-installed version of wrangler, delegating from this version.
78
- * @throws {MODULE_NOT_FOUND} if there isn't a locally installed version of wrangler.
79
- */
80
- function runDelegatedWrangler() {
81
- const packageJsonPath = require.resolve("wrangler/package.json", {
82
- paths: [process.cwd()],
83
- });
84
- const {
85
- bin: { wrangler: binaryPath },
86
- version,
87
- } = JSON.parse(fs.readFileSync(packageJsonPath));
88
- const resolvedBinaryPath = path.resolve(packageJsonPath, "..", binaryPath);
89
-
90
- debug(`Delegating to locally-installed version of wrangler @ v${version}`);
91
-
92
- // this call to `spawn` is simpler because the delegated version will do all
93
- // of the other work.
94
- return spawn(
95
- process.execPath,
96
- [resolvedBinaryPath, ...process.argv.slice(2)],
97
- {
98
- stdio: "inherit",
35
+ stdio: ["inherit", "inherit", "inherit", "ipc"],
99
36
  }
100
- ).on("exit", (code) =>
101
- process.exit(code === undefined || code === null ? 0 : code)
102
- );
103
- }
104
-
105
- /**
106
- * Indicates if this invocation of `wrangler` should delegate
107
- * to a locally-installed version.
108
- */
109
- function shouldDelegate() {
110
- try {
111
- // `require.resolve` will throw if it can't find
112
- // a locally-installed version of `wrangler`
113
- const delegatedPackageJson = require.resolve("wrangler/package.json", {
114
- paths: [process.cwd()],
37
+ )
38
+ .on("exit", (code) =>
39
+ process.exit(code === undefined || code === null ? 0 : code)
40
+ )
41
+ .on("message", (message) => {
42
+ if (process.send) {
43
+ process.send(message);
44
+ }
45
+ })
46
+ .on("disconnect", () => {
47
+ if (process.disconnect) {
48
+ process.disconnect();
49
+ }
115
50
  });
116
- const thisPackageJson = path.resolve(__dirname, "..", "package.json");
117
- // if it's the same path, then we're already a local install -- no need to delegate
118
- return thisPackageJson !== delegatedPackageJson;
119
- } catch (e) {
120
- // there's no local version to delegate to -- `require.resolve` threw
121
- return false;
122
- }
123
- }
124
-
125
- async function main() {
126
- wranglerProcess = shouldDelegate() ? runDelegatedWrangler() : runWrangler();
127
51
  }
128
52
 
129
- process.on("SIGINT", () => {
130
- wranglerProcess && wranglerProcess.kill();
131
- });
132
- process.on("SIGTERM", () => {
133
- wranglerProcess && wranglerProcess.kill();
134
- });
135
-
136
53
  // semiver implementation via https://github.com/lukeed/semiver/blob/ae7eebe6053c96be63032b14fb0b68e2553fcac4/src/index.js
137
54
 
138
55
  /**
@@ -165,4 +82,12 @@ function semiver(a, b, bool) {
165
82
 
166
83
  // end semiver implementation
167
84
 
168
- void main();
85
+ if (module === require.main) {
86
+ wranglerProcess = runWrangler();
87
+ process.on("SIGINT", () => {
88
+ wranglerProcess && wranglerProcess.kill();
89
+ });
90
+ process.on("SIGTERM", () => {
91
+ wranglerProcess && wranglerProcess.kill();
92
+ });
93
+ }