From a7ecd0f495de081ea4819b243da8c48b0b35f1c9 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Fri, 28 Mar 2025 14:10:27 +0100 Subject: [PATCH] refactor: remove direct imports from rollup (#7751) --- packages/browser/src/node/plugins/pluginContext.ts | 4 ++-- packages/mocker/src/node/dynamicImportPlugin.ts | 4 +--- packages/mocker/src/node/esmWalker.ts | 2 +- packages/mocker/src/node/hoistMocksPlugin.ts | 7 ++----- packages/mocker/src/node/resolver.ts | 5 ++--- packages/vitest/src/node/viteLogger.ts | 5 ++--- test/core/test/injector-esm.test.ts | 2 +- test/core/test/injector-mock.test.ts | 2 +- 8 files changed, 12 insertions(+), 19 deletions(-) diff --git a/packages/browser/src/node/plugins/pluginContext.ts b/packages/browser/src/node/plugins/pluginContext.ts index f1547ab9b..dffc2a209 100644 --- a/packages/browser/src/node/plugins/pluginContext.ts +++ b/packages/browser/src/node/plugins/pluginContext.ts @@ -1,4 +1,4 @@ -import type { PluginContext } from 'rollup' +import type { Rollup } from 'vite' import type { Plugin } from 'vitest/config' import type { ParentBrowserProject } from '../projectParent' import { fileURLToPath } from 'node:url' @@ -28,7 +28,7 @@ export default function BrowserContext(globalServer: ParentBrowserProject): Plug } async function generateContextFile( - this: PluginContext, + this: Rollup.PluginContext, globalServer: ParentBrowserProject, ) { const commands = Object.keys(globalServer.commands) diff --git a/packages/mocker/src/node/dynamicImportPlugin.ts b/packages/mocker/src/node/dynamicImportPlugin.ts index 62b5435ca..5d48d5e0d 100644 --- a/packages/mocker/src/node/dynamicImportPlugin.ts +++ b/packages/mocker/src/node/dynamicImportPlugin.ts @@ -32,7 +32,6 @@ export function dynamicImportPlugin(options: DynamicImportPluginOptions = {}): P } export interface DynamicImportInjectorResult { - ast: Rollup.ProgramNode code: string map: SourceMap } @@ -45,7 +44,7 @@ export function injectDynamicImport( ): DynamicImportInjectorResult | undefined { const s = new MagicString(code) - let ast: any + let ast: ReturnType try { ast = parse(code) } @@ -75,7 +74,6 @@ export function injectDynamicImport( }) return { - ast, code: s.toString(), map: s.generateMap({ hires: 'boundary', source: id }), } diff --git a/packages/mocker/src/node/esmWalker.ts b/packages/mocker/src/node/esmWalker.ts index 70b237e33..23549d562 100644 --- a/packages/mocker/src/node/esmWalker.ts +++ b/packages/mocker/src/node/esmWalker.ts @@ -61,7 +61,7 @@ export function isNodeInPattern(node: _Node): node is Property { * Except this is using acorn AST */ export function esmWalker( - root: Rollup.ProgramNode, + root: ReturnType, { onIdentifier, onImportMeta, onDynamicImport, onCallExpression }: Visitors, ): void { const parentStack: Node[] = [] diff --git a/packages/mocker/src/node/hoistMocksPlugin.ts b/packages/mocker/src/node/hoistMocksPlugin.ts index 5b856e0c3..49edea0b3 100644 --- a/packages/mocker/src/node/hoistMocksPlugin.ts +++ b/packages/mocker/src/node/hoistMocksPlugin.ts @@ -9,7 +9,6 @@ import type { VariableDeclaration, } from 'estree' import type { SourceMap } from 'magic-string' -import type { RollupAstNode } from 'rollup' import type { Plugin, Rollup } from 'vite' import type { Node, Positioned } from './esmWalker' import { findNodeAround } from 'acorn-walk' @@ -125,7 +124,6 @@ const regexpHoistable const hashbangRE = /^#!.*\n/ export interface HoistMocksResult { - ast: Rollup.ProgramNode code: string map: SourceMap } @@ -149,7 +147,7 @@ export function hoistMocks( const s = new MagicString(code) - let ast: Rollup.ProgramNode + let ast: ReturnType try { ast = parse(code) } @@ -175,7 +173,7 @@ export function hoistMocks( const idToImportMap = new Map() const imports: { - node: RollupAstNode + node: Positioned id: string }[] = [] @@ -549,7 +547,6 @@ export function hoistMocks( } return { - ast, code: s.toString(), map: s.generateMap({ hires: 'boundary', source: id }), } diff --git a/packages/mocker/src/node/resolver.ts b/packages/mocker/src/node/resolver.ts index bd1d11827..1aa407a36 100644 --- a/packages/mocker/src/node/resolver.ts +++ b/packages/mocker/src/node/resolver.ts @@ -1,5 +1,4 @@ -import type { PartialResolvedId } from 'rollup' -import type { ResolvedConfig as ViteConfig, ViteDevServer } from 'vite' +import type { Rollup, ResolvedConfig as ViteConfig, ViteDevServer } from 'vite' import { existsSync, readFileSync } from 'node:fs' import { isAbsolute, join, resolve } from 'pathe' import { cleanUrl } from '../utils' @@ -117,7 +116,7 @@ export class ServerMockResolver { return this.resolveModule(rawId, resolved) } - private resolveModule(rawId: string, resolved: PartialResolvedId | null) { + private resolveModule(rawId: string, resolved: Rollup.PartialResolvedId | null) { const id = resolved?.id || rawId const external = !isAbsolute(id) || isModuleDirectory(this.options, id) ? rawId : null diff --git a/packages/vitest/src/node/viteLogger.ts b/packages/vitest/src/node/viteLogger.ts index 69a245df9..302c508e8 100644 --- a/packages/vitest/src/node/viteLogger.ts +++ b/packages/vitest/src/node/viteLogger.ts @@ -1,5 +1,4 @@ -import type { RollupError } from 'rollup' -import type { LogErrorOptions, Logger, LoggerOptions, LogLevel, LogType } from 'vite' +import type { LogErrorOptions, Logger, LoggerOptions, LogLevel, LogType, Rollup } from 'vite' import type { Logger as VitestLogger } from './logger' import colors from 'tinyrainbow' @@ -41,7 +40,7 @@ export function createViteLogger( level: LogLevel = 'info', options: LoggerOptions = {}, ): Logger { - const loggedErrors = new WeakSet() + const loggedErrors = new WeakSet() const { prefix = '[vite]', allowClearScreen = true } = options const thresh = LogLevels[level] const canClearScreen diff --git a/test/core/test/injector-esm.test.ts b/test/core/test/injector-esm.test.ts index 7fb2e8e49..500ee158b 100644 --- a/test/core/test/injector-esm.test.ts +++ b/test/core/test/injector-esm.test.ts @@ -1,4 +1,4 @@ -import { parseAst } from 'rollup/parseAst' +import { parseAst } from 'vite' import { expect, test } from 'vitest' import { injectDynamicImport } from '../../../packages/mocker/src/node/dynamicImportPlugin' diff --git a/test/core/test/injector-mock.test.ts b/test/core/test/injector-mock.test.ts index b0b9fd4ae..22b43a8fc 100644 --- a/test/core/test/injector-mock.test.ts +++ b/test/core/test/injector-mock.test.ts @@ -1,6 +1,6 @@ import type { HoistMocksPluginOptions } from '../../../packages/mocker/src/node/hoistMocksPlugin' import { stripVTControlCharacters } from 'node:util' -import { parseAst } from 'rollup/parseAst' +import { parseAst } from 'vite' import { describe, expect, it, test } from 'vitest' import { generateCodeFrame } from 'vitest/src/node/error.js' import { hoistMocks } from '../../../packages/mocker/src/node/hoistMocksPlugin' -- 2.51.2