UNPKG

weapp-tailwindcss

Version:

把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!

107 lines (106 loc) 5.73 kB
import type { ParseError, ParserOptions } from '@babel/parser'; import type { CssPreflightOptions, Document, IStyleHandlerOptions, Result as PostcssResult, Root } from '@weapp-tailwindcss/postcss'; import type { SourceMap } from 'magic-string'; import type { ICreateCacheReturnType } from '../cache/index.js'; import type { ItemOrItemArray } from './base.js'; import type { AppType, IArbitraryValues, ICustomAttributesEntities } from './shared.js'; import type { UniAppXComponentLocalStylesOptions, UniAppXOptions as UniAppXUserDefinedOptions, UserDefinedOptions } from './user-defined-options/index.js'; import type { LengthUnitsRuntimeOptions, TailwindContentTokenReport, TailwindcssExtractOptions, TailwindcssExtractResult, TailwindCssOptions, TailwindCssRuntimeOptions, TailwindPackageInfo } from '../tailwindcss/runtime-types.js'; export type { TailwindCssOptions, TailwindCssRuntimeOptions, UniAppXComponentLocalStylesOptions, UniAppXUserDefinedOptions, UserDefinedOptions, }; export type { AppType, IArbitraryValues, ICustomAttributes, ICustomAttributesEntities, IUnocssCompatibilityOptions } from './shared.js'; export type { CssPreflightOptions, IStyleHandlerOptions, ItemOrItemArray }; export type { WeappTailwindcssStyleInjectorOptions } from '../style-injector/internal.js'; export type RequiredDefined<T> = { [K in keyof T]-?: Exclude<T[K], undefined>; }; type InternalUserDefinedOptionsBase = RequiredDefined<Omit<UserDefinedOptions, 'supportCustomLengthUnits' | 'customReplaceDictionary' | 'cache' | 'templateHandler' | 'styleHandler' | 'jsHandler'>>; export interface LinkedJsModuleResult { code: string; } export interface JsHandlerResult { code: string; map?: SourceMap; error?: ParseError; linked?: Record<string, LinkedJsModuleResult>; } export interface TailwindcssRuntimeLike { packageInfo: TailwindPackageInfo; majorVersion?: number | undefined; getClassSet: () => Promise<Set<string>> | Set<string>; getClassSetSync?: (() => Set<string>) | undefined; extract: (options?: TailwindcssExtractOptions) => Promise<TailwindcssExtractResult> | TailwindcssExtractResult; collectContentTokens?: (() => Promise<TailwindContentTokenReport> | TailwindContentTokenReport) | undefined; options?: TailwindCssRuntimeOptions | undefined; } export type BabelParserOptions = ParserOptions & { cache?: boolean | undefined; cacheKey?: string | undefined; cacheMaxEntries?: number | undefined; cacheMaxSourceLength?: number | undefined; }; export interface RefreshTailwindcssRuntimeOptions { clearCache?: boolean | undefined; } export interface IJsHandlerOptions { escapeMap?: Record<string, string> | undefined; classNameSet?: Set<string> | undefined; jsArbitraryValueFallback?: boolean | 'auto' | undefined; tailwindcssMajorVersion?: number | undefined; arbitraryValues?: IArbitraryValues | undefined; jsPreserveClass?: ((keyword: string) => boolean | undefined) | undefined; needEscaped?: boolean | undefined; generateMap?: boolean | undefined; alwaysEscape?: boolean | undefined; unescapeUnicode?: boolean | undefined; babelParserOptions?: BabelParserOptions | undefined; experimentalJsFastPath?: boolean | 'oxc' | undefined; ignoreTaggedTemplateExpressionIdentifiers?: (string | RegExp)[] | undefined; ignoreCallExpressionIdentifiers?: (string | RegExp)[] | undefined; uniAppX?: boolean | undefined; moduleSpecifierReplacements?: Record<string, string> | undefined; wrapExpression?: boolean | undefined; filename?: string | undefined; moduleGraph?: JsModuleGraphOptions | undefined; } export interface JsHandler { (rawSource: string, set?: Set<string>, options?: CreateJsHandlerOptions): JsHandlerResult; } export interface ICommonReplaceOptions { keepEOL?: boolean | undefined; escapeMap?: Record<string, string> | undefined; } export interface ITemplateHandlerOptions extends ICommonReplaceOptions { customAttributesEntities?: ICustomAttributesEntities | undefined; escapeMap?: Record<string, string> | undefined; inlineWxs?: boolean | undefined; jsHandler?: JsHandler | undefined; runtimeSet?: Set<string> | undefined; disabledDefaultTemplateHandler?: boolean | undefined; quote?: string | null | undefined; ignoreHead?: boolean | undefined; wrapExpression?: boolean | undefined; } export interface InternalUserDefinedOptions extends InternalUserDefinedOptionsBase { supportCustomLengthUnits: LengthUnitsRuntimeOptions | boolean; templateHandler: (rawSource: string, options?: ITemplateHandlerOptions) => Promise<string>; styleHandler: (rawSource: string, options?: IStyleHandlerOptions) => Promise<PostcssResult<Root | Document>>; jsHandler: JsHandler; escapeMap: Record<string, string>; customReplaceDictionary: Record<string, string>; cache: ICreateCacheReturnType; tailwindRuntime: TailwindcssRuntimeLike; refreshTailwindcssRuntime: (options?: RefreshTailwindcssRuntimeOptions) => Promise<TailwindcssRuntimeLike>; } export type InternalPostcssOptions = Pick<UserDefinedOptions, 'cssMatcher' | 'mainCssChunkMatcher' | 'cssPreflight' | 'cssPreflightRange' | 'disabled'>; export interface IBaseWebpackPlugin { options: InternalUserDefinedOptions; appType?: AppType | undefined; apply: (compiler: any) => void; } export type CreateJsHandlerOptions = Omit<IJsHandlerOptions, 'classNameSet'>; export interface JsModuleGraphOptions { resolve: (specifier: string, importer: string) => string | undefined; load: (id: string) => string | undefined; filter?: ((id: string, specifier: string, importer: string) => boolean) | undefined; maxDepth?: number | undefined; }