58 lines
1.7 KiB
Plaintext
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 };
|