UNPKG

ts-transform-react-intl

Version:

Extracts string messages for translation from modules that use React Intl.

46 lines (45 loc) 1.48 kB
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>;