@cloudflare/vite-plugin 0.0.0-6dd1e2300 → 0.0.0-6fb582d7f
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/asset-workers/asset-worker.js +912 -792
- package/dist/asset-workers/router-worker.js +230 -230
- package/dist/index.js +98 -61
- package/package.json +9 -8
package/dist/index.js
CHANGED
|
@@ -1364,7 +1364,13 @@ import * as fs2 from "node:fs";
|
|
|
1364
1364
|
import * as fsp from "node:fs/promises";
|
|
1365
1365
|
import * as path3 from "node:path";
|
|
1366
1366
|
import { fileURLToPath } from "node:url";
|
|
1367
|
-
import {
|
|
1367
|
+
import {
|
|
1368
|
+
kCurrentWorker,
|
|
1369
|
+
Log,
|
|
1370
|
+
LogLevel,
|
|
1371
|
+
Response as MiniflareResponse
|
|
1372
|
+
} from "miniflare";
|
|
1373
|
+
import { globSync } from "tinyglobby";
|
|
1368
1374
|
import "vite";
|
|
1369
1375
|
import {
|
|
1370
1376
|
unstable_getMiniflareWorkerOptions,
|
|
@@ -1398,11 +1404,10 @@ function getWorkerToWorkerEntrypointNamesMap(workers) {
|
|
|
1398
1404
|
);
|
|
1399
1405
|
for (const worker of workers) {
|
|
1400
1406
|
for (const value of Object.values(worker.serviceBindings ?? {})) {
|
|
1401
|
-
if (typeof value === "object" && "name" in value &&
|
|
1402
|
-
const
|
|
1403
|
-
|
|
1404
|
-
);
|
|
1405
|
-
assert4(entrypointNames, missingWorkerErrorMessage(value.name));
|
|
1407
|
+
if (typeof value === "object" && "name" in value && value.entrypoint !== void 0 && value.entrypoint !== "default") {
|
|
1408
|
+
const targetWorkerName = value.name === kCurrentWorker ? worker.name : value.name;
|
|
1409
|
+
const entrypointNames = workerToWorkerEntrypointNamesMap.get(targetWorkerName);
|
|
1410
|
+
assert4(entrypointNames, missingWorkerErrorMessage(targetWorkerName));
|
|
1406
1411
|
entrypointNames.add(value.entrypoint);
|
|
1407
1412
|
}
|
|
1408
1413
|
}
|
|
@@ -1547,7 +1552,7 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1547
1552
|
}
|
|
1548
1553
|
}
|
|
1549
1554
|
];
|
|
1550
|
-
const
|
|
1555
|
+
const workersFromConfig = resolvedPluginConfig.type === "workers" ? Object.entries(resolvedPluginConfig.workers).map(
|
|
1551
1556
|
([environmentName, workerConfig]) => {
|
|
1552
1557
|
const miniflareWorkerOptions = unstable_getMiniflareWorkerOptions(
|
|
1553
1558
|
{
|
|
@@ -1556,51 +1561,58 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1556
1561
|
},
|
|
1557
1562
|
resolvedPluginConfig.cloudflareEnv
|
|
1558
1563
|
);
|
|
1564
|
+
const { externalWorkers: externalWorkers2 } = miniflareWorkerOptions;
|
|
1559
1565
|
const { ratelimits, ...workerOptions } = miniflareWorkerOptions.workerOptions;
|
|
1560
1566
|
return {
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1567
|
+
externalWorkers: externalWorkers2,
|
|
1568
|
+
worker: {
|
|
1569
|
+
...workerOptions,
|
|
1570
|
+
name: workerOptions.name ?? workerConfig.name,
|
|
1571
|
+
modulesRoot: miniflareModulesRoot,
|
|
1572
|
+
unsafeEvalBinding: "__VITE_UNSAFE_EVAL__",
|
|
1573
|
+
bindings: {
|
|
1574
|
+
...workerOptions.bindings,
|
|
1575
|
+
__VITE_ROOT__: resolvedViteConfig.root,
|
|
1576
|
+
__VITE_ENTRY_PATH__: workerConfig.main
|
|
1577
|
+
},
|
|
1578
|
+
serviceBindings: {
|
|
1579
|
+
...workerOptions.serviceBindings,
|
|
1580
|
+
...environmentName === resolvedPluginConfig.entryWorkerEnvironmentName && workerConfig.assets?.binding ? {
|
|
1581
|
+
[workerConfig.assets.binding]: ASSET_WORKER_NAME
|
|
1582
|
+
} : {},
|
|
1583
|
+
__VITE_INVOKE_MODULE__: async (request) => {
|
|
1584
|
+
const payload = await request.json();
|
|
1585
|
+
const invokePayloadData = payload.data;
|
|
1586
|
+
assert4(
|
|
1587
|
+
invokePayloadData.name === "fetchModule",
|
|
1588
|
+
`Invalid invoke event: ${invokePayloadData.name}`
|
|
1589
|
+
);
|
|
1590
|
+
const [moduleId] = invokePayloadData.data;
|
|
1591
|
+
const moduleRE = new RegExp(MODULE_PATTERN);
|
|
1592
|
+
const shouldExternalize = (
|
|
1593
|
+
// Worker modules (CompiledWasm, Text, Data)
|
|
1594
|
+
moduleRE.test(moduleId)
|
|
1595
|
+
);
|
|
1596
|
+
if (shouldExternalize) {
|
|
1597
|
+
const result2 = {
|
|
1598
|
+
externalize: moduleId,
|
|
1599
|
+
type: "module"
|
|
1600
|
+
};
|
|
1601
|
+
return MiniflareResponse.json({ result: result2 });
|
|
1602
|
+
}
|
|
1603
|
+
const devEnvironment = viteDevServer.environments[environmentName];
|
|
1604
|
+
const result = await devEnvironment.hot.handleInvoke(payload);
|
|
1605
|
+
return MiniflareResponse.json(result);
|
|
1595
1606
|
}
|
|
1596
|
-
const devEnvironment = viteDevServer.environments[environmentName];
|
|
1597
|
-
const result = await devEnvironment.hot.handleInvoke(payload);
|
|
1598
|
-
return MiniflareResponse.json(result);
|
|
1599
1607
|
}
|
|
1600
1608
|
}
|
|
1601
1609
|
};
|
|
1602
1610
|
}
|
|
1603
1611
|
) : [];
|
|
1612
|
+
const userWorkers = workersFromConfig.map((options) => options.worker);
|
|
1613
|
+
const externalWorkers = workersFromConfig.flatMap(
|
|
1614
|
+
(options) => options.externalWorkers
|
|
1615
|
+
);
|
|
1604
1616
|
const workerToWorkerEntrypointNamesMap = getWorkerToWorkerEntrypointNamesMap(userWorkers);
|
|
1605
1617
|
const workerToDurableObjectClassNamesMap = getWorkerToDurableObjectClassNamesMap(userWorkers);
|
|
1606
1618
|
const workerToWorkflowEntrypointClassNamesMap = getWorkerToWorkflowEntrypointClassNamesMap(userWorkers);
|
|
@@ -1620,6 +1632,7 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1620
1632
|
),
|
|
1621
1633
|
workers: [
|
|
1622
1634
|
...assetWorkers,
|
|
1635
|
+
...externalWorkers,
|
|
1623
1636
|
...userWorkers.map((workerOptions) => {
|
|
1624
1637
|
const wrappers = [
|
|
1625
1638
|
`import { createWorkerEntrypointWrapper, createDurableObjectWrapper, createWorkflowEntrypointWrapper } from '${RUNNER_PATH}';`,
|
|
@@ -1652,7 +1665,7 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1652
1665
|
const workflowEntrypointClassNames = workerToWorkflowEntrypointClassNamesMap.get(workerOptions.name);
|
|
1653
1666
|
assert4(
|
|
1654
1667
|
workflowEntrypointClassNames,
|
|
1655
|
-
`WorkflowEntrypoint class names not found for worker ${workerOptions.name}`
|
|
1668
|
+
`WorkflowEntrypoint class names not found for worker: ${workerOptions.name}`
|
|
1656
1669
|
);
|
|
1657
1670
|
for (const className of [...workflowEntrypointClassNames].sort()) {
|
|
1658
1671
|
wrappers.push(
|
|
@@ -1688,17 +1701,19 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1688
1701
|
);
|
|
1689
1702
|
const moduleRE = new RegExp(MODULE_PATTERN);
|
|
1690
1703
|
const match = moduleRE.exec(rawSpecifier);
|
|
1691
|
-
assert4(match, `Unexpected error: no match for module ${rawSpecifier}.`);
|
|
1704
|
+
assert4(match, `Unexpected error: no match for module: ${rawSpecifier}.`);
|
|
1692
1705
|
const [full, moduleType, modulePath] = match;
|
|
1693
1706
|
assert4(
|
|
1694
1707
|
modulePath,
|
|
1695
|
-
`Unexpected error: module path not found in reference ${full}.`
|
|
1708
|
+
`Unexpected error: module path not found in reference: ${full}.`
|
|
1696
1709
|
);
|
|
1697
1710
|
let source;
|
|
1698
1711
|
try {
|
|
1699
1712
|
source = fs2.readFileSync(modulePath);
|
|
1700
1713
|
} catch (error) {
|
|
1701
|
-
throw new Error(
|
|
1714
|
+
throw new Error(
|
|
1715
|
+
`Import "${modulePath}" not found. Does the file exist?`
|
|
1716
|
+
);
|
|
1702
1717
|
}
|
|
1703
1718
|
return MiniflareResponse.json({
|
|
1704
1719
|
// Cap'n Proto expects byte arrays for `:Data` typed fields from JSON
|
|
@@ -1707,22 +1722,44 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer) {
|
|
|
1707
1722
|
}
|
|
1708
1723
|
};
|
|
1709
1724
|
}
|
|
1725
|
+
function getPreviewModules(main, modulesRules) {
|
|
1726
|
+
assert4(modulesRules, `Unexpected error: 'modulesRules' is undefined`);
|
|
1727
|
+
const rootPath = path3.dirname(main);
|
|
1728
|
+
const entryPath = path3.basename(main);
|
|
1729
|
+
return {
|
|
1730
|
+
rootPath,
|
|
1731
|
+
modules: [
|
|
1732
|
+
{
|
|
1733
|
+
type: "ESModule",
|
|
1734
|
+
path: entryPath
|
|
1735
|
+
},
|
|
1736
|
+
...modulesRules.flatMap(
|
|
1737
|
+
({ type, include }) => globSync(include, { cwd: rootPath, ignore: entryPath }).map((path8) => ({
|
|
1738
|
+
type,
|
|
1739
|
+
path: path8
|
|
1740
|
+
}))
|
|
1741
|
+
)
|
|
1742
|
+
]
|
|
1743
|
+
};
|
|
1744
|
+
}
|
|
1710
1745
|
function getPreviewMiniflareOptions(vitePreviewServer, persistState) {
|
|
1711
1746
|
const resolvedViteConfig = vitePreviewServer.config;
|
|
1712
1747
|
const configPaths = getWorkerConfigPaths(resolvedViteConfig.root);
|
|
1713
1748
|
const workerConfigs = configPaths.map(
|
|
1714
1749
|
(configPath) => unstable_readConfig({ config: configPath })
|
|
1715
1750
|
);
|
|
1716
|
-
const workers = workerConfigs.
|
|
1751
|
+
const workers = workerConfigs.flatMap((config) => {
|
|
1717
1752
|
const miniflareWorkerOptions = unstable_getMiniflareWorkerOptions(config);
|
|
1718
|
-
const {
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1753
|
+
const { externalWorkers } = miniflareWorkerOptions;
|
|
1754
|
+
const { ratelimits, modulesRules, ...workerOptions } = miniflareWorkerOptions.workerOptions;
|
|
1755
|
+
return [
|
|
1756
|
+
{
|
|
1757
|
+
...workerOptions,
|
|
1758
|
+
name: workerOptions.name ?? config.name,
|
|
1759
|
+
...miniflareWorkerOptions.main ? getPreviewModules(miniflareWorkerOptions.main, modulesRules) : { modules: true, script: "" }
|
|
1760
|
+
},
|
|
1761
|
+
...externalWorkers
|
|
1762
|
+
];
|
|
1726
1763
|
});
|
|
1727
1764
|
const logger = new ViteMiniflareLogger(resolvedViteConfig);
|
|
1728
1765
|
return {
|
|
@@ -7364,7 +7401,7 @@ var isAbsolute = function(p) {
|
|
|
7364
7401
|
import { fileURLToPath as fileURLToPath$1, URL as URL$1, pathToFileURL as pathToFileURL$1 } from "node:url";
|
|
7365
7402
|
import assert5 from "node:assert";
|
|
7366
7403
|
import process$1 from "node:process";
|
|
7367
|
-
import path4, { dirname as
|
|
7404
|
+
import path4, { dirname as dirname4 } from "node:path";
|
|
7368
7405
|
import v8 from "node:v8";
|
|
7369
7406
|
import { format as format2, inspect } from "node:util";
|
|
7370
7407
|
var BUILTIN_MODULES = new Set(builtinModules);
|
|
@@ -9216,7 +9253,7 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
9216
9253
|
}
|
|
9217
9254
|
} : void 0,
|
|
9218
9255
|
builder: {
|
|
9219
|
-
|
|
9256
|
+
buildApp: userConfig.builder?.buildApp ?? (async (builder) => {
|
|
9220
9257
|
const clientEnvironment = builder.environments.client;
|
|
9221
9258
|
const defaultHtmlPath = path7.resolve(
|
|
9222
9259
|
builder.config.root,
|
|
@@ -9242,7 +9279,7 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
9242
9279
|
)
|
|
9243
9280
|
);
|
|
9244
9281
|
}
|
|
9245
|
-
}
|
|
9282
|
+
})
|
|
9246
9283
|
}
|
|
9247
9284
|
};
|
|
9248
9285
|
},
|
|
@@ -9303,7 +9340,7 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
9303
9340
|
return;
|
|
9304
9341
|
}
|
|
9305
9342
|
config.no_bundle = true;
|
|
9306
|
-
config.rules = [{ type: "ESModule", globs: ["**/*.js"] }];
|
|
9343
|
+
config.rules = [{ type: "ESModule", globs: ["**/*.js", "**/*.mjs"] }];
|
|
9307
9344
|
if (config.unsafe && Object.keys(config.unsafe).length === 0) {
|
|
9308
9345
|
config.unsafe = void 0;
|
|
9309
9346
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudflare/vite-plugin",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-6fb582d7f",
|
|
4
4
|
"description": "Cloudflare plugin for Vite",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|
|
@@ -35,12 +35,14 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@cloudflare/unenv-preset": "1.1.1",
|
|
37
37
|
"@hattip/adapter-node": "^0.0.49",
|
|
38
|
+
"tinyglobby": "^0.2.12",
|
|
38
39
|
"unenv": "2.0.0-rc.1",
|
|
39
40
|
"ws": "8.18.0",
|
|
40
|
-
"
|
|
41
|
+
"wrangler": "0.0.0-6fb582d7f",
|
|
42
|
+
"miniflare": "0.0.0-6fb582d7f"
|
|
41
43
|
},
|
|
42
44
|
"devDependencies": {
|
|
43
|
-
"@cloudflare/workers-types": "^4.
|
|
45
|
+
"@cloudflare/workers-types": "^4.20250224.0",
|
|
44
46
|
"@types/node": "^22.10.1",
|
|
45
47
|
"@types/ws": "^8.5.13",
|
|
46
48
|
"magic-string": "^0.30.12",
|
|
@@ -51,13 +53,12 @@
|
|
|
51
53
|
"vite": "^6.1.0",
|
|
52
54
|
"vitest": "~3.0.5",
|
|
53
55
|
"@cloudflare/mock-npm-registry": "0.0.0",
|
|
54
|
-
"@cloudflare/workers-shared": "0.0.0-
|
|
55
|
-
"@cloudflare/workers-tsconfig": "0.0.0"
|
|
56
|
-
"wrangler": "0.0.0-6dd1e2300"
|
|
56
|
+
"@cloudflare/workers-shared": "0.0.0-6fb582d7f",
|
|
57
|
+
"@cloudflare/workers-tsconfig": "0.0.0"
|
|
57
58
|
},
|
|
58
59
|
"peerDependencies": {
|
|
59
60
|
"vite": "^6.1.0",
|
|
60
|
-
"wrangler": "
|
|
61
|
+
"wrangler": "0.0.0-6fb582d7f"
|
|
61
62
|
},
|
|
62
63
|
"publishConfig": {
|
|
63
64
|
"access": "public"
|
|
@@ -70,7 +71,7 @@
|
|
|
70
71
|
"check:type": "tsc --build",
|
|
71
72
|
"dev": "tsup --watch",
|
|
72
73
|
"test": "vitest run",
|
|
73
|
-
"test:ci": "pnpm test
|
|
74
|
+
"test:ci": "pnpm test",
|
|
74
75
|
"test:e2e": "vitest run -c e2e/vitest.config.ts",
|
|
75
76
|
"test:watch": "vitest"
|
|
76
77
|
}
|