|
- import { CompileError, ResourceNode } from '@intlify/message-compiler';
- import { SourceMapGenerator } from 'source-map';
- import type { RawSourceMap } from 'source-map';
- /**
- * Compilation dev environments
- *
- * @public
- */
- export type DevEnv = 'development' | 'production';
- export interface Position {
- line: number;
- column: number;
- offset?: number;
- }
- export interface SourceLocationable {
- start?: number;
- loc?: {
- start: Position;
- end: Position;
- } | null;
- }
- /**
- * @internal
- */
- export interface CodeGenOptions {
- type?: 'plain' | 'sfc' | 'bare';
- legacy?: boolean;
- bridge?: boolean;
- exportESM?: boolean;
- source?: string;
- sourceMap?: boolean;
- filename?: string;
- inSourceMap?: RawSourceMap;
- isGlobal?: boolean;
- locale?: string;
- env?: DevEnv;
- forceStringify?: boolean;
- useClassComponent?: boolean;
- allowDynamic?: boolean;
- strictMessage?: boolean;
- escapeHtml?: boolean;
- onWarn?: (msg: string) => void;
- onError?: (msg: string, extra?: {
- source: string;
- path: string;
- code?: CompileError['code'];
- domain?: CompileError['domain'];
- location?: CompileError['location'];
- }) => void;
- }
- export interface CodeGenContext {
- source?: string;
- code: string;
- indentLevel: number;
- filename: string;
- line: number;
- column: number;
- offset: number;
- env: DevEnv;
- forceStringify: boolean;
- map?: SourceMapGenerator;
- }
- export interface CodeGenerator {
- context(): CodeGenContext;
- push<Node extends SourceLocationable>(code: string, node?: Node, name?: string): void;
- indent(withNewLine?: boolean): void;
- deindent(withNewLine?: boolean): void;
- newline(): void;
- pushline<Node extends SourceLocationable>(code: string, node?: Node, name?: string): void;
- }
- /**
- * @internal
- */
- export interface CodeGenResult<ASTNode, CodeGenError extends Error = Error> {
- code: string;
- ast: ASTNode;
- errors?: CodeGenError[];
- map?: RawSourceMap;
- }
- export declare function createCodeGenerator(options?: CodeGenOptions): CodeGenerator;
- export declare function generateMessageFunction(msg: string, options: CodeGenOptions, path?: string[]): CodeGenResult<ResourceNode>;
- export declare function mapLinesColumns(resMap: RawSourceMap, codeMaps: Map<string, RawSourceMap>, inSourceMap?: RawSourceMap): RawSourceMap | null;
|