astro-ghostcms/.pnpm-store/v3/files/33/2e54d47d81d84acbdc4d3fd7153...

58 lines
1.7 KiB
Plaintext

interface StripLiteralOptions {
/**
* Will be called for each string literal. Return false to skip stripping.
*/
filter?: (s: string) => boolean;
/**
* Fill the stripped literal with this character.
* It must be a single character.
*
* @default ' '
*/
fillChar?: string;
}
/**
* Strip literal using Acorn's tokenizer.
*
* Will throw error if the input is not valid JavaScript.
*/
declare function stripLiteralAcorn(code: string, options?: StripLiteralOptions): string;
/**
* Returns a function that returns whether the position is
* in a literal using Acorn's tokenizer.
*
* Will throw error if the input is not valid JavaScript.
*/
declare function createIsLiteralPositionAcorn(code: string): (position: number) => boolean;
/**
* Strip literal using RegExp.
*
* This will be faster and can work on non-JavaScript input.
* But will have some caveats on distinguish strings and comments.
*/
declare function stripLiteralRegex(code: string, options?: StripLiteralOptions): string;
/**
* Strip literal from code.
*
* Using Acorn's tokenizer first, and fallback to Regex if Acorn fails.
*/
declare function stripLiteral(code: string, options?: StripLiteralOptions): string;
/**
* Strip literal from code, return more detailed information.
*
* Using Acorn's tokenizer first, and fallback to Regex if Acorn fails.
*/
declare function stripLiteralDetailed(code: string, options?: StripLiteralOptions): {
mode: 'acorn' | 'regex';
result: string;
acorn: {
tokens: any[];
error?: any;
};
};
export { StripLiteralOptions, createIsLiteralPositionAcorn, stripLiteral, stripLiteralAcorn, stripLiteralDetailed, stripLiteralRegex };