@cloudflare/vite-plugin 1.3.0 → 1.3.1
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/index.d.ts +2 -0
- package/dist/index.js +116 -87
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ interface PluginConfig extends EntryWorkerConfig {
|
|
|
21
21
|
experimental?: {
|
|
22
22
|
/** Experimental support for handling the _headers and _redirects files during Vite dev mode. */
|
|
23
23
|
headersAndRedirectsDevModeSupport?: boolean;
|
|
24
|
+
/** Experimental support for mixed mode (where bindings configured with `remote: true` access remote resources). */
|
|
25
|
+
mixedMode?: boolean;
|
|
24
26
|
};
|
|
25
27
|
}
|
|
26
28
|
|
package/dist/index.js
CHANGED
|
@@ -13345,7 +13345,12 @@ import {
|
|
|
13345
13345
|
import colors2 from "picocolors";
|
|
13346
13346
|
import { globSync } from "tinyglobby";
|
|
13347
13347
|
import "vite";
|
|
13348
|
-
import {
|
|
13348
|
+
import {
|
|
13349
|
+
experimental_pickRemoteBindings,
|
|
13350
|
+
experimental_startMixedModeSession,
|
|
13351
|
+
unstable_convertConfigBindingsToStartWorkerBindings,
|
|
13352
|
+
unstable_getMiniflareWorkerOptions
|
|
13353
|
+
} from "wrangler";
|
|
13349
13354
|
function getPersistenceRoot(root, persistState) {
|
|
13350
13355
|
if (persistState === false) {
|
|
13351
13356
|
return;
|
|
@@ -13463,7 +13468,7 @@ function filterTails(tails, userWorkers, log) {
|
|
|
13463
13468
|
return found;
|
|
13464
13469
|
});
|
|
13465
13470
|
}
|
|
13466
|
-
function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer, inspectorPort) {
|
|
13471
|
+
async function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer, inspectorPort) {
|
|
13467
13472
|
const resolvedViteConfig = viteDevServer.config;
|
|
13468
13473
|
const entryWorkerConfig = getEntryWorkerConfig(resolvedPluginConfig);
|
|
13469
13474
|
const assetsConfig = getAssetsConfig(
|
|
@@ -13539,53 +13544,59 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer, inspectorPo
|
|
|
13539
13544
|
}
|
|
13540
13545
|
}
|
|
13541
13546
|
];
|
|
13542
|
-
const workersFromConfig = resolvedPluginConfig.type === "workers" ?
|
|
13543
|
-
(
|
|
13544
|
-
|
|
13545
|
-
|
|
13546
|
-
|
|
13547
|
-
|
|
13548
|
-
|
|
13549
|
-
|
|
13550
|
-
|
|
13551
|
-
|
|
13552
|
-
|
|
13553
|
-
|
|
13554
|
-
|
|
13555
|
-
|
|
13556
|
-
|
|
13557
|
-
|
|
13558
|
-
|
|
13559
|
-
|
|
13560
|
-
|
|
13561
|
-
|
|
13562
|
-
|
|
13563
|
-
|
|
13564
|
-
|
|
13565
|
-
|
|
13566
|
-
|
|
13567
|
-
|
|
13568
|
-
|
|
13569
|
-
|
|
13570
|
-
|
|
13571
|
-
|
|
13572
|
-
|
|
13573
|
-
|
|
13574
|
-
|
|
13575
|
-
|
|
13576
|
-
|
|
13577
|
-
|
|
13578
|
-
|
|
13579
|
-
|
|
13547
|
+
const workersFromConfig = resolvedPluginConfig.type === "workers" ? await Promise.all(
|
|
13548
|
+
Object.entries(resolvedPluginConfig.workers).map(
|
|
13549
|
+
async ([environmentName, workerConfig]) => {
|
|
13550
|
+
const mixedModeSession = resolvedPluginConfig.experimental.mixedMode ? await maybeStartOrUpdateMixedModeSession(workerConfig) : void 0;
|
|
13551
|
+
const miniflareWorkerOptions = unstable_getMiniflareWorkerOptions(
|
|
13552
|
+
{
|
|
13553
|
+
...workerConfig,
|
|
13554
|
+
assets: void 0
|
|
13555
|
+
},
|
|
13556
|
+
resolvedPluginConfig.cloudflareEnv,
|
|
13557
|
+
{
|
|
13558
|
+
mixedModeConnectionString: mixedModeSession?.mixedModeConnectionString
|
|
13559
|
+
}
|
|
13560
|
+
);
|
|
13561
|
+
const { externalWorkers: externalWorkers2 } = miniflareWorkerOptions;
|
|
13562
|
+
const { ratelimits, ...workerOptions } = miniflareWorkerOptions.workerOptions;
|
|
13563
|
+
return {
|
|
13564
|
+
externalWorkers: externalWorkers2,
|
|
13565
|
+
worker: {
|
|
13566
|
+
...workerOptions,
|
|
13567
|
+
name: workerOptions.name ?? workerConfig.name,
|
|
13568
|
+
unsafeInspectorProxy: inspectorPort !== false,
|
|
13569
|
+
modulesRoot: miniflareModulesRoot,
|
|
13570
|
+
unsafeEvalBinding: "__VITE_UNSAFE_EVAL__",
|
|
13571
|
+
serviceBindings: {
|
|
13572
|
+
...workerOptions.serviceBindings,
|
|
13573
|
+
...environmentName === resolvedPluginConfig.entryWorkerEnvironmentName && workerConfig.assets?.binding ? {
|
|
13574
|
+
[workerConfig.assets.binding]: ASSET_WORKER_NAME
|
|
13575
|
+
} : {},
|
|
13576
|
+
__VITE_INVOKE_MODULE__: async (request) => {
|
|
13577
|
+
const payload = await request.json();
|
|
13578
|
+
const invokePayloadData = payload.data;
|
|
13579
|
+
assert6(
|
|
13580
|
+
invokePayloadData.name === "fetchModule",
|
|
13581
|
+
`Invalid invoke event: ${invokePayloadData.name}`
|
|
13582
|
+
);
|
|
13583
|
+
const [moduleId] = invokePayloadData.data;
|
|
13584
|
+
if (additionalModuleRE.test(moduleId)) {
|
|
13585
|
+
const result2 = {
|
|
13586
|
+
externalize: moduleId,
|
|
13587
|
+
type: "module"
|
|
13588
|
+
};
|
|
13589
|
+
return MiniflareResponse.json({ result: result2 });
|
|
13590
|
+
}
|
|
13591
|
+
const devEnvironment = viteDevServer.environments[environmentName];
|
|
13592
|
+
const result = await devEnvironment.hot.handleInvoke(payload);
|
|
13593
|
+
return MiniflareResponse.json(result);
|
|
13580
13594
|
}
|
|
13581
|
-
const devEnvironment = viteDevServer.environments[environmentName];
|
|
13582
|
-
const result = await devEnvironment.hot.handleInvoke(payload);
|
|
13583
|
-
return MiniflareResponse.json(result);
|
|
13584
13595
|
}
|
|
13585
13596
|
}
|
|
13586
|
-
}
|
|
13587
|
-
}
|
|
13588
|
-
|
|
13597
|
+
};
|
|
13598
|
+
}
|
|
13599
|
+
)
|
|
13589
13600
|
) : [];
|
|
13590
13601
|
const userWorkers = workersFromConfig.map((options) => options.worker);
|
|
13591
13602
|
const externalWorkers = workersFromConfig.flatMap(
|
|
@@ -13597,6 +13608,7 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer, inspectorPo
|
|
|
13597
13608
|
const logger = new ViteMiniflareLogger(resolvedViteConfig);
|
|
13598
13609
|
return {
|
|
13599
13610
|
log: logger,
|
|
13611
|
+
logRequests: false,
|
|
13600
13612
|
inspectorPort: inspectorPort === false ? void 0 : inspectorPort,
|
|
13601
13613
|
unsafeInspectorProxy: inspectorPort !== false,
|
|
13602
13614
|
handleRuntimeStdio(stdout, stderr) {
|
|
@@ -13740,27 +13752,36 @@ function getPreviewModules(main, modulesRules) {
|
|
|
13740
13752
|
]
|
|
13741
13753
|
};
|
|
13742
13754
|
}
|
|
13743
|
-
function getPreviewMiniflareOptions(vitePreviewServer, workerConfigs, persistState, inspectorPort) {
|
|
13755
|
+
async function getPreviewMiniflareOptions(vitePreviewServer, workerConfigs, persistState, mixedModeEnabled, inspectorPort) {
|
|
13744
13756
|
const resolvedViteConfig = vitePreviewServer.config;
|
|
13745
|
-
const workers =
|
|
13746
|
-
|
|
13747
|
-
|
|
13748
|
-
|
|
13749
|
-
|
|
13750
|
-
|
|
13751
|
-
|
|
13752
|
-
|
|
13753
|
-
|
|
13754
|
-
|
|
13755
|
-
|
|
13756
|
-
|
|
13757
|
-
|
|
13758
|
-
|
|
13759
|
-
|
|
13760
|
-
|
|
13761
|
-
|
|
13762
|
-
|
|
13763
|
-
|
|
13757
|
+
const workers = (await Promise.all(
|
|
13758
|
+
workerConfigs.map(async (workerConfig) => {
|
|
13759
|
+
const mixedModeSession = mixedModeEnabled ? await maybeStartOrUpdateMixedModeSession(workerConfig) : void 0;
|
|
13760
|
+
const miniflareWorkerOptions = unstable_getMiniflareWorkerOptions(
|
|
13761
|
+
workerConfig,
|
|
13762
|
+
void 0,
|
|
13763
|
+
{
|
|
13764
|
+
mixedModeConnectionString: mixedModeSession?.mixedModeConnectionString
|
|
13765
|
+
}
|
|
13766
|
+
);
|
|
13767
|
+
const { externalWorkers } = miniflareWorkerOptions;
|
|
13768
|
+
const { ratelimits, modulesRules, ...workerOptions } = miniflareWorkerOptions.workerOptions;
|
|
13769
|
+
return [
|
|
13770
|
+
{
|
|
13771
|
+
...workerOptions,
|
|
13772
|
+
tails: filterTails(
|
|
13773
|
+
workerOptions.tails,
|
|
13774
|
+
workerConfigs,
|
|
13775
|
+
vitePreviewServer.config.logger.warn
|
|
13776
|
+
),
|
|
13777
|
+
name: workerOptions.name ?? workerConfig.name,
|
|
13778
|
+
unsafeInspectorProxy: inspectorPort !== false,
|
|
13779
|
+
...miniflareWorkerOptions.main ? getPreviewModules(miniflareWorkerOptions.main, modulesRules) : { modules: true, script: "" }
|
|
13780
|
+
},
|
|
13781
|
+
...externalWorkers
|
|
13782
|
+
];
|
|
13783
|
+
})
|
|
13784
|
+
)).flat();
|
|
13764
13785
|
const logger = new ViteMiniflareLogger(resolvedViteConfig);
|
|
13765
13786
|
return {
|
|
13766
13787
|
log: logger,
|
|
@@ -13780,7 +13801,6 @@ function getPreviewMiniflareOptions(vitePreviewServer, workerConfigs, persistSta
|
|
|
13780
13801
|
workers
|
|
13781
13802
|
};
|
|
13782
13803
|
}
|
|
13783
|
-
var removedMessages = [/^Ready on http/, /^Updated and ready on http/];
|
|
13784
13804
|
var ViteMiniflareLogger = class extends Log {
|
|
13785
13805
|
logger;
|
|
13786
13806
|
constructor(config) {
|
|
@@ -13788,11 +13808,6 @@ var ViteMiniflareLogger = class extends Log {
|
|
|
13788
13808
|
this.logger = config.logger;
|
|
13789
13809
|
}
|
|
13790
13810
|
logWithLevel(level, message) {
|
|
13791
|
-
for (const removedMessage of removedMessages) {
|
|
13792
|
-
if (removedMessage.test(message)) {
|
|
13793
|
-
return;
|
|
13794
|
-
}
|
|
13795
|
-
}
|
|
13796
13811
|
switch (level) {
|
|
13797
13812
|
case LogLevel.ERROR:
|
|
13798
13813
|
return this.logger.error(message);
|
|
@@ -13802,6 +13817,8 @@ var ViteMiniflareLogger = class extends Log {
|
|
|
13802
13817
|
return this.logger.info(message);
|
|
13803
13818
|
}
|
|
13804
13819
|
}
|
|
13820
|
+
logReady() {
|
|
13821
|
+
}
|
|
13805
13822
|
};
|
|
13806
13823
|
function miniflareLogLevelFromViteLogLevel(level = "info") {
|
|
13807
13824
|
switch (level) {
|
|
@@ -13815,6 +13832,24 @@ function miniflareLogLevelFromViteLogLevel(level = "info") {
|
|
|
13815
13832
|
return LogLevel.NONE;
|
|
13816
13833
|
}
|
|
13817
13834
|
}
|
|
13835
|
+
var mixedModeSessionsMap = /* @__PURE__ */ new Map();
|
|
13836
|
+
async function maybeStartOrUpdateMixedModeSession(workerConfig) {
|
|
13837
|
+
const workerRemoteBindings = experimental_pickRemoteBindings(
|
|
13838
|
+
unstable_convertConfigBindingsToStartWorkerBindings(workerConfig) ?? {}
|
|
13839
|
+
);
|
|
13840
|
+
assert6(workerConfig.name, "Found workerConfig without a name");
|
|
13841
|
+
let mixedModeSession = mixedModeSessionsMap.get(workerConfig.name);
|
|
13842
|
+
if (mixedModeSession === void 0) {
|
|
13843
|
+
if (Object.keys(workerRemoteBindings).length > 0) {
|
|
13844
|
+
mixedModeSession = await experimental_startMixedModeSession(workerRemoteBindings);
|
|
13845
|
+
mixedModeSessionsMap.set(workerConfig.name, mixedModeSession);
|
|
13846
|
+
}
|
|
13847
|
+
} else {
|
|
13848
|
+
await mixedModeSession.updateBindings(workerRemoteBindings);
|
|
13849
|
+
}
|
|
13850
|
+
await mixedModeSession?.ready;
|
|
13851
|
+
return mixedModeSession;
|
|
13852
|
+
}
|
|
13818
13853
|
|
|
13819
13854
|
// src/plugin-config.ts
|
|
13820
13855
|
import assert8 from "node:assert";
|
|
@@ -14448,22 +14483,15 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
14448
14483
|
pluginConfig,
|
|
14449
14484
|
viteDevServer
|
|
14450
14485
|
);
|
|
14486
|
+
const miniflareDevOptions = await getDevMiniflareOptions(
|
|
14487
|
+
resolvedPluginConfig,
|
|
14488
|
+
viteDevServer,
|
|
14489
|
+
inputInspectorPort
|
|
14490
|
+
);
|
|
14451
14491
|
if (!miniflare) {
|
|
14452
|
-
miniflare = new Miniflare(
|
|
14453
|
-
getDevMiniflareOptions(
|
|
14454
|
-
resolvedPluginConfig,
|
|
14455
|
-
viteDevServer,
|
|
14456
|
-
inputInspectorPort
|
|
14457
|
-
)
|
|
14458
|
-
);
|
|
14492
|
+
miniflare = new Miniflare(miniflareDevOptions);
|
|
14459
14493
|
} else {
|
|
14460
|
-
await miniflare.setOptions(
|
|
14461
|
-
getDevMiniflareOptions(
|
|
14462
|
-
resolvedPluginConfig,
|
|
14463
|
-
viteDevServer,
|
|
14464
|
-
inputInspectorPort
|
|
14465
|
-
)
|
|
14466
|
-
);
|
|
14494
|
+
await miniflare.setOptions(miniflareDevOptions);
|
|
14467
14495
|
}
|
|
14468
14496
|
await initRunners(resolvedPluginConfig, viteDevServer, miniflare);
|
|
14469
14497
|
if (viteDevServer.httpServer) {
|
|
@@ -14502,10 +14530,11 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
14502
14530
|
vitePreviewServer
|
|
14503
14531
|
);
|
|
14504
14532
|
const miniflare2 = new Miniflare(
|
|
14505
|
-
getPreviewMiniflareOptions(
|
|
14533
|
+
await getPreviewMiniflareOptions(
|
|
14506
14534
|
vitePreviewServer,
|
|
14507
14535
|
workerConfigs,
|
|
14508
14536
|
pluginConfig.persistState ?? true,
|
|
14537
|
+
!!pluginConfig.experimental?.mixedMode,
|
|
14509
14538
|
inputInspectorPort
|
|
14510
14539
|
)
|
|
14511
14540
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudflare/vite-plugin",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Cloudflare plugin for Vite",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
"tinyglobby": "^0.2.12",
|
|
42
42
|
"unenv": "2.0.0-rc.17",
|
|
43
43
|
"ws": "8.18.0",
|
|
44
|
-
"miniflare": "4.
|
|
45
|
-
"wrangler": "4.
|
|
44
|
+
"miniflare": "4.20250525.0",
|
|
45
|
+
"wrangler": "4.18.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@cloudflare/workers-types": "^4.
|
|
48
|
+
"@cloudflare/workers-types": "^4.20250525.0",
|
|
49
49
|
"@types/node": "^22.10.1",
|
|
50
50
|
"@types/ws": "^8.5.13",
|
|
51
51
|
"magic-string": "^0.30.12",
|