bkper 4.13.7 → 4.14.0

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 (44) hide show
  1. package/lib/commands/apps/build.d.ts +1 -2
  2. package/lib/commands/apps/build.d.ts.map +1 -1
  3. package/lib/commands/apps/build.js +13 -39
  4. package/lib/commands/apps/build.js.map +1 -1
  5. package/lib/commands/apps/config.d.ts +5 -14
  6. package/lib/commands/apps/config.d.ts.map +1 -1
  7. package/lib/commands/apps/config.js +13 -45
  8. package/lib/commands/apps/config.js.map +1 -1
  9. package/lib/commands/apps/deploy.d.ts +14 -4
  10. package/lib/commands/apps/deploy.d.ts.map +1 -1
  11. package/lib/commands/apps/deploy.js +42 -58
  12. package/lib/commands/apps/deploy.js.map +1 -1
  13. package/lib/commands/apps/dev.d.ts +1 -7
  14. package/lib/commands/apps/dev.d.ts.map +1 -1
  15. package/lib/commands/apps/dev.js +43 -115
  16. package/lib/commands/apps/dev.js.map +1 -1
  17. package/lib/commands/apps/init.d.ts +1 -1
  18. package/lib/commands/apps/init.d.ts.map +1 -1
  19. package/lib/commands/apps/init.js +6 -12
  20. package/lib/commands/apps/init.js.map +1 -1
  21. package/lib/commands/apps/register.d.ts.map +1 -1
  22. package/lib/commands/apps/register.js +3 -11
  23. package/lib/commands/apps/register.js.map +1 -1
  24. package/lib/commands/apps/types.d.ts +3 -27
  25. package/lib/commands/apps/types.d.ts.map +1 -1
  26. package/lib/dev/local-assets.d.ts +15 -0
  27. package/lib/dev/local-assets.d.ts.map +1 -0
  28. package/lib/dev/local-assets.js +43 -0
  29. package/lib/dev/local-assets.js.map +1 -0
  30. package/lib/dev/logger.d.ts +3 -7
  31. package/lib/dev/logger.d.ts.map +1 -1
  32. package/lib/dev/logger.js +3 -6
  33. package/lib/dev/logger.js.map +1 -1
  34. package/lib/dev/miniflare.d.ts +2 -0
  35. package/lib/dev/miniflare.d.ts.map +1 -1
  36. package/lib/dev/miniflare.js +83 -21
  37. package/lib/dev/miniflare.js.map +1 -1
  38. package/lib/docs/app-building.md +151 -141
  39. package/lib/docs/app-management.md +43 -28
  40. package/lib/docs/bkper-js.md +2 -0
  41. package/lib/docs/index.md +1 -1
  42. package/lib/platform/client.d.ts +2 -2
  43. package/lib/platform/client.js +2 -2
  44. package/package.json +1 -1
@@ -0,0 +1,43 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ /**
11
+ * Creates a local ASSETS service binding that forwards static asset requests to Vite.
12
+ *
13
+ * In development, the app Worker still handles the browser-facing request on
14
+ * localhost:8787. When app code calls env.ASSETS.fetch(), this service proxies
15
+ * the request to the Vite dev server so client HMR remains Vite-powered.
16
+ */
17
+ export function createLocalAssetsService(options = {}) {
18
+ var _a, _b, _c;
19
+ const host = (_a = options.host) !== null && _a !== void 0 ? _a : 'localhost';
20
+ const port = (_b = options.port) !== null && _b !== void 0 ? _b : 5173;
21
+ const forwardFetch = (_c = options.forwardFetch) !== null && _c !== void 0 ? _c : ((request) => fetch(request));
22
+ return (request) => __awaiter(this, void 0, void 0, function* () {
23
+ const targetUrl = new URL(request.url);
24
+ targetUrl.protocol = 'http:';
25
+ targetUrl.hostname = host;
26
+ targetUrl.port = String(port);
27
+ const headers = new Headers(request.headers);
28
+ headers.delete('host');
29
+ const init = {
30
+ method: request.method,
31
+ headers,
32
+ redirect: 'manual',
33
+ };
34
+ if (request.method !== 'GET' && request.method !== 'HEAD') {
35
+ init.body = request.body;
36
+ if (request.body) {
37
+ init.duplex = 'half';
38
+ }
39
+ }
40
+ return forwardFetch(new Request(targetUrl, init));
41
+ });
42
+ }
43
+ //# sourceMappingURL=local-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-assets.js","sourceRoot":"","sources":["../../src/dev/local-assets.ts"],"names":[],"mappings":";;;;;;;;;AAYA;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAA8B,EAAE;;IACrE,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,WAAW,CAAC;IACzC,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,IAAI,CAAC;IAClC,MAAM,YAAY,GAAG,MAAA,OAAO,CAAC,YAAY,mCAAI,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpF,OAAO,CAAO,OAAgB,EAAqB,EAAE;QACjD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvC,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC7B,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAE9B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEvB,MAAM,IAAI,GAA0B;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,QAAQ,EAAE,QAAQ;SACrB,CAAC;QAEF,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YACxD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACzB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC,CAAA,CAAC;AACN,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Logger utilities for dev server output
3
3
  * Provides prefixed, colored output for different subsystems
4
4
  */
5
- export type LogPrefix = 'server' | 'events' | 'client' | 'build' | 'types' | 'shared';
5
+ export type LogPrefix = 'server' | 'client' | 'build' | 'types' | 'shared';
6
6
  export interface Logger {
7
7
  info(message: string): void;
8
8
  success(message: string): void;
@@ -12,7 +12,7 @@ export interface Logger {
12
12
  }
13
13
  /**
14
14
  * Creates a logger with a specific prefix
15
- * @param prefix - The prefix to show in brackets (e.g., "server", "events")
15
+ * @param prefix - The prefix to show in brackets (e.g., "server", "build")
16
16
  * @returns Logger instance with info, success, warn, error, and debug methods
17
17
  */
18
18
  export declare function createLogger(prefix: LogPrefix): Logger;
@@ -34,11 +34,7 @@ export declare function logDevServerBanner(options: {
34
34
  * @param results - Build output paths and sizes
35
35
  */
36
36
  export declare function logBuildResults(results: {
37
- webServer?: {
38
- path: string;
39
- size: number;
40
- };
41
- events?: {
37
+ server?: {
42
38
  path: string;
43
39
  size: number;
44
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/dev/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,MAAM;IACnB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAiBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAuBtD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYhD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYxE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACrC,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C,GAAG,IAAI,CAwBP"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/dev/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3E,MAAM,WAAW,MAAM;IACnB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAiBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAuBtD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYhD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYxE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACrC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C,GAAG,IAAI,CAgBP"}
package/lib/dev/logger.js CHANGED
@@ -18,7 +18,7 @@ const icons = {
18
18
  };
19
19
  /**
20
20
  * Creates a logger with a specific prefix
21
- * @param prefix - The prefix to show in brackets (e.g., "server", "events")
21
+ * @param prefix - The prefix to show in brackets (e.g., "server", "build")
22
22
  * @returns Logger instance with info, success, warn, error, and debug methods
23
23
  */
24
24
  export function createLogger(prefix) {
@@ -83,11 +83,8 @@ export function logBuildResults(results) {
83
83
  console.log('');
84
84
  console.log(`${icons.package} Building Bkper App...`);
85
85
  console.log('');
86
- if (results.webServer) {
87
- console.log(` \u2713 Web server \u2192 ${results.webServer.path.padEnd(20)} (${formatSize(results.webServer.size)})`);
88
- }
89
- if (results.events) {
90
- console.log(` \u2713 Events \u2192 ${results.events.path.padEnd(20)} (${formatSize(results.events.size)})`);
86
+ if (results.server) {
87
+ console.log(` \u2713 Server worker \u2192 ${results.server.path.padEnd(20)} (${formatSize(results.server.size)})`);
91
88
  }
92
89
  console.log('');
93
90
  console.log(`${icons.success} Build complete`);
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/dev/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/dev/logger.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { Miniflare } from 'miniflare';
2
+ import type { LocalAssetsService } from './local-assets.js';
2
3
  import type { LocalOutboundService } from './local-outbound.js';
3
4
  export interface WorkerServerOptions {
4
5
  port: number;
@@ -7,6 +8,7 @@ export interface WorkerServerOptions {
7
8
  compatibilityDate?: string;
8
9
  persist?: boolean;
9
10
  persistPath?: string;
11
+ assetsService?: LocalAssetsService;
10
12
  outboundService?: LocalOutboundService;
11
13
  }
12
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"miniflare.d.ts","sourceRoot":"","sources":["../../src/dev/miniflare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAO,MAAM,WAAW,CAAC;AAIhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,oBAAoB,CAAC;CAC1C;AAyBD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtE;AAqBD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,SAAS,CAAC,CA0DpB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BjF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE"}
1
+ {"version":3,"file":"miniflare.d.ts","sourceRoot":"","sources":["../../src/dev/miniflare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAO,MAAM,WAAW,CAAC;AAIhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,eAAe,CAAC,EAAE,oBAAoB,CAAC;CAC1C;AAiHD;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEtE;AAqBD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,SAAS,CAAC,CAuDpB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBjF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE"}
@@ -16,6 +16,84 @@ import { buildWorker } from './esbuild.js';
16
16
  */
17
17
  const instanceConfigs = new WeakMap();
18
18
  const require = createRequire(import.meta.url);
19
+ const APP_WORKER_MODULE_PATH = 'app-worker.js';
20
+ const LOCAL_DISPATCH_WRAPPER_PATH = 'index.js';
21
+ const localDispatchWrapper = `
22
+ import appWorker from './${APP_WORKER_MODULE_PATH}';
23
+
24
+ const PLATFORM_SESSION_COOKIE_NAMES = new Set([
25
+ 'bkper_session',
26
+ 'bkper_session_dev',
27
+ 'bkper_session_local',
28
+ ]);
29
+
30
+ const RESERVED_PLATFORM_REQUEST_HEADERS = [
31
+ 'Authorization',
32
+ 'bkper-oauth-token',
33
+ 'bkper-agent-id',
34
+ ];
35
+
36
+ function stripPlatformRequestCredentials(request) {
37
+ const headers = new Headers(request.headers);
38
+ stripPlatformCookieHeader(headers);
39
+ for (const header of RESERVED_PLATFORM_REQUEST_HEADERS) {
40
+ headers.delete(header);
41
+ }
42
+
43
+ return new Request(request.url, {
44
+ method: request.method,
45
+ headers,
46
+ body: request.body,
47
+ redirect: request.redirect,
48
+ signal: request.signal,
49
+ });
50
+ }
51
+
52
+ function stripPlatformCookieHeader(headers) {
53
+ const cookie = headers.get('Cookie');
54
+ if (!cookie) {
55
+ return;
56
+ }
57
+
58
+ const filtered = cookie
59
+ .split(';')
60
+ .map(part => part.trim())
61
+ .filter(part => part.length > 0)
62
+ .filter(part => !isPlatformCookiePair(part))
63
+ .join('; ');
64
+
65
+ if (filtered) {
66
+ headers.set('Cookie', filtered);
67
+ } else {
68
+ headers.delete('Cookie');
69
+ }
70
+ }
71
+
72
+ function isPlatformCookiePair(cookiePair) {
73
+ const cookieName = cookiePair.split('=', 1)[0]?.trim().toLowerCase();
74
+ return PLATFORM_SESSION_COOKIE_NAMES.has(cookieName);
75
+ }
76
+
77
+ export default {
78
+ fetch(request, env, ctx) {
79
+ return appWorker.fetch(stripPlatformRequestCredentials(request), env, ctx);
80
+ },
81
+ };
82
+ `;
83
+ function buildWorkerModules(script) {
84
+ return [
85
+ {
86
+ type: 'ESModule',
87
+ path: LOCAL_DISPATCH_WRAPPER_PATH,
88
+ contents: localDispatchWrapper,
89
+ },
90
+ {
91
+ type: 'ESModule',
92
+ path: APP_WORKER_MODULE_PATH,
93
+ contents: script,
94
+ },
95
+ ];
96
+ }
19
97
  /**
20
98
  * Resolves the Miniflare entry point from the app project root.
21
99
  * This allows a globally installed bkper CLI to load the app-local devDependency.
@@ -72,6 +150,8 @@ export function createWorkerServer(entryPoint, options) {
72
150
  kvPersist: options.persist !== false ? (_b = options.persistPath) !== null && _b !== void 0 ? _b : './.mf/kv' : undefined,
73
151
  // Environment variables and secrets
74
152
  bindings: options.vars,
153
+ // Local ASSETS service proxies static asset requests to Vite.
154
+ serviceBindings: options.assetsService ? { ASSETS: options.assetsService } : undefined,
75
155
  // Local outbound service emulates Workers for Platforms egress policies.
76
156
  outboundService: options.outboundService,
77
157
  };
@@ -79,13 +159,7 @@ export function createWorkerServer(entryPoint, options) {
79
159
  // Use modules array format instead of script string
80
160
  // This allows Miniflare to properly handle dynamic imports of external modules
81
161
  // like cloudflare:workers that are used by libraries (e.g., Hono)
82
- modules: [
83
- {
84
- type: 'ESModule',
85
- path: 'index.js', // Virtual path for the bundled module
86
- contents: script,
87
- },
88
- ] }));
162
+ modules: buildWorkerModules(script) }));
89
163
  // Store the base config for hot reload
90
164
  instanceConfigs.set(mf, baseConfig);
91
165
  // Wait for Miniflare to be ready
@@ -120,24 +194,12 @@ export function updateWorkerCode(mf, code) {
120
194
  if (!baseConfig) {
121
195
  // Fallback: use minimal config if no stored config (shouldn't happen normally)
122
196
  yield mf.setOptions({
123
- modules: [
124
- {
125
- type: 'ESModule',
126
- path: 'index.js',
127
- contents: code,
128
- },
129
- ],
197
+ modules: buildWorkerModules(code),
130
198
  });
131
199
  return;
132
200
  }
133
201
  // Apply the full config with new modules
134
- yield mf.setOptions(Object.assign(Object.assign({}, baseConfig), { modules: [
135
- {
136
- type: 'ESModule',
137
- path: 'index.js',
138
- contents: code,
139
- },
140
- ] }));
202
+ yield mf.setOptions(Object.assign(Object.assign({}, baseConfig), { modules: buildWorkerModules(code) }));
141
203
  });
142
204
  }
143
205
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"miniflare.js","sourceRoot":"","sources":["../../src/dev/miniflare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"miniflare.js","sourceRoot":"","sources":["../../src/dev/miniflare.ts"],"names":[],"mappings":"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"}