sucrase
Version:
Super-fast alternative to Babel for when you can target modern JS runtimes
37 lines (36 loc) • 1.25 kB
TypeScript
export declare type TokenContext = 'block' | 'parens' | 'brackets' | 'object' | 'class' | 'jsxTag' | 'jsxChild' | 'jsxExpression' | 'interpolatedExpression' | 'switchCaseCondition';
export declare type TokenType = {
label: string;
};
export declare type Token = {
type: TokenType;
start: number;
end: number;
value: any;
contextName?: TokenContext;
contextStartIndex?: number;
};
export default class TokenProcessor {
readonly code: string;
readonly tokens: Array<Token>;
private resultCode;
private tokenIndex;
constructor(code: string, tokens: Array<Token>);
reset(): void;
matchesAtIndex(index: number, tagLabels: Array<string>): boolean;
matchesNameAtIndex(index: number, name: string): boolean;
matches(tagLabels: Array<string>): boolean;
matchesName(name: string): boolean;
previousWhitespace(): string;
replaceToken(newCode: string): void;
replaceTokenTrimmingLeftWhitespace(newCode: string): void;
removeInitialToken(): void;
removeToken(): void;
copyExpectedToken(label: string): void;
copyToken(): void;
appendCode(code: string): void;
currentToken(): Token;
currentIndex(): number;
finish(): string;
isAtEnd(): boolean;
}