Skip to content

Commit 05dd04b

Browse files
authored
Refactor plugins into separate files (#10720)
* Move plugins to separate files * Move constants closer to where they are used * Use virtual modules to separate plugins * Remove unnecessary nodejs_compat virtual module * Remove unnecessary check * Use createPlugin util * Set sharedDuringBuild: true for all plugins * Convert plugin context to class and include resolvedPluginConfig * Move output file generation to separate plugin * Append Plugin to all plugin variable names
1 parent 2432022 commit 05dd04b

18 files changed

+796
-727
lines changed

packages/vite-plugin-cloudflare/src/additional-modules.ts

Lines changed: 0 additions & 30 deletions
This file was deleted.

packages/vite-plugin-cloudflare/src/build.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@ import assert from "node:assert";
22
import * as fs from "node:fs";
33
import * as path from "node:path";
44
import colors from "picocolors";
5+
import { VIRTUAL_CLIENT_FALLBACK_ENTRY } from "./plugins/virtual-modules";
56
import type {
67
AssetsOnlyResolvedConfig,
78
WorkersResolvedConfig,
89
} from "./plugin-config";
910
import type * as vite from "vite";
1011
import type { Unstable_Config } from "wrangler";
1112

13+
const CLIENT_FALLBACK_ENTRY_NAME = "__cloudflare_fallback_entry__";
14+
1215
export function createBuildApp(
1316
resolvedPluginConfig: AssetsOnlyResolvedConfig | WorkersResolvedConfig
1417
): (builder: vite.ViteBuilder) => Promise<void> {
@@ -136,13 +139,11 @@ async function fallbackBuild(
136139
builder: vite.ViteBuilder,
137140
environment: vite.BuildEnvironment
138141
): Promise<void> {
139-
const fallbackEntryName = "__cloudflare_fallback_entry__";
140-
141142
environment.config.build.rollupOptions = {
142-
input: "virtual:__cloudflare_fallback_entry__",
143+
input: VIRTUAL_CLIENT_FALLBACK_ENTRY,
143144
logLevel: "silent",
144145
output: {
145-
entryFileNames: fallbackEntryName,
146+
entryFileNames: CLIENT_FALLBACK_ENTRY_NAME,
146147
},
147148
};
148149

@@ -151,7 +152,7 @@ async function fallbackBuild(
151152
const fallbackEntryPath = path.resolve(
152153
builder.config.root,
153154
environment.config.build.outDir,
154-
fallbackEntryName
155+
CLIENT_FALLBACK_ENTRY_NAME
155156
);
156157

157158
fs.unlinkSync(fallbackEntryPath);

packages/vite-plugin-cloudflare/src/cloudflare-environment.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import assert from "node:assert";
22
import * as util from "node:util";
33
import * as vite from "vite";
4-
import { MAIN_ENTRY_NAME } from "./constants";
4+
import { VIRTUAL_WORKER_ENTRY } from "./plugins/virtual-modules";
55
import {
66
INIT_PATH,
77
IS_ENTRY_WORKER_HEADER,
88
UNKNOWN_HOST,
9-
VIRTUAL_WORKER_ENTRY,
109
WORKER_ENTRY_PATH_HEADER,
1110
} from "./shared";
1211
import { getOutputDirectory } from "./utils";
@@ -19,6 +18,8 @@ import type {
1918
WebSocket,
2019
} from "miniflare";
2120

21+
export const MAIN_ENTRY_NAME = "index";
22+
2223
interface WebSocketContainer {
2324
webSocket?: WebSocket;
2425
}

packages/vite-plugin-cloudflare/src/constants.ts

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,7 @@
1+
// Worker names
12
export const ROUTER_WORKER_NAME = "__router-worker__";
23
export const ASSET_WORKER_NAME = "__asset-worker__";
34
export const VITE_PROXY_WORKER_NAME = "__vite_proxy_worker__";
4-
export const ASSET_WORKERS_COMPATIBILITY_DATE = "2024-10-04";
5-
6-
export const ENTRY_MODULE_EXTENSIONS = [
7-
".js",
8-
".mjs",
9-
".ts",
10-
".mts",
11-
".jsx",
12-
".tsx",
13-
];
14-
15-
export const ADDITIONAL_MODULE_TYPES = [
16-
"CompiledWasm",
17-
"Data",
18-
"Text",
19-
] as const;
20-
21-
// Used to mark HTML assets as being in the public directory so that they can be resolved from their root relative paths
22-
export const PUBLIC_DIR_PREFIX = "/__vite_public_dir__";
23-
24-
export const DEFAULT_INSPECTOR_PORT = 9229;
25-
26-
export const DEBUG_PATH = "/__debug";
27-
28-
export const MAIN_ENTRY_NAME = "index";
29-
30-
// virtual modules
31-
export const virtualPrefix = "virtual:cloudflare/";
32-
export const VIRTUAL_USER_ENTRY = `${virtualPrefix}user-entry`;
33-
export const VIRTUAL_NODEJS_COMPAT_ENTRY = `${virtualPrefix}nodejs-compat-entry`;
345

356
export const kRequestType = Symbol("kRequestType");
367

packages/vite-plugin-cloudflare/src/debugging.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import assert from "node:assert";
22
import getPort, { portNumbers } from "get-port";
33
import colors from "picocolors";
4-
import { DEBUG_PATH, DEFAULT_INSPECTOR_PORT } from "./constants";
54
import type { ResolvedPluginConfig } from "./plugin-config";
65
import type { Miniflare } from "miniflare";
76
import type * as vite from "vite";
87

8+
export const DEBUG_PATH = "/__debug";
9+
const DEFAULT_INSPECTOR_PORT = 9229;
10+
911
/**
1012
* Gets the inspector port option that should be passed to Miniflare based on the user's plugin config
1113
*/

0 commit comments

Comments
 (0)