rollup-plugin-sass
Version:
Rollup Sass files.
41 lines (40 loc) • 1.43 kB
TypeScript
import type { LegacyOptions as SassLegacyOptions, Options as SassOptions } from 'sass';
interface StyleSheetIdAndContent {
id?: string;
content?: string;
}
export type RollupPluginSassOutputFn = (styles: string, styleNodes: StyleSheetIdAndContent[]) => unknown;
export type RollupPluginSassProcessorFnOutput = string | {
css: string;
cssModules?: Record<string, string>;
[key: string]: unknown;
};
export type RollupPluginSassProcessorFn<T = RollupPluginSassProcessorFnOutput> = (styles: string, id: string) => Promise<T> | T;
interface RollupPluginSassSharedOptions {
exclude?: string | string[];
include?: string | string[];
insert?: boolean;
processor?: RollupPluginSassProcessorFn;
output?: boolean | string | RollupPluginSassOutputFn;
runtime?: any;
}
export type RollupPluginSassModernOptions = Omit<SassOptions<'async'>, 'sourceMap'> & {
data?: string;
};
export type RollupPluginSassLegacyOptions = Omit<SassLegacyOptions<'async'>, 'data'> & {
data?: string;
};
export type RollupPluginSassOptions = (RollupPluginSassSharedOptions & {
api: 'modern';
options?: RollupPluginSassModernOptions;
}) | (RollupPluginSassSharedOptions & {
api?: 'legacy';
options?: RollupPluginSassLegacyOptions;
});
export type RollupPluginSassState = {
styles: StyleSheetIdAndContent[];
styleMaps: {
[index: string]: StyleSheetIdAndContent;
};
};
export {};