wrangler 0.0.0-e7cf0caa → 0.0.0-e8053554

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 (308) hide show
  1. package/README.md +10 -12
  2. package/bin/wrangler.js +13 -74
  3. package/package.json +213 -199
  4. package/templates/__tests__/tsconfig.json +1 -1
  5. package/templates/checked-fetch.js +10 -3
  6. package/templates/facade.d.ts +4 -1
  7. package/templates/middleware/common.ts +9 -4
  8. package/templates/middleware/loader-modules.ts +64 -11
  9. package/templates/middleware/loader-sw.ts +2 -7
  10. package/templates/middleware/middleware-d1-beta.d.ts +3 -0
  11. package/templates/middleware/middleware-miniflare3-json-error.ts +1 -0
  12. package/templates/middleware/middleware-multiworker-dev.d.ts +4 -0
  13. package/templates/middleware/middleware-multiworker-dev.ts +68 -0
  14. package/templates/middleware/middleware-serve-static-assets.d.ts +6 -0
  15. package/templates/middleware/middleware-serve-static-assets.ts +56 -0
  16. package/templates/modules-watch-stub.js +4 -0
  17. package/templates/new-worker-scheduled.ts +1 -1
  18. package/templates/new-worker.ts +1 -1
  19. package/templates/pages-dev-util.ts +4 -1
  20. package/templates/pages-shim.ts +0 -3
  21. package/templates/pages-template-plugin.ts +12 -2
  22. package/templates/pages-template-worker.ts +11 -2
  23. package/templates/startDevWorker/InspectorProxyWorker.ts +652 -0
  24. package/templates/startDevWorker/ProxyWorker.ts +252 -0
  25. package/templates/tsconfig.json +1 -1
  26. package/wrangler-dist/InspectorProxyWorker.js +460 -0
  27. package/wrangler-dist/InspectorProxyWorker.js.map +6 -0
  28. package/wrangler-dist/ProxyWorker.js +186 -0
  29. package/wrangler-dist/ProxyWorker.js.map +6 -0
  30. package/wrangler-dist/cli.d.ts +22048 -182
  31. package/wrangler-dist/cli.js +113098 -104303
  32. package/wrangler-dist/wasm-sync.wasm +0 -0
  33. package/import_meta_url.js +0 -3
  34. package/miniflare-config-stubs/.env.empty +0 -0
  35. package/miniflare-config-stubs/package.empty.json +0 -1
  36. package/miniflare-config-stubs/wrangler.empty.toml +0 -0
  37. package/miniflare-dist/index.mjs +0 -6368
  38. package/src/__tests__/access.test.ts +0 -25
  39. package/src/__tests__/api-dev.test.ts +0 -238
  40. package/src/__tests__/api-devregistry.test.ts +0 -121
  41. package/src/__tests__/api.test.ts +0 -102
  42. package/src/__tests__/config-cache-without-cache-dir.test.ts +0 -38
  43. package/src/__tests__/config-cache.test.ts +0 -42
  44. package/src/__tests__/configuration.test.ts +0 -4509
  45. package/src/__tests__/d1/d1.test.ts +0 -82
  46. package/src/__tests__/d1/execute.test.ts +0 -66
  47. package/src/__tests__/d1/migrate.test.ts +0 -157
  48. package/src/__tests__/d1/splitter.test.ts +0 -255
  49. package/src/__tests__/delete.test.ts +0 -272
  50. package/src/__tests__/deployments.test.ts +0 -369
  51. package/src/__tests__/dev.test.tsx +0 -1617
  52. package/src/__tests__/generate.test.ts +0 -237
  53. package/src/__tests__/get-host-from-url.test.ts +0 -16
  54. package/src/__tests__/guess-worker-format.test.ts +0 -120
  55. package/src/__tests__/helpers/clipboardy-mock.js +0 -4
  56. package/src/__tests__/helpers/cmd-shim.d.ts +0 -11
  57. package/src/__tests__/helpers/end-event-loop.ts +0 -6
  58. package/src/__tests__/helpers/mock-account-id.ts +0 -48
  59. package/src/__tests__/helpers/mock-auth-domain.ts +0 -20
  60. package/src/__tests__/helpers/mock-bin.ts +0 -36
  61. package/src/__tests__/helpers/mock-console.ts +0 -112
  62. package/src/__tests__/helpers/mock-dialogs.ts +0 -139
  63. package/src/__tests__/helpers/mock-get-pages-upload-token.ts +0 -25
  64. package/src/__tests__/helpers/mock-get-zone-from-host.ts +0 -11
  65. package/src/__tests__/helpers/mock-http-server.ts +0 -46
  66. package/src/__tests__/helpers/mock-istty.ts +0 -74
  67. package/src/__tests__/helpers/mock-known-routes.ts +0 -12
  68. package/src/__tests__/helpers/mock-kv.ts +0 -46
  69. package/src/__tests__/helpers/mock-oauth-flow.ts +0 -263
  70. package/src/__tests__/helpers/mock-process.ts +0 -34
  71. package/src/__tests__/helpers/mock-set-timeout.ts +0 -16
  72. package/src/__tests__/helpers/mock-stdin.ts +0 -108
  73. package/src/__tests__/helpers/mock-web-socket.ts +0 -29
  74. package/src/__tests__/helpers/msw/blob-worker.cjs +0 -19
  75. package/src/__tests__/helpers/msw/handlers/access.ts +0 -13
  76. package/src/__tests__/helpers/msw/handlers/deployments.ts +0 -160
  77. package/src/__tests__/helpers/msw/handlers/namespaces.ts +0 -81
  78. package/src/__tests__/helpers/msw/handlers/oauth.ts +0 -31
  79. package/src/__tests__/helpers/msw/handlers/r2.ts +0 -60
  80. package/src/__tests__/helpers/msw/handlers/script.ts +0 -56
  81. package/src/__tests__/helpers/msw/handlers/user.ts +0 -52
  82. package/src/__tests__/helpers/msw/handlers/zones.ts +0 -20
  83. package/src/__tests__/helpers/msw/index.ts +0 -52
  84. package/src/__tests__/helpers/msw/read-file-sync.js +0 -61
  85. package/src/__tests__/helpers/run-in-tmp.ts +0 -38
  86. package/src/__tests__/helpers/run-wrangler.ts +0 -16
  87. package/src/__tests__/helpers/string-dynamic-values-matcher.ts +0 -28
  88. package/src/__tests__/helpers/worker-scripts/child-wrangler.toml +0 -1
  89. package/src/__tests__/helpers/worker-scripts/hello-world-worker.js +0 -5
  90. package/src/__tests__/helpers/worker-scripts/hello-world-wrangler.toml +0 -1
  91. package/src/__tests__/helpers/worker-scripts/parent-worker.js +0 -11
  92. package/src/__tests__/helpers/worker-scripts/parent-wrangler.toml +0 -5
  93. package/src/__tests__/helpers/write-worker-source.ts +0 -31
  94. package/src/__tests__/helpers/write-wrangler-toml.ts +0 -17
  95. package/src/__tests__/https-options.test.ts +0 -163
  96. package/src/__tests__/index.test.ts +0 -280
  97. package/src/__tests__/init.test.ts +0 -3196
  98. package/src/__tests__/jest.setup.ts +0 -179
  99. package/src/__tests__/kv.test.ts +0 -1799
  100. package/src/__tests__/logger.test.ts +0 -207
  101. package/src/__tests__/logout.test.ts +0 -47
  102. package/src/__tests__/metrics.test.ts +0 -493
  103. package/src/__tests__/middleware.scheduled.test.ts +0 -145
  104. package/src/__tests__/middleware.test.ts +0 -816
  105. package/src/__tests__/mtls-certificates.test.ts +0 -588
  106. package/src/__tests__/package-manager.test.ts +0 -353
  107. package/src/__tests__/pages/deployment-list.test.ts +0 -80
  108. package/src/__tests__/pages/functions-build.test.ts +0 -452
  109. package/src/__tests__/pages/pages.test.ts +0 -81
  110. package/src/__tests__/pages/project-create.test.ts +0 -63
  111. package/src/__tests__/pages/project-list.test.ts +0 -110
  112. package/src/__tests__/pages/project-upload.test.ts +0 -500
  113. package/src/__tests__/pages/publish.test.ts +0 -2864
  114. package/src/__tests__/pages-deployment-tail.test.ts +0 -955
  115. package/src/__tests__/parse.test.ts +0 -436
  116. package/src/__tests__/paths.test.ts +0 -39
  117. package/src/__tests__/publish.test.ts +0 -8423
  118. package/src/__tests__/pubsub.test.ts +0 -496
  119. package/src/__tests__/queues.test.ts +0 -532
  120. package/src/__tests__/r2.test.ts +0 -374
  121. package/src/__tests__/route.test.ts +0 -45
  122. package/src/__tests__/secret.test.ts +0 -693
  123. package/src/__tests__/tail.test.ts +0 -958
  124. package/src/__tests__/test-old-node-version.js +0 -31
  125. package/src/__tests__/traverse-module-graph.test.ts +0 -220
  126. package/src/__tests__/tsconfig-sanity.ts +0 -12
  127. package/src/__tests__/tsconfig.json +0 -8
  128. package/src/__tests__/tsconfig.tsbuildinfo +0 -1
  129. package/src/__tests__/type-generation.test.ts +0 -234
  130. package/src/__tests__/user.test.ts +0 -118
  131. package/src/__tests__/utils-collectKeyValues.test.ts +0 -47
  132. package/src/__tests__/validate-dev-props.test.ts +0 -56
  133. package/src/__tests__/version.test.ts +0 -35
  134. package/src/__tests__/whoami.test.tsx +0 -172
  135. package/src/__tests__/worker-namespace.test.ts +0 -340
  136. package/src/abort.d.ts +0 -3
  137. package/src/api/dev.ts +0 -316
  138. package/src/api/index.ts +0 -11
  139. package/src/api/mtls-certificate.ts +0 -148
  140. package/src/api/pages/create-worker-bundle-contents.ts +0 -76
  141. package/src/api/pages/index.ts +0 -5
  142. package/src/api/pages/publish.tsx +0 -355
  143. package/src/bundle-reporter.ts +0 -68
  144. package/src/bundle.ts +0 -908
  145. package/src/cfetch/index.ts +0 -158
  146. package/src/cfetch/internal.ts +0 -258
  147. package/src/cli.ts +0 -28
  148. package/src/config/README.md +0 -107
  149. package/src/config/config.ts +0 -282
  150. package/src/config/diagnostics.ts +0 -80
  151. package/src/config/environment.ts +0 -618
  152. package/src/config/index.ts +0 -403
  153. package/src/config/validation-helpers.ts +0 -597
  154. package/src/config/validation.ts +0 -2342
  155. package/src/config-cache.ts +0 -85
  156. package/src/create-worker-preview.ts +0 -293
  157. package/src/create-worker-upload-form.ts +0 -359
  158. package/src/d1/backups.tsx +0 -219
  159. package/src/d1/constants.ts +0 -2
  160. package/src/d1/create.tsx +0 -68
  161. package/src/d1/delete.ts +0 -53
  162. package/src/d1/execute.tsx +0 -357
  163. package/src/d1/formatTimeAgo.ts +0 -14
  164. package/src/d1/index.ts +0 -100
  165. package/src/d1/list.tsx +0 -60
  166. package/src/d1/migrations/apply.tsx +0 -212
  167. package/src/d1/migrations/create.tsx +0 -79
  168. package/src/d1/migrations/helpers.ts +0 -172
  169. package/src/d1/migrations/index.ts +0 -3
  170. package/src/d1/migrations/list.tsx +0 -95
  171. package/src/d1/migrations/options.ts +0 -23
  172. package/src/d1/options.ts +0 -22
  173. package/src/d1/splitter.ts +0 -161
  174. package/src/d1/types.ts +0 -25
  175. package/src/d1/utils.ts +0 -49
  176. package/src/delete.ts +0 -100
  177. package/src/deployments.ts +0 -368
  178. package/src/deprecated/index.ts +0 -144
  179. package/src/dev/dev-vars.ts +0 -39
  180. package/src/dev/dev.tsx +0 -600
  181. package/src/dev/get-local-persistence-path.ts +0 -31
  182. package/src/dev/local.tsx +0 -920
  183. package/src/dev/remote.tsx +0 -632
  184. package/src/dev/start-server.ts +0 -534
  185. package/src/dev/use-esbuild.ts +0 -203
  186. package/src/dev/validate-dev-props.ts +0 -40
  187. package/src/dev-registry.ts +0 -202
  188. package/src/dev.tsx +0 -929
  189. package/src/dialogs.ts +0 -136
  190. package/src/dispatch-namespace.ts +0 -211
  191. package/src/docs/index.ts +0 -97
  192. package/src/durable.ts +0 -102
  193. package/src/entry.ts +0 -337
  194. package/src/environment-variables/factory.ts +0 -88
  195. package/src/environment-variables/misc-variables.ts +0 -30
  196. package/src/errors.ts +0 -11
  197. package/src/generate/index.ts +0 -298
  198. package/src/git-client.ts +0 -135
  199. package/src/global-wrangler-config-path.ts +0 -26
  200. package/src/https-options.ts +0 -127
  201. package/src/index.ts +0 -758
  202. package/src/init.ts +0 -1032
  203. package/src/inspect.ts +0 -782
  204. package/src/intl-polyfill.d.ts +0 -139
  205. package/src/is-ci.ts +0 -14
  206. package/src/is-interactive.ts +0 -16
  207. package/src/jest.d.ts +0 -4
  208. package/src/kv/helpers.ts +0 -430
  209. package/src/kv/index.ts +0 -594
  210. package/src/logger.ts +0 -119
  211. package/src/metrics/index.ts +0 -5
  212. package/src/metrics/metrics-config.ts +0 -239
  213. package/src/metrics/metrics-dispatcher.ts +0 -96
  214. package/src/metrics/metrics-usage-headers.ts +0 -24
  215. package/src/metrics/send-event.ts +0 -99
  216. package/src/miniflare-cli/README.md +0 -30
  217. package/src/miniflare-cli/assets.ts +0 -251
  218. package/src/miniflare-cli/index.ts +0 -210
  219. package/src/miniflare-cli/request-context.ts +0 -40
  220. package/src/miniflare-cli/tsconfig.json +0 -9
  221. package/src/miniflare-cli/tsconfig.tsbuildinfo +0 -1
  222. package/src/miniflare-cli/types.ts +0 -11
  223. package/src/module-collection.ts +0 -333
  224. package/src/mtls-certificate/cli.ts +0 -155
  225. package/src/open-in-browser.ts +0 -17
  226. package/src/package-manager.ts +0 -219
  227. package/src/pages/build.ts +0 -410
  228. package/src/pages/buildFunctions.ts +0 -140
  229. package/src/pages/constants.ts +0 -18
  230. package/src/pages/deployment-tails.ts +0 -281
  231. package/src/pages/deployments.tsx +0 -84
  232. package/src/pages/dev.ts +0 -716
  233. package/src/pages/errors.ts +0 -67
  234. package/src/pages/functions/buildPlugin.ts +0 -113
  235. package/src/pages/functions/buildWorker.ts +0 -291
  236. package/src/pages/functions/filepath-routing.test.ts +0 -234
  237. package/src/pages/functions/filepath-routing.ts +0 -189
  238. package/src/pages/functions/identifiers.ts +0 -78
  239. package/src/pages/functions/routes-consolidation.test.ts +0 -250
  240. package/src/pages/functions/routes-consolidation.ts +0 -73
  241. package/src/pages/functions/routes-transformation.test.ts +0 -282
  242. package/src/pages/functions/routes-transformation.ts +0 -115
  243. package/src/pages/functions/routes-validation.test.ts +0 -403
  244. package/src/pages/functions/routes-validation.ts +0 -202
  245. package/src/pages/functions/routes.ts +0 -151
  246. package/src/pages/functions/tsconfig.json +0 -8
  247. package/src/pages/functions/tsconfig.tsbuildinfo +0 -1
  248. package/src/pages/functions.ts +0 -86
  249. package/src/pages/hash.ts +0 -13
  250. package/src/pages/index.ts +0 -102
  251. package/src/pages/projects.tsx +0 -159
  252. package/src/pages/prompt-select-project.tsx +0 -31
  253. package/src/pages/publish.tsx +0 -267
  254. package/src/pages/types.ts +0 -46
  255. package/src/pages/upload.tsx +0 -469
  256. package/src/pages/utils.ts +0 -23
  257. package/src/parse.ts +0 -308
  258. package/src/paths.ts +0 -71
  259. package/src/proxy.ts +0 -694
  260. package/src/publish/index.ts +0 -274
  261. package/src/publish/publish.ts +0 -1060
  262. package/src/pubsub/index.ts +0 -286
  263. package/src/pubsub/pubsub-commands.ts +0 -623
  264. package/src/queues/cli/commands/consumer/add.ts +0 -71
  265. package/src/queues/cli/commands/consumer/index.ts +0 -19
  266. package/src/queues/cli/commands/consumer/remove.ts +0 -31
  267. package/src/queues/cli/commands/create.ts +0 -25
  268. package/src/queues/cli/commands/delete.ts +0 -26
  269. package/src/queues/cli/commands/index.ts +0 -35
  270. package/src/queues/cli/commands/list.ts +0 -25
  271. package/src/queues/client.ts +0 -136
  272. package/src/queues/utils.ts +0 -18
  273. package/src/r2/constants.ts +0 -4
  274. package/src/r2/helpers.ts +0 -132
  275. package/src/r2/index.ts +0 -289
  276. package/src/routes.ts +0 -140
  277. package/src/secret/index.ts +0 -376
  278. package/src/selfsigned.d.ts +0 -29
  279. package/src/sites.ts +0 -372
  280. package/src/tail/createTail.ts +0 -406
  281. package/src/tail/filters.ts +0 -277
  282. package/src/tail/index.ts +0 -211
  283. package/src/tail/printing.ts +0 -122
  284. package/src/traverse-module-graph.ts +0 -53
  285. package/src/tsconfig-sanity.ts +0 -16
  286. package/src/type-generation.ts +0 -181
  287. package/src/update-check.ts +0 -19
  288. package/src/user/access.ts +0 -68
  289. package/src/user/auth-variables.ts +0 -113
  290. package/src/user/choose-account.tsx +0 -39
  291. package/src/user/generate-auth-url.ts +0 -33
  292. package/src/user/generate-random-state.ts +0 -16
  293. package/src/user/index.ts +0 -2
  294. package/src/user/user.ts +0 -1233
  295. package/src/utils/collectKeyValues.ts +0 -14
  296. package/src/utils/render.ts +0 -93
  297. package/src/whoami.ts +0 -135
  298. package/src/worker.ts +0 -274
  299. package/src/yargs-types.ts +0 -37
  300. package/src/zones.ts +0 -191
  301. package/templates/__tests__/tsconfig.tsbuildinfo +0 -1
  302. package/templates/d1-beta-facade.js +0 -244
  303. package/templates/first-party-worker-module-facade.ts +0 -19
  304. package/templates/format-dev-errors.ts +0 -34
  305. package/templates/serve-static-assets.ts +0 -66
  306. package/templates/service-bindings-module-facade.js +0 -55
  307. package/templates/service-bindings-sw-facade.js +0 -42
  308. package/templates/tsconfig.tsbuildinfo +0 -1
@@ -1,25 +0,0 @@
1
- import { domainUsesAccess, getAccessToken } from "../user/access";
2
- import { msw, mswAccessHandlers } from "./helpers/msw";
3
-
4
- describe("access", () => {
5
- beforeEach(() => {
6
- msw.use(...mswAccessHandlers);
7
- });
8
-
9
- describe("basic", () => {
10
- it("should correctly detect an access protected domain", async () => {
11
- expect(await domainUsesAccess("access-protected.com")).toBeTruthy();
12
- expect(await domainUsesAccess("not-access-protected.com")).toBeFalsy();
13
- });
14
- it("should not fail without cloudflared installed", async () => {
15
- expect(await getAccessToken("not-access-protected.com")).toBeFalsy();
16
- });
17
- it("should error without cloudflared installed on an access protected domain", async () => {
18
- await expect(getAccessToken("access-protected.com")).rejects.toEqual(
19
- new Error(
20
- "To use Wrangler with Cloudflare Access, please install `cloudflared` from https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation"
21
- )
22
- );
23
- });
24
- });
25
- });
@@ -1,238 +0,0 @@
1
- import * as fs from "node:fs";
2
- import { Request } from "undici";
3
- import { unstable_dev } from "../api";
4
- import { runInTempDir } from "./helpers/run-in-tmp";
5
-
6
- jest.unmock("undici");
7
-
8
- describe("unstable_dev", () => {
9
- it("should return Hello World", async () => {
10
- const worker = await unstable_dev(
11
- "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
12
- {
13
- experimental: {
14
- disableExperimentalWarning: true,
15
- disableDevRegistry: true,
16
- },
17
- }
18
- );
19
- const resp = await worker.fetch();
20
- if (resp) {
21
- const text = await resp.text();
22
- expect(text).toMatchInlineSnapshot(`"Hello World!"`);
23
- }
24
- await worker.stop();
25
- });
26
-
27
- it("should return the port that the server started on (1)", async () => {
28
- const worker = await unstable_dev(
29
- "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
30
- {
31
- experimental: {
32
- disableExperimentalWarning: true,
33
- disableDevRegistry: true,
34
- },
35
- }
36
- );
37
- expect(worker.port).toBeGreaterThan(0);
38
- await worker.stop();
39
- });
40
-
41
- it("should return the port that the server started on (2)", async () => {
42
- const worker = await unstable_dev(
43
- "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
44
- {
45
- port: 9191,
46
- experimental: {
47
- disableExperimentalWarning: true,
48
- disableDevRegistry: true,
49
- },
50
- }
51
- );
52
- expect(worker.port).toBe(9191);
53
- await worker.stop();
54
- });
55
- });
56
-
57
- describe("unstable dev fetch input protocol", () => {
58
- it("should use http localProtocol", async () => {
59
- const worker = await unstable_dev(
60
- "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
61
- {
62
- localProtocol: "http",
63
- experimental: {
64
- disableExperimentalWarning: true,
65
- disableDevRegistry: true,
66
- },
67
- }
68
- );
69
- const res = await worker.fetch();
70
- if (res) {
71
- const text = await res.text();
72
- expect(text).toMatchInlineSnapshot(`"Hello World!"`);
73
- }
74
- await worker.stop();
75
- });
76
-
77
- it("should use undefined localProtocol", async () => {
78
- const worker = await unstable_dev(
79
- "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
80
- {
81
- localProtocol: undefined,
82
- experimental: {
83
- disableExperimentalWarning: true,
84
- disableDevRegistry: true,
85
- },
86
- }
87
- );
88
- const res = await worker.fetch();
89
- if (res) {
90
- const text = await res.text();
91
- expect(text).toMatchInlineSnapshot(`"Hello World!"`);
92
- }
93
- await worker.stop();
94
- });
95
- });
96
-
97
- describe("unstable dev fetch input parsing", () => {
98
- runInTempDir();
99
-
100
- it("should pass in a request object unchanged", async () => {
101
- const scriptContent = `
102
- export default {
103
- fetch(request, env, ctx) {
104
- const url = new URL(request.url);
105
- if (url.pathname === "/test") {
106
- if (request.method === "POST") {
107
- return new Response("requestPOST");
108
- }
109
- return new Response("requestGET");
110
- }
111
- return new Response('Hello world');
112
- }
113
- };
114
- `;
115
- fs.writeFileSync("index.js", scriptContent);
116
- const port = 21213;
117
- const worker = await unstable_dev("index.js", {
118
- port,
119
- experimental: {
120
- disableExperimentalWarning: true,
121
- disableDevRegistry: true,
122
- },
123
- });
124
- const req = new Request("http://0.0.0.0:21213/test", {
125
- method: "POST",
126
- });
127
- const resp = await worker.fetch(req);
128
- let text;
129
- if (resp) text = await resp.text();
130
- expect(text).toMatchInlineSnapshot(`"requestPOST"`);
131
- await worker.stop();
132
- });
133
-
134
- it("should strip back to pathname for URL objects", async () => {
135
- const scriptContent = `
136
- export default {
137
- fetch(request, env, ctx) {
138
- const url = new URL(request.url);
139
- if (url.pathname === "/test") {
140
- return new Response("request");
141
- }
142
- return new Response('Hello world');
143
- }
144
- };
145
- `;
146
- fs.writeFileSync("index.js", scriptContent);
147
- const worker = await unstable_dev("index.js", {
148
- experimental: {
149
- disableExperimentalWarning: true,
150
- disableDevRegistry: true,
151
- },
152
- });
153
- const url = new URL("http://localhost:80/test");
154
- const resp = await worker.fetch(url);
155
- let text;
156
- if (resp) text = await resp.text();
157
- expect(text).toMatchInlineSnapshot(`"request"`);
158
- await worker.stop();
159
- });
160
-
161
- it("should allow full url passed in string, and stripped back to pathname", async () => {
162
- const scriptContent = `
163
- export default {
164
- fetch(request, env, ctx) {
165
- const url = new URL(request.url);
166
- if (url.pathname === "/test") {
167
- return new Response("request");
168
- }
169
- return new Response('Hello world');
170
- }
171
- };
172
- `;
173
- fs.writeFileSync("index.js", scriptContent);
174
- const worker = await unstable_dev("index.js", {
175
- experimental: {
176
- disableExperimentalWarning: true,
177
- disableDevRegistry: true,
178
- },
179
- });
180
- const resp = await worker.fetch("http://example.com/test");
181
- let text;
182
- if (resp) text = await resp.text();
183
- expect(text).toMatchInlineSnapshot(`"request"`);
184
- await worker.stop();
185
- });
186
-
187
- it("should allow pathname to be passed in", async () => {
188
- const scriptContent = `
189
- export default {
190
- fetch(request, env, ctx) {
191
- const url = new URL(request.url);
192
- if (url.pathname === "/test") {
193
- return new Response("request");
194
- }
195
- return new Response('Hello world');
196
- }
197
- };
198
- `;
199
- fs.writeFileSync("index.js", scriptContent);
200
- const worker = await unstable_dev("index.js", {
201
- experimental: {
202
- disableExperimentalWarning: true,
203
- disableDevRegistry: true,
204
- },
205
- });
206
- const resp = await worker.fetch("/test");
207
- let text;
208
- if (resp) text = await resp.text();
209
- expect(text).toMatchInlineSnapshot(`"request"`);
210
- await worker.stop();
211
- });
212
-
213
- it("should allow no input be passed in", async () => {
214
- const scriptContent = `
215
- export default {
216
- fetch(request, env, ctx) {
217
- const url = new URL(request.url);
218
- if (url.pathname === "/test") {
219
- return new Response("request");
220
- }
221
- return new Response('Hello world');
222
- }
223
- };
224
- `;
225
- fs.writeFileSync("index.js", scriptContent);
226
- const worker = await unstable_dev("index.js", {
227
- experimental: {
228
- disableExperimentalWarning: true,
229
- disableDevRegistry: true,
230
- },
231
- });
232
- const resp = await worker.fetch("");
233
- let text;
234
- if (resp) text = await resp.text();
235
- expect(text).toMatchInlineSnapshot(`"Hello world"`);
236
- await worker.stop();
237
- });
238
- });
@@ -1,121 +0,0 @@
1
- import { fetch } from "undici";
2
- import { unstable_dev } from "../api";
3
-
4
- jest.unmock("undici");
5
-
6
- /**
7
- * a huge caveat to how testing multi-worker scripts works:
8
- * you can't shutdown the first worker you spun up, or it'll kill the devRegistry
9
- */
10
- describe("multi-worker testing", () => {
11
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
- let childWorker: any;
13
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
- let parentWorker: any;
15
-
16
- beforeAll(async () => {
17
- childWorker = await unstable_dev(
18
- "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
19
- {
20
- config: "src/__tests__/helpers/worker-scripts/child-wrangler.toml",
21
- experimental: {
22
- disableExperimentalWarning: true,
23
- },
24
- }
25
- );
26
- parentWorker = await unstable_dev(
27
- "src/__tests__/helpers/worker-scripts/parent-worker.js",
28
- {
29
- config: "src/__tests__/helpers/worker-scripts/parent-wrangler.toml",
30
- experimental: {
31
- disableExperimentalWarning: true,
32
- },
33
- }
34
- );
35
- });
36
-
37
- afterAll(async () => {
38
- await childWorker.stop();
39
- await parentWorker.stop();
40
- });
41
-
42
- it("parentWorker and childWorker should be added devRegistry", async () => {
43
- const resp = await fetch("http://localhost:6284/workers");
44
- if (resp) {
45
- const parsedResp = (await resp.json()) as {
46
- parent: unknown;
47
- child: unknown;
48
- };
49
- expect(parsedResp.parent).toBeTruthy();
50
- expect(parsedResp.child).toBeTruthy();
51
- }
52
- });
53
-
54
- it("childWorker should return Hello World itself", async () => {
55
- const resp = await childWorker.fetch();
56
- if (resp) {
57
- const text = await resp.text();
58
- expect(text).toMatchInlineSnapshot(`"Hello World!"`);
59
- }
60
- });
61
-
62
- it("parentWorker should return Hello World by invoking the child worker", async () => {
63
- const resp = await parentWorker.fetch();
64
- if (resp) {
65
- const parsedResp = await resp.text();
66
- expect(parsedResp).toEqual("Parent worker sees: Hello World!");
67
- }
68
- });
69
-
70
- it("should be able to stop and start the server with no warning logs", async () => {
71
- // Spy on all the console methods
72
- let logs = "";
73
- (["debug", "info", "log", "warn", "error"] as const).forEach((method) =>
74
- jest
75
- .spyOn(console, method)
76
- .mockImplementation((...args: unknown[]) => (logs += `\n${args}`))
77
- );
78
-
79
- // Spy on the std out that is written to by Miniflare 2
80
- jest
81
- .spyOn(process.stdout, "write")
82
- .mockImplementation((chunk: unknown) => ((logs += `\n${chunk}`), true));
83
-
84
- async function startWorker() {
85
- return await unstable_dev(
86
- "src/__tests__/helpers/worker-scripts/hello-world-worker.js",
87
- {
88
- // We need the wrangler.toml config to specify a Worker name
89
- // otherwise unstable_dev will not register the worker with the DevRegistry
90
- config: "src/__tests__/helpers/worker-scripts/child-wrangler.toml",
91
- // We need debug logs because this is where the message is written if registering the worker fails.
92
- logLevel: "debug",
93
- experimental: {
94
- disableExperimentalWarning: true,
95
- },
96
- }
97
- );
98
- }
99
-
100
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
- let worker: any;
102
- try {
103
- worker = await startWorker();
104
-
105
- // Stop the worker and start it again
106
- await worker.stop();
107
- await new Promise((r) => setTimeout(r, 2000));
108
-
109
- worker = await startWorker();
110
-
111
- const resp = await worker.fetch();
112
- expect(resp).not.toBe(undefined);
113
-
114
- expect(logs).not.toMatch(
115
- /Failed to register worker in local service registry/
116
- );
117
- } finally {
118
- await worker?.stop();
119
- }
120
- }, 10000);
121
- });
@@ -1,102 +0,0 @@
1
- import { Request } from "undici";
2
- import { parseRequestInput } from "../api/dev";
3
-
4
- describe("parseRequestInput for fetch on unstable dev", () => {
5
- it("should allow no input to be passed in", () => {
6
- const [input, _] = parseRequestInput("0.0.0.0", 8080);
7
-
8
- expect(input).toMatchInlineSnapshot(`"http://0.0.0.0:8080/"`);
9
- });
10
-
11
- it("should allow string of pathname to be passed in", () => {
12
- const [input, _] = parseRequestInput("0.0.0.0", 8080, "/test");
13
-
14
- expect(input).toMatchInlineSnapshot(`"http://0.0.0.0:8080/test"`);
15
- });
16
-
17
- it("should allow string of pathname and querystring to be passed in", () => {
18
- const [input, _] = parseRequestInput("0.0.0.0", 8080, "/test?q=testparam");
19
-
20
- expect(input).toMatchInlineSnapshot(
21
- `"http://0.0.0.0:8080/test?q=testparam"`
22
- );
23
- });
24
-
25
- it("should allow full url to be passed in as string and stripped", () => {
26
- const [input, _] = parseRequestInput(
27
- "0.0.0.0",
28
- 8080,
29
- "http://cloudflare.com/test?q=testparam"
30
- );
31
-
32
- expect(input).toMatchInlineSnapshot(
33
- `"http://0.0.0.0:8080/test?q=testparam"`
34
- );
35
- });
36
-
37
- it("should allow URL object without pathname to be passed in and stripped", () => {
38
- const [input, _] = parseRequestInput(
39
- "0.0.0.0",
40
- 8080,
41
- new URL("http://cloudflare.com")
42
- );
43
-
44
- expect(input).toMatchInlineSnapshot(`"http://0.0.0.0:8080/"`);
45
- });
46
-
47
- it("should allow URL object with pathname to be passed in and stripped", () => {
48
- const [input, _] = parseRequestInput(
49
- "0.0.0.0",
50
- 8080,
51
- new URL("http://cloudflare.com/test")
52
- );
53
-
54
- expect(input).toMatchInlineSnapshot(`"http://0.0.0.0:8080/test"`);
55
- });
56
-
57
- it("should allow URL object with pathname and querystring to be passed in and stripped", () => {
58
- const [input, _] = parseRequestInput(
59
- "0.0.0.0",
60
- 8080,
61
- new URL("http://cloudflare.com/test?q=testparam")
62
- );
63
-
64
- expect(input).toMatchInlineSnapshot(
65
- `"http://0.0.0.0:8080/test?q=testparam"`
66
- );
67
- });
68
-
69
- it("should allow request object to be passed in", () => {
70
- const [input, init] = parseRequestInput(
71
- "0.0.0.0",
72
- 8080,
73
- new Request("http://cloudflare.com/test?q=testparam", { method: "POST" })
74
- );
75
-
76
- expect(init).toBeUndefined();
77
- expect(input).toBeInstanceOf(Request);
78
- // We don't expect the request to be modified
79
- expect((input as Request).url).toMatchInlineSnapshot(
80
- `"http://cloudflare.com/test?q=testparam"`
81
- );
82
- expect((input as Request).method).toMatchInlineSnapshot(`"POST"`);
83
- });
84
-
85
- it("should parse to give https url with localProtocol = https", () => {
86
- const [input, _] = parseRequestInput("0.0.0.0", 8080, "/test", {}, "https");
87
-
88
- expect(input).toMatchInlineSnapshot(`"https://0.0.0.0:8080/test"`);
89
- });
90
-
91
- it("should parse to give http url with localProtocol = http", () => {
92
- const [input, _] = parseRequestInput("0.0.0.0", 8080, "/test", {}, "http");
93
-
94
- expect(input).toMatchInlineSnapshot(`"http://0.0.0.0:8080/test"`);
95
- });
96
-
97
- it("should parse to give http url with localProtocol not set", () => {
98
- const [input, _] = parseRequestInput("0.0.0.0", 8080, "/test", {});
99
-
100
- expect(input).toMatchInlineSnapshot(`"http://0.0.0.0:8080/test"`);
101
- });
102
- });
@@ -1,38 +0,0 @@
1
- import { getConfigCache, saveToConfigCache } from "../config-cache";
2
- import { mockConsoleMethods } from "./helpers/mock-console";
3
- import { runInTempDir } from "./helpers/run-in-tmp";
4
-
5
- interface PagesConfigCache {
6
- account_id: string;
7
- pages_project_name: string;
8
- }
9
-
10
- describe("config cache", () => {
11
- runInTempDir();
12
- mockConsoleMethods();
13
- // In this set of tests, we don't create a node_modules folder
14
- const pagesConfigCacheFilename = "pages-config-cache.json";
15
-
16
- it("should return an empty config if no file exists", () => {
17
- expect(
18
- getConfigCache<PagesConfigCache>(pagesConfigCacheFilename)
19
- ).toMatchInlineSnapshot(`Object {}`);
20
- });
21
-
22
- it("should ignore attempts to cache values ", () => {
23
- saveToConfigCache<PagesConfigCache>(pagesConfigCacheFilename, {
24
- account_id: "some-account-id",
25
- pages_project_name: "foo",
26
- });
27
- expect(getConfigCache<PagesConfigCache>(pagesConfigCacheFilename)).toEqual(
28
- {}
29
- );
30
-
31
- saveToConfigCache<PagesConfigCache>(pagesConfigCacheFilename, {
32
- pages_project_name: "bar",
33
- });
34
- expect(getConfigCache<PagesConfigCache>(pagesConfigCacheFilename)).toEqual(
35
- {}
36
- );
37
- });
38
- });
@@ -1,42 +0,0 @@
1
- import { mkdirSync } from "node:fs";
2
- import { getConfigCache, saveToConfigCache } from "../config-cache";
3
- import { mockConsoleMethods } from "./helpers/mock-console";
4
- import { runInTempDir } from "./helpers/run-in-tmp";
5
-
6
- interface PagesConfigCache {
7
- account_id: string;
8
- pages_project_name: string;
9
- }
10
-
11
- describe("config cache", () => {
12
- runInTempDir();
13
- mockConsoleMethods();
14
- beforeEach(() => {
15
- mkdirSync("node_modules");
16
- });
17
-
18
- const pagesConfigCacheFilename = "pages-config-cache.json";
19
-
20
- it("should return an empty config if no file exists", () => {
21
- expect(
22
- getConfigCache<PagesConfigCache>(pagesConfigCacheFilename)
23
- ).toMatchInlineSnapshot(`Object {}`);
24
- });
25
-
26
- it("should read and write values without overriding old ones", () => {
27
- saveToConfigCache<PagesConfigCache>(pagesConfigCacheFilename, {
28
- account_id: "some-account-id",
29
- pages_project_name: "foo",
30
- });
31
- expect(
32
- getConfigCache<PagesConfigCache>(pagesConfigCacheFilename).account_id
33
- ).toEqual("some-account-id");
34
-
35
- saveToConfigCache<PagesConfigCache>(pagesConfigCacheFilename, {
36
- pages_project_name: "bar",
37
- });
38
- expect(
39
- getConfigCache<PagesConfigCache>(pagesConfigCacheFilename).account_id
40
- ).toEqual("some-account-id");
41
- });
42
- });