All files / src interface.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32                                                               
import { type Readable } from "@embra/reactivity";
 
export type LocaleLang = string;
 
export type LocaleLangObservable = Readable<LocaleLang>;
 
export type Locale = { readonly [key: string]: string | Locale };
 
export type Locales = { readonly [lang: LocaleLang]: Locale };
 
export type TFunctionArgs = {
  readonly [key: string | number]: any;
  /**
   * Modifier matching.
   * @see {@link https://github.com/embrajs/i18n#modifier-matching}
   */
  readonly ["@"]?: string | number;
};
 
/**
 * @param keyPath Dot-separated key path to the locale message, e.g. `"a.b.c"`
 * @param args Optional arguments for interpolation
 * @returns locale message or `keyPath` if not found
 */
export type TFunction = (keyPath: string, args?: TFunctionArgs) => string;
 
export type TFunctionObservable = Readable<TFunction>;
 
export interface LocaleFetcher {
  (lang: LocaleLang): Promise<Locale> | Locale;
}