jtljia-vite-dynamic
Version:
Resolve all resource files dynamic publicPath, like Webpack's __webpack_public_path__
40 lines (39 loc) • 1.39 kB
TypeScript
import { Expression, ModuleItem, StringLiteral, TemplateElement, TemplateLiteral } from "@swc/core";
import Visitor from "@swc/core/Visitor";
/**
* Traverses an AST (or parts of it) to collect all StringLiterals and TemplateElements that contain
* needle in their value.
*/
export declare class StringCollector extends Visitor {
matchingStrings: (StringLiteral | TemplateElement)[];
private readonly needle;
constructor(needle: string);
visitStringLiteral(n: StringLiteral): StringLiteral;
visitTemplateLiteral(n: TemplateLiteral): Expression;
}
/**
* Represents a string as bytes, so it can be sliced via
* byte-positions.
*/
export declare class StringAsBytes {
private string;
private decoder;
constructor(string: string);
/**
* Returns a slice of the string by providing byte indices.
* @param from - Byte index to slice from
* @param to - Optional byte index to slice to
*/
slice(from: number, to?: number): string;
}
/**
* Parses js code into a AST.
* @param code
*/
export declare function parseCode(code: string): Promise<[number, ModuleItem[]]>;
/**
* Returns an array of StringLiterals and TemplateElements from an AST that contain needle in their value.
* @param needle
* @param ast
*/
export declare function collectMatchingStrings(needle: string, ast: ModuleItem[]): (StringLiteral | TemplateElement)[];