UNPKG

postcss-minify-selectors

Version:

Minify selectors with PostCSS.

90 lines • 5.01 kB
export type SelectorArena = import('./arena.js').SelectorArena; export type ArenaNode = import('./arena.js').ArenaNode; export type Specificity = import('./arena.js').Specificity; export type Emit = import('./outputOverlay.js').Emit; export type Output = { emit?: Emit; id: number; length: number; text?: string; sourceNode?: number; changed?: boolean; hexDigits?: number; head?: number; }; /** @typedef {import('./arena.js').SelectorArena} SelectorArena */ /** @typedef {import('./arena.js').ArenaNode} ArenaNode */ /** @typedef {import('./arena.js').Specificity} Specificity */ /** @typedef {import('./outputOverlay.js').Emit} Emit */ /** @typedef {{emit?:Emit,id:number,length:number,text?:string,sourceNode?:number,changed?:boolean,hexDigits?:number,head?:number}} Output */ export declare class OutputPool { arena: import("./arena.js").SelectorArena; /** @type {Map<string,Output>} */ texts: Map<string, Output>; /** @type {Map<string,Map<number,Map<number,number>>>} */ identities: Map<string, Map<number, Map<number, number>>>; /** @type {Map<string,number>} */ payloads: Map<string, number>; /** @type {Map<number,Map<number,number>>} */ pairs: Map<number, Map<number, number>>; nextId: number; empty: Output; /** @param {SelectorArena} arena */ constructor(arena: SelectorArena); /** @param {string} value @return {Output} */ text(value: string): Output; /** @param {string} value */ payload(value: string): number; /** * The structural ID is interned from normalized local text and ordered child * IDs as each output sequence is assembled. It therefore carries significant * raw bytes without retaining arena positions. * @param {string} kind * @param {number} payload * @param {number} structure */ identity(kind: string, payload: number, structure: number): number; /** @param {number} left @param {number} right */ pairId(left: number, right: number): number; /** @param {readonly number[]} values */ sequenceId(values: readonly number[]): number; /** @param {Output} output @return {Emit} */ emit(output: Output): Emit; /** @param {readonly Output[]} values @return {Output} */ sequence(values: readonly Output[]): Output; /** @param {Output} output */ headCode(output: Output): number; /** @param {Output} output */ trailingHexDigits(output: Output): number; } /** @param {SelectorArena} arena @param {number} tokenIndex */ export declare function offset(arena: SelectorArena, tokenIndex: number): number; /** @param {SelectorArena} arena @param {number} start @param {number} end */ export declare function sourceText(arena: SelectorArena, start: number, end: number): string; /** @param {OutputPool} pool @param {Output} output */ export declare function outputText(pool: OutputPool, output: Output): string; /** @param {OutputPool} pool @param {Output} left @param {Output} right */ export declare function compareOutputs(pool: OutputPool, left: Output, right: Output): -1 | 0 | 1; /** * Source spelling of a class (`.` and ident tokens) or ID (hash token). * @param {SelectorArena} arena @param {ArenaNode} node */ export declare function classOrIdSource(arena: SelectorArena, node: ArenaNode): string; /** * Serialized class or ID: an ident's hex escape terminator is restored by * the joiners, so it is dropped here. * @param {SelectorArena} arena @param {ArenaNode} node */ export declare function classOrIdText(arena: SelectorArena, node: ArenaNode): string; /** @param {SelectorArena} arena @param {OutputPool} pool @param {number} start @param {number} end */ export declare function importantTrivia(arena: SelectorArena, pool: OutputPool, start: number, end: number): Output; /** @param {SelectorArena} arena @param {OutputPool} pool @param {ArenaNode} node */ export declare function descendantCombinator(arena: SelectorArena, pool: OutputPool, node: ArenaNode): Output; /** @param {SelectorArena} arena @param {number} nodeIndex */ export declare function childrenOf(arena: SelectorArena, nodeIndex: number): number[]; /** @template {Output} T @param {(T | undefined)[]} normalized @param {number} nodeIndex @return {T} */ export declare function normalizedAt<T extends Output>(normalized: (T | undefined)[], nodeIndex: number): T; /** @param {SelectorArena} arena @param {OutputPool} pool @param {ArenaNode} node */ export declare function rawOutput(arena: SelectorArena, pool: OutputPool, node: ArenaNode): Output; /** @param {SelectorArena} arena @param {OutputPool} pool @param {ArenaNode} node @param {boolean} removable */ export declare function qualifiedNameOutput(arena: SelectorArena, pool: OutputPool, node: ArenaNode, removable: boolean): Output; /** @param {SelectorArena} arena @param {OutputPool} pool @param {ArenaNode} node */ export declare function attributeOutput(arena: SelectorArena, pool: OutputPool, node: ArenaNode): Output; //# sourceMappingURL=normalizePool.d.ts.map