From 68f132b3e022ce6bb7bb649511d1d9b587835908 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Aug 2025 15:24:54 +0900 Subject: [PATCH 1/3] refactor(rsc): organize plugin utils --- packages/plugin-rsc/src/plugin.ts | 2 +- packages/plugin-rsc/src/{ => plugins}/vite-utils.ts | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/plugin-rsc/src/{ => plugins}/vite-utils.ts (100%) diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index aae9cd0b8..25407830c 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -36,7 +36,7 @@ import { cleanUrl, normalizeViteImportAnalysisUrl, prepareError, -} from './vite-utils' +} from './plugins/vite-utils' import { cjsModuleRunnerPlugin } from './plugins/cjs' import { createVirtualPlugin, diff --git a/packages/plugin-rsc/src/vite-utils.ts b/packages/plugin-rsc/src/plugins/vite-utils.ts similarity index 100% rename from packages/plugin-rsc/src/vite-utils.ts rename to packages/plugin-rsc/src/plugins/vite-utils.ts From 036781bfec7f5f93c0875911aba8870e3b7b2826 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Aug 2025 15:27:08 +0900 Subject: [PATCH 2/3] chore: no vite-utils entry --- packages/plugin-rsc/tsdown.config.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/plugin-rsc/tsdown.config.ts b/packages/plugin-rsc/tsdown.config.ts index e5a8c06d7..db92ffa70 100644 --- a/packages/plugin-rsc/tsdown.config.ts +++ b/packages/plugin-rsc/tsdown.config.ts @@ -8,7 +8,6 @@ export default defineConfig({ 'src/browser.ts', 'src/ssr.tsx', 'src/rsc.tsx', - 'src/vite-utils.ts', 'src/core/browser.ts', 'src/core/ssr.ts', 'src/core/rsc.ts', From cd693beb80b42c5263f4962517dc040d12260266 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Mon, 25 Aug 2025 15:32:34 +0900 Subject: [PATCH 3/3] chore: cleanup --- packages/plugin-rsc/src/plugin.ts | 2 +- packages/plugin-rsc/src/plugins/utils.ts | 15 --------------- packages/plugin-rsc/src/plugins/vite-utils.ts | 11 ++++++++++- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index 25407830c..ac104eb13 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -34,13 +34,13 @@ import { generateEncryptionKey, toBase64 } from './utils/encryption-utils' import { createRpcServer } from './utils/rpc' import { cleanUrl, + evalValue, normalizeViteImportAnalysisUrl, prepareError, } from './plugins/vite-utils' import { cjsModuleRunnerPlugin } from './plugins/cjs' import { createVirtualPlugin, - evalValue, getEntrySource, hashString, normalizeRelativePath, diff --git a/packages/plugin-rsc/src/plugins/utils.ts b/packages/plugin-rsc/src/plugins/utils.ts index 37f2814e6..c4cee3afe 100644 --- a/packages/plugin-rsc/src/plugins/utils.ts +++ b/packages/plugin-rsc/src/plugins/utils.ts @@ -7,21 +7,6 @@ import { type Rollup, } from 'vite' -// https://github.com/vitejs/vite/blob/ea9aed7ebcb7f4be542bd2a384cbcb5a1e7b31bd/packages/vite/src/node/utils.ts#L1469-L1475 -export function evalValue(rawValue: string): T { - const fn = new Function(` - var console, exports, global, module, process, require - return (\n${rawValue}\n) - `) - return fn() -} - -// https://github.com/vitejs/vite/blob/946831f986cb797009b8178659d2b31f570c44ff/packages/vite/src/shared/utils.ts#L31-L34 -const postfixRE = /[?#].*$/ -export function cleanUrl(url: string): string { - return url.replace(postfixRE, '') -} - export function sortObject(o: T) { return Object.fromEntries( Object.entries(o).sort(([a], [b]) => a.localeCompare(b)), diff --git a/packages/plugin-rsc/src/plugins/vite-utils.ts b/packages/plugin-rsc/src/plugins/vite-utils.ts index d65a5f008..2f6bd5e3e 100644 --- a/packages/plugin-rsc/src/plugins/vite-utils.ts +++ b/packages/plugin-rsc/src/plugins/vite-utils.ts @@ -1,4 +1,4 @@ -// import analysis logic copied from vite +// misc utilities copied from vite import fs from 'node:fs' import path from 'node:path' @@ -152,3 +152,12 @@ function cleanStack(stack: string) { .filter((l) => /^\s*at/.test(l)) .join('\n') } + +// https://github.com/vitejs/vite/blob/ea9aed7ebcb7f4be542bd2a384cbcb5a1e7b31bd/packages/vite/src/node/utils.ts#L1469-L1475 +export function evalValue(rawValue: string): T { + const fn = new Function(` + var console, exports, global, module, process, require + return (\n${rawValue}\n) + `) + return fn() +}