babel-plugin-i18next-extract
Version:
Statically extract translation keys from i18next application.
60 lines (59 loc) • 1.43 kB
TypeScript
import { Config } from "../config";
import { TranslationKey } from "../keys";
/**
* Generic class thrown by exporters in case of error.
*/
export declare class ExportError extends Error {
}
/**
* Thrown by exporters when an existing value in a translation
* file is incompatible with the value we're trying to set.
*
* For instance, if the translation file contains a deep key named `foo.bar`
* but we extracted a (not deep) `foo` key, this error may be thrown.
*/
export declare class ConflictError extends ExportError {
}
/**
* Interface implented by exporters.
*/
export interface Exporter<F, K> {
/**
* Initialize a new, empty translation file.
*/
init: (params: {
config: Config;
}) => F;
/**
* Parse a translation file givent its content.
*/
parse: (params: {
config: Config;
content: string;
}) => F;
/**
* Serialize the translation file before saving it.
*/
stringify: (params: {
config: Config;
file: F;
}) => string;
/**
* Get a key given a translation file.
*/
getKey: (params: {
config: Config;
file: F;
keyPath: string[];
cleanKey: string;
}) => K | undefined;
/**
* Add a key to a translation file.
*/
addKey: (params: {
config: Config;
file: F;
key: TranslationKey;
value: K;
}) => F;
}