Initial commit

This commit is contained in:
yuding
2025-12-03 12:00:46 +08:00
commit 5763b764a3
5365 changed files with 1483113 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
import type { Plugin } from 'vite';
import type { PluginConfiguration } from './interface';
/**
* Inject the CSS compiled with JS.
*
* @return {Plugin}
*/
export default function cssInjectedByJsPlugin({ cssAssetsFilterFunction, dev: { enableDev, removeStyleCode, removeStyleCodeFunction }, injectCode, injectCodeFunction, injectionCodeFormat, jsAssetsFilterFunction, preRenderCSSCode, relativeCSSInjection, styleId, suppressUnusedCssWarning, topExecutionPriority, useStrictCSP, }?: PluginConfiguration | undefined): Plugin[];

View File

@@ -0,0 +1,31 @@
import type { InjectCode, InjectCodeFunction } from './utils';
import type { OutputAsset, OutputChunk } from 'rollup';
import type { BuildOptions } from 'vite';
import type { ModuleFormat } from 'rollup';
export interface DevOptions {
enableDev?: boolean;
removeStyleCode?: (id: string) => string;
removeStyleCodeFunction?: (id: string) => void;
}
export interface BaseOptions {
dev?: DevOptions;
injectCode?: InjectCode;
injectCodeFunction?: InjectCodeFunction;
injectionCodeFormat?: ModuleFormat;
styleId?: string | (() => string);
topExecutionPriority?: boolean;
useStrictCSP?: boolean;
}
export interface PluginConfiguration extends BaseOptions {
cssAssetsFilterFunction?: (chunk: OutputAsset) => boolean;
jsAssetsFilterFunction?: (chunk: OutputChunk) => boolean;
preRenderCSSCode?: (cssCode: string) => string;
relativeCSSInjection?: boolean;
suppressUnusedCssWarning?: boolean;
}
export interface CSSInjectionConfiguration extends BaseOptions {
cssToInject: string;
}
export interface BuildCSSInjectionConfiguration extends CSSInjectionConfiguration {
buildOptions: BuildOptions;
}

View File

@@ -0,0 +1,26 @@
import type { OutputBundle, OutputChunk } from 'rollup';
import type { BuildCSSInjectionConfiguration, PluginConfiguration } from './interface';
interface InjectCodeOptions {
styleId?: string | (() => string);
useStrictCSP?: boolean;
attributes?: {
[key: string]: string;
} | undefined;
}
export type InjectCode = (cssCode: string, options: InjectCodeOptions) => string;
export type InjectCodeFunction = (cssCode: string, options: InjectCodeOptions) => void;
export declare function buildCSSInjectionCode({ buildOptions, cssToInject, injectCode, injectCodeFunction, injectionCodeFormat, styleId, useStrictCSP, }: BuildCSSInjectionConfiguration): Promise<OutputChunk | null>;
export declare function resolveInjectionCode(cssCode: string, injectCode: ((cssCode: string, options: InjectCodeOptions) => string) | undefined, injectCodeFunction: ((cssCode: string, options: InjectCodeOptions) => void) | undefined, { styleId, useStrictCSP, attributes }: InjectCodeOptions): string;
export declare function removeLinkStyleSheets(html: string, cssFileName: string): string;
export declare function warnLog(msg: string): void;
export declare function debugLog(msg: string): void;
export declare function extractCss(bundle: OutputBundle, cssName: string): string;
export declare function concatCssAndDeleteFromBundle(bundle: OutputBundle, cssAssets: string[]): string;
export declare function buildJsCssMap(bundle: OutputBundle, jsAssetsFilterFunction?: PluginConfiguration['jsAssetsFilterFunction']): Record<string, string[]>;
export declare function getJsTargetBundleKeys(bundle: OutputBundle, jsAssetsFilterFunction?: PluginConfiguration['jsAssetsFilterFunction']): string[];
export declare function relativeCssInjection(bundle: OutputBundle, assetsWithCss: Record<string, string[]>, buildCssCode: (css: string) => Promise<OutputChunk | null>, topExecutionPriorityFlag: boolean): Promise<void>;
export declare function globalCssInjection(bundle: OutputBundle, cssAssets: string[], buildCssCode: (css: string) => Promise<OutputChunk | null>, jsAssetsFilterFunction: PluginConfiguration['jsAssetsFilterFunction'], topExecutionPriorityFlag: boolean): Promise<void>;
export declare function buildOutputChunkWithCssInjectionCode(jsAssetCode: string, cssInjectionCode: string, topExecutionPriorityFlag: boolean): string;
export declare function clearImportedCssViteMetadataFromBundle(bundle: OutputBundle, unusedCssAssets: string[]): void;
export declare function isCSSRequest(request: string): boolean;
export {};