@distilled.cloud/cloudflare-rolldown-plugin 0.3.0 → 0.4.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.
- package/dist/factory.d.ts +19 -0
- package/dist/factory.d.ts.map +1 -0
- package/dist/factory.js +30 -0
- package/dist/factory.js.map +1 -0
- package/dist/options.d.ts +26 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +1 -0
- package/dist/options.js.map +1 -0
- package/dist/plugin.d.ts +3 -6
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +10 -11
- package/dist/plugin.js.map +1 -1
- package/dist/plugins/additional-modules.d.ts +1 -2
- package/dist/plugins/additional-modules.d.ts.map +1 -1
- package/dist/plugins/additional-modules.js +67 -53
- package/dist/plugins/additional-modules.js.map +1 -1
- package/dist/plugins/cloudflare-externals.d.ts +1 -2
- package/dist/plugins/cloudflare-externals.d.ts.map +1 -1
- package/dist/plugins/cloudflare-externals.js +36 -15
- package/dist/plugins/cloudflare-externals.js.map +1 -1
- package/dist/plugins/index.d.ts +7 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +7 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/nodejs-compat.d.ts +9 -3
- package/dist/plugins/nodejs-compat.d.ts.map +1 -1
- package/dist/plugins/nodejs-compat.js +178 -115
- package/dist/plugins/nodejs-compat.js.map +1 -1
- package/dist/plugins/options.d.ts +1 -5
- package/dist/plugins/options.d.ts.map +1 -1
- package/dist/plugins/options.js +128 -23
- package/dist/plugins/options.js.map +1 -1
- package/dist/plugins/virtual-modules.d.ts +3 -0
- package/dist/plugins/virtual-modules.d.ts.map +1 -0
- package/dist/plugins/virtual-modules.js +125 -0
- package/dist/plugins/virtual-modules.js.map +1 -0
- package/dist/plugins/wasm-init.d.ts +1 -2
- package/dist/plugins/wasm-init.d.ts.map +1 -1
- package/dist/plugins/wasm-init.js +15 -13
- package/dist/plugins/wasm-init.js.map +1 -1
- package/package.json +16 -1
- package/src/factory.ts +60 -0
- package/src/options.ts +25 -0
- package/src/plugin.ts +22 -18
- package/src/plugins/additional-modules.ts +89 -55
- package/src/plugins/cloudflare-externals.ts +36 -16
- package/src/plugins/index.ts +6 -0
- package/src/plugins/nodejs-compat.ts +197 -140
- package/src/plugins/options.ts +145 -26
- package/src/plugins/virtual-modules.ts +135 -0
- package/src/plugins/wasm-init.ts +15 -14
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type * as rolldown from "rolldown";
|
|
2
|
+
import type * as vite from "vite";
|
|
3
|
+
import type { CloudflarePluginOptions } from "./options.js";
|
|
4
|
+
export interface PluginInput<A = any> {
|
|
5
|
+
shared?: Omit<rolldown.Plugin<A>, "name">;
|
|
6
|
+
rolldown?: Omit<rolldown.Plugin<A>, "name">;
|
|
7
|
+
vite?: Omit<vite.Plugin<A>, "name">;
|
|
8
|
+
}
|
|
9
|
+
export interface NullablePluginOutput<A = any> {
|
|
10
|
+
rolldown: (options: CloudflarePluginOptions) => rolldown.Plugin<A> | null;
|
|
11
|
+
vite: (options: CloudflarePluginOptions) => vite.Plugin<A> | null;
|
|
12
|
+
}
|
|
13
|
+
export interface PluginOutput<A = any> {
|
|
14
|
+
rolldown: (options: CloudflarePluginOptions) => rolldown.Plugin<A>;
|
|
15
|
+
vite: (options: CloudflarePluginOptions) => vite.Plugin<A>;
|
|
16
|
+
}
|
|
17
|
+
export declare function createPlugin<TName extends string, A = any>(pluginName: TName, make: (options: CloudflarePluginOptions) => PluginInput<A>): PluginOutput<A>;
|
|
18
|
+
export declare function createPlugin<TName extends string, A = any>(pluginName: TName, make: (options: CloudflarePluginOptions) => PluginInput<A> | undefined): NullablePluginOutput<A>;
|
|
19
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,KAAK,IAAI,MAAM,MAAM,CAAC;AAClC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAC3C,QAAQ,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC1E,IAAI,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACnC,QAAQ,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,IAAI,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAC5D;AAED,wBAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,EAAE,CAAC,GAAG,GAAG,EACxD,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,WAAW,CAAC,CAAC,CAAC,GACzD,YAAY,CAAC,CAAC,CAAC,CAAC;AAEnB,wBAAgB,YAAY,CAAC,KAAK,SAAS,MAAM,EAAE,CAAC,GAAG,GAAG,EACxD,UAAU,EAAE,KAAK,EACjB,IAAI,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,GACrE,oBAAoB,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/factory.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function createPlugin(pluginName, make) {
|
|
2
|
+
const name = `distilled-cloudflare:${pluginName}`;
|
|
3
|
+
return {
|
|
4
|
+
rolldown: (options) => {
|
|
5
|
+
const plugin = make(options);
|
|
6
|
+
if (!plugin)
|
|
7
|
+
return null;
|
|
8
|
+
return {
|
|
9
|
+
name,
|
|
10
|
+
...plugin.shared,
|
|
11
|
+
...plugin.rolldown,
|
|
12
|
+
};
|
|
13
|
+
},
|
|
14
|
+
vite: (options) => {
|
|
15
|
+
const plugin = make(options);
|
|
16
|
+
if (!plugin)
|
|
17
|
+
return null;
|
|
18
|
+
return {
|
|
19
|
+
name,
|
|
20
|
+
sharedDuringBuild: true,
|
|
21
|
+
applyToEnvironment(environment) {
|
|
22
|
+
return environment.name !== "client";
|
|
23
|
+
},
|
|
24
|
+
...plugin.shared,
|
|
25
|
+
...plugin.vite,
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AA8BA,MAAM,UAAU,YAAY,CAC1B,UAAiB,EACjB,IAAsE;IAEtE,MAAM,IAAI,GAAG,wBAAwB,UAAU,EAAE,CAAC;IAClD,OAAO;QACL,QAAQ,EAAE,CAAC,OAAgC,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,OAAO;gBACL,IAAI;gBACJ,GAAG,MAAM,CAAC,MAAM;gBAChB,GAAG,MAAM,CAAC,QAAQ;aACnB,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC,OAAgC,EAAE,EAAE;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,OAAO;gBACL,IAAI;gBACJ,iBAAiB,EAAE,IAAI;gBACvB,kBAAkB,CAAC,WAAW;oBAC5B,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC;gBACvC,CAAC;gBACD,GAAG,MAAM,CAAC,MAAM;gBAChB,GAAG,MAAM,CAAC,IAAI;aACA,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface CloudflarePluginOptions {
|
|
2
|
+
/**
|
|
3
|
+
* The compatibility date to use. This is optional, but should be defined to avoid unexpected behavior.
|
|
4
|
+
* @default undefined
|
|
5
|
+
*/
|
|
6
|
+
compatibilityDate?: string;
|
|
7
|
+
/**
|
|
8
|
+
* The compatibility flags to enable.
|
|
9
|
+
* @default []
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* cloudflare({ compatibilityDate: "2026-04-01", compatibilityFlags: ["nodejs_compat"] });
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
compatibilityFlags?: Array<string>;
|
|
16
|
+
/**
|
|
17
|
+
* The exports to include in the bundle.
|
|
18
|
+
* By default, all exports are included. However, if you only want to include certain exports, you can use this option.
|
|
19
|
+
* @example
|
|
20
|
+
* ```ts
|
|
21
|
+
* cloudflare({ exports: ["default"] });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
exports?: Array<string>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACzB"}
|
package/dist/options.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":""}
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
compatibilityFlags?: Array<string>;
|
|
5
|
-
}
|
|
6
|
-
export type CloudflarePlugin = (options?: CloudflarePluginOptions) => RolldownPluginOption;
|
|
1
|
+
import type * as rolldown from "rolldown";
|
|
2
|
+
import type { CloudflarePluginOptions } from "./options.js";
|
|
3
|
+
export type CloudflarePlugin = (options?: CloudflarePluginOptions) => Array<rolldown.Plugin | null>;
|
|
7
4
|
declare const cloudflare: CloudflarePlugin;
|
|
8
5
|
export default cloudflare;
|
|
9
6
|
//# sourceMappingURL=plugin.d.ts.map
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAY5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,CAAC,EAAE,uBAAuB,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAEpG,QAAA,MAAM,UAAU,EAAE,gBAWjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { makeNodejsCompatPlugin } from "./plugins/nodejs-compat.js";
|
|
4
|
-
import { makeOptionsPlugin } from "./plugins/options.js";
|
|
5
|
-
import { wasmInitPlugin } from "./plugins/wasm-init.js";
|
|
6
|
-
const cloudflare = async (options = {}) => {
|
|
1
|
+
import { additionalModulesPlugin, cloudflareExternalsPlugin, nodejsAlsPlugin, nodejsImportWarningPlugin, nodejsUnenvPlugin, optionsPlugin, virtualModulesPlugin, wasmInitPlugin, } from "./plugins/index.js";
|
|
2
|
+
const cloudflare = (options = {}) => {
|
|
7
3
|
return [
|
|
8
|
-
|
|
9
|
-
cloudflareExternalsPlugin,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
optionsPlugin.rolldown(options),
|
|
5
|
+
cloudflareExternalsPlugin.rolldown(options),
|
|
6
|
+
nodejsAlsPlugin.rolldown(options),
|
|
7
|
+
nodejsImportWarningPlugin.rolldown(options),
|
|
8
|
+
nodejsUnenvPlugin.rolldown(options),
|
|
9
|
+
virtualModulesPlugin.rolldown(options),
|
|
10
|
+
wasmInitPlugin.rolldown(options),
|
|
11
|
+
additionalModulesPlugin.rolldown(options),
|
|
13
12
|
];
|
|
14
13
|
};
|
|
15
14
|
export default cloudflare;
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAI5B,MAAM,UAAU,GAAqB,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE;IACpD,OAAO;QACL,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC/B,yBAAyB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3C,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QACjC,yBAAyB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3C,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;QAChC,uBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"additional-modules.d.ts","sourceRoot":"","sources":["../../src/plugins/additional-modules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"additional-modules.d.ts","sourceRoot":"","sources":["../../src/plugins/additional-modules.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,uBAAuB,2CAwDlC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import MagicString from "magic-string";
|
|
1
2
|
import path from "node:path";
|
|
2
|
-
import {
|
|
3
|
+
import { createPlugin } from "../factory.js";
|
|
3
4
|
import { sanitizePath } from "../utils.js";
|
|
4
5
|
const MODULE_RULES = [
|
|
5
6
|
{ type: "CompiledWasm", pattern: /\.wasm(\?module)?$/ },
|
|
@@ -9,67 +10,80 @@ const MODULE_RULES = [
|
|
|
9
10
|
const MODULE_REFERENCE_PATTERN = `__CLOUDFLARE_MODULE__(${MODULE_RULES.map((rule) => rule.type).join("|")})__(.*?)__CLOUDFLARE_MODULE__`;
|
|
10
11
|
const MODULE_REFERENCE_REGEX = new RegExp(MODULE_REFERENCE_PATTERN);
|
|
11
12
|
const MODULE_REFERENCE_GLOBAL_REGEX = new RegExp(MODULE_REFERENCE_PATTERN, "g");
|
|
12
|
-
export
|
|
13
|
+
export const additionalModulesPlugin = createPlugin("additional-modules", () => {
|
|
13
14
|
const additionalModulePaths = new Set();
|
|
14
15
|
return {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// hotUpdate(options) {
|
|
22
|
-
// if (additionalModulePaths.has(options.file)) {
|
|
23
|
-
// void options.server.restart();
|
|
24
|
-
// return [];
|
|
25
|
-
// }
|
|
26
|
-
// },
|
|
27
|
-
resolveId: {
|
|
28
|
-
filter: { id: MODULE_RULES.map((rule) => rule.pattern) },
|
|
29
|
-
async handler(source, importer, options) {
|
|
30
|
-
const resolved = await this.resolve(source, importer, options);
|
|
31
|
-
if (!resolved) {
|
|
32
|
-
return;
|
|
16
|
+
vite: {
|
|
17
|
+
enforce: "pre",
|
|
18
|
+
hotUpdate(options) {
|
|
19
|
+
if (additionalModulePaths.has(options.file)) {
|
|
20
|
+
void options.server.restart();
|
|
21
|
+
return [];
|
|
33
22
|
}
|
|
34
|
-
const rule = MODULE_RULES.find((rule) => rule.pattern.test(resolved.id));
|
|
35
|
-
if (!rule) {
|
|
36
|
-
return resolved;
|
|
37
|
-
}
|
|
38
|
-
const filePath = sanitizePath(resolved.id);
|
|
39
|
-
additionalModulePaths.add(filePath);
|
|
40
|
-
return {
|
|
41
|
-
external: true,
|
|
42
|
-
id: moduleReferenceId(rule.type, filePath),
|
|
43
|
-
};
|
|
44
23
|
},
|
|
45
24
|
},
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
25
|
+
shared: {
|
|
26
|
+
resolveId: {
|
|
27
|
+
filter: { id: MODULE_RULES.map((rule) => rule.pattern) },
|
|
28
|
+
async handler(source, importer, options) {
|
|
29
|
+
const resolved = await this.resolve(source, importer, options);
|
|
30
|
+
if (!resolved) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const rule = MODULE_RULES.find((rule) => rule.pattern.test(resolved.id));
|
|
34
|
+
if (!rule) {
|
|
35
|
+
return resolved;
|
|
36
|
+
}
|
|
37
|
+
const filePath = sanitizePath(resolved.id);
|
|
38
|
+
additionalModulePaths.add(filePath);
|
|
39
|
+
return {
|
|
40
|
+
id: moduleReferenceId(rule.type, filePath),
|
|
41
|
+
external: true,
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
renderChunk: {
|
|
46
|
+
filter: { code: { include: MODULE_REFERENCE_REGEX } },
|
|
47
|
+
handler: withMagicString(async function (code, chunk, magicString) {
|
|
48
|
+
const matches = code.matchAll(MODULE_REFERENCE_GLOBAL_REGEX);
|
|
49
|
+
for (const match of matches) {
|
|
50
|
+
const [full, , id] = match;
|
|
51
|
+
const source = await this.fs.readFile(id);
|
|
52
|
+
const referenceId = this.emitFile({
|
|
53
|
+
type: "asset",
|
|
54
|
+
name: path.basename(id),
|
|
55
|
+
source,
|
|
56
|
+
});
|
|
57
|
+
const fileName = this.getFileName(referenceId);
|
|
58
|
+
const relativePath = path.relative(path.dirname(chunk.fileName), fileName);
|
|
59
|
+
const importPath = relativePath.startsWith(".") ? relativePath : `./${relativePath}`;
|
|
60
|
+
magicString.update(match.index, match.index + full.length, importPath);
|
|
61
|
+
}
|
|
62
|
+
}),
|
|
68
63
|
},
|
|
69
64
|
},
|
|
70
65
|
};
|
|
71
|
-
}
|
|
66
|
+
});
|
|
72
67
|
function moduleReferenceId(type, id) {
|
|
73
68
|
return `__CLOUDFLARE_MODULE__${type}__${id}__CLOUDFLARE_MODULE__`;
|
|
74
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns a `renderChunk` handler that transforms the chunk using a magic string.
|
|
72
|
+
* Uses Rolldown's native magic string if available, or the `magic-string` library otherwise.
|
|
73
|
+
*/
|
|
74
|
+
function withMagicString(renderChunk) {
|
|
75
|
+
return async function (code, chunk, outputOptions, meta) {
|
|
76
|
+
const magicString = meta.magicString ?? new MagicString(code);
|
|
77
|
+
await renderChunk.call(this, code, chunk, magicString);
|
|
78
|
+
if ("isRolldownMagicString" in magicString && magicString.isRolldownMagicString) {
|
|
79
|
+
return magicString;
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
code: magicString.toString(),
|
|
83
|
+
map: outputOptions.sourcemap
|
|
84
|
+
? magicString.generateMap({ hires: "boundary" })
|
|
85
|
+
: null,
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
}
|
|
75
89
|
//# sourceMappingURL=additional-modules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"additional-modules.js","sourceRoot":"","sources":["../../src/plugins/additional-modules.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"additional-modules.js","sourceRoot":"","sources":["../../src/plugins/additional-modules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare-externals.d.ts","sourceRoot":"","sources":["../../src/plugins/cloudflare-externals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloudflare-externals.d.ts","sourceRoot":"","sources":["../../src/plugins/cloudflare-externals.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,yBAAyB,2CAmCpC,CAAC"}
|
|
@@ -1,23 +1,44 @@
|
|
|
1
|
-
|
|
1
|
+
import { createPlugin } from "../factory.js";
|
|
2
|
+
const CLOUDFLARE_BUILT_IN_MODULES = [
|
|
2
3
|
"cloudflare:email",
|
|
3
4
|
"cloudflare:node",
|
|
4
5
|
"cloudflare:sockets",
|
|
5
6
|
"cloudflare:workers",
|
|
6
7
|
"cloudflare:workflows",
|
|
7
8
|
];
|
|
8
|
-
export const cloudflareExternalsPlugin = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
export const cloudflareExternalsPlugin = createPlugin("cloudflare-externals", () => {
|
|
10
|
+
return {
|
|
11
|
+
rolldown: {
|
|
12
|
+
resolveId: {
|
|
13
|
+
filter: { id: /^cloudflare:/ },
|
|
14
|
+
handler(id) {
|
|
15
|
+
if (!CLOUDFLARE_BUILT_IN_MODULES.includes(id)) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
id,
|
|
20
|
+
external: true,
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
},
|
|
20
24
|
},
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
vite: {
|
|
26
|
+
configEnvironment(name) {
|
|
27
|
+
if (name === "client") {
|
|
28
|
+
// Some frameworks allow users to mix client and server code in the same file and then extract the server code.
|
|
29
|
+
// As the dependency optimization may happen before the server code is extracted, we should exclude Cloudflare built-ins from client optimization.
|
|
30
|
+
return { optimizeDeps: { exclude: CLOUDFLARE_BUILT_IN_MODULES } };
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
resolve: {
|
|
34
|
+
builtins: CLOUDFLARE_BUILT_IN_MODULES,
|
|
35
|
+
},
|
|
36
|
+
optimizeDeps: {
|
|
37
|
+
exclude: CLOUDFLARE_BUILT_IN_MODULES,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
});
|
|
23
44
|
//# sourceMappingURL=cloudflare-externals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare-externals.js","sourceRoot":"","sources":["../../src/plugins/cloudflare-externals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cloudflare-externals.js","sourceRoot":"","sources":["../../src/plugins/cloudflare-externals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,2BAA2B,GAAG;IAClC,kBAAkB;IAClB,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,sBAAsB;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,YAAY,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACjF,OAAO;QACL,QAAQ,EAAE;YACR,SAAS,EAAE;gBACT,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;gBAC9B,OAAO,CAAC,EAAE;oBACR,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC9C,OAAO;oBACT,CAAC;oBAED,OAAO;wBACL,EAAE;wBACF,QAAQ,EAAE,IAAI;qBACf,CAAC;gBACJ,CAAC;aACF;SACF;QACD,IAAI,EAAE;YACJ,iBAAiB,CAAC,IAAI;gBACpB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtB,+GAA+G;oBAC/G,kJAAkJ;oBAClJ,OAAO,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,CAAC;gBACpE,CAAC;gBACD,OAAO;oBACL,OAAO,EAAE;wBACP,QAAQ,EAAE,2BAA2B;qBACtC;oBACD,YAAY,EAAE;wBACZ,OAAO,EAAE,2BAA2B;qBACrC;iBACF,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export declare const nodejsAlsPlugin: import("../factory.js").NullablePluginOutput<any>;
|
|
2
|
+
export interface UnenvApi {
|
|
3
|
+
polyfill: ReadonlyArray<string>;
|
|
4
|
+
inject: {
|
|
5
|
+
[injectedName: string]: string;
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export declare const nodejsUnenvPlugin: import("../factory.js").NullablePluginOutput<UnenvApi>;
|
|
9
|
+
export declare const nodejsImportWarningPlugin: import("../factory.js").NullablePluginOutput<any>;
|
|
4
10
|
//# sourceMappingURL=nodejs-compat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodejs-compat.d.ts","sourceRoot":"","sources":["../../src/plugins/nodejs-compat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nodejs-compat.d.ts","sourceRoot":"","sources":["../../src/plugins/nodejs-compat.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,eAAe,mDAyB1B,CAAC;AAEH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE;QAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,eAAO,MAAM,iBAAiB,wDA+H7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,mDA0DpC,CAAC"}
|