ts-transform-react-intl
Version:
Extracts string messages for translation from modules that use React Intl.
46 lines (45 loc) • 1.48 kB
TypeScript
import * as ts from "typescript";
import { MessageDescriptor } from "./types";
export declare type Extractor = (msgId: string, messages: MessageDescriptor, filename?: string) => void;
export declare type InterpolateNameFn = (sourceFileName: string, msg: MessageDescriptor) => string;
export interface Opts {
/**
* Override import name (the `_`) in `import {_} from 'ts-transform-react-intl'`
*
* @type {string}
* @memberof Opts
*/
macroImportName?: string;
/**
* Override module specifier in `import {_} from 'ts-transform-react-intl`
*
* @type {string}
* @memberof Opts
*/
macroModuleSpecifier?: string;
/**
* Callback function that gets called everytime we encountered something
* that looks like a MessageDescriptor
*
* @type {Extractor}
* @memberof Opts
*/
onMsgExtracted?: Extractor;
/**
* webpack-style name interpolation
*
* @type {(InterpolateNameFn | string)}
* @memberof Opts
*/
interpolateName?: InterpolateNameFn | string;
/**
* Base URL of your project, same as your compiler tsconfig.json
* This is primarily used to interpolate relative path instead of
* absolute path all the time, which varies machine to machine
*
* @type {string}
* @memberof Opts
*/
baseUrl?: string;
}
export declare function transform(opts: Opts): (ctx: ts.TransformationContext) => ts.Transformer<ts.SourceFile>;