chore: refactor I18n types outside of window object
to keep ts/localization folder self containedpull/3281/head
							parent
							
								
									ce734f1e1c
								
							
						
					
					
						commit
						42d54abb91
					
				@ -0,0 +1,28 @@
 | 
			
		||||
import type { CrowdinLocale } from './constants';
 | 
			
		||||
import type {
 | 
			
		||||
  MergedLocalizerTokens,
 | 
			
		||||
  GetMessageArgs,
 | 
			
		||||
  LocalizerComponentProps,
 | 
			
		||||
  SimpleLocalizerTokens,
 | 
			
		||||
  ArgsFromToken,
 | 
			
		||||
} from './localeTools';
 | 
			
		||||
 | 
			
		||||
export type I18nMethods = {
 | 
			
		||||
  /** @see {@link window.i18n.stripped} */
 | 
			
		||||
  stripped: <T extends MergedLocalizerTokens>(...[token, args]: GetMessageArgs<T>) => string | T;
 | 
			
		||||
  strippedWithObj: <T extends MergedLocalizerTokens>(
 | 
			
		||||
    opts: LocalizerComponentProps<T>
 | 
			
		||||
  ) => string | T;
 | 
			
		||||
  /** @see {@link window.i18n.inEnglish} */
 | 
			
		||||
  inEnglish: <T extends SimpleLocalizerTokens>(token: T) => string | T;
 | 
			
		||||
  /** @see {@link window.i18n.formatMessageWithArgs */
 | 
			
		||||
  getRawMessage: <T extends MergedLocalizerTokens>(
 | 
			
		||||
    crowdinLocale: CrowdinLocale,
 | 
			
		||||
    ...[token, args]: GetMessageArgs<T>
 | 
			
		||||
  ) => string | T;
 | 
			
		||||
  /** @see {@link window.i18n.formatMessageWithArgs} */
 | 
			
		||||
  formatMessageWithArgs: <T extends MergedLocalizerTokens>(
 | 
			
		||||
    rawMessage: string,
 | 
			
		||||
    args?: ArgsFromToken<T>
 | 
			
		||||
  ) => string | T;
 | 
			
		||||
};
 | 
			
		||||
@ -1,31 +1,5 @@
 | 
			
		||||
import type {
 | 
			
		||||
  ArgsFromToken,
 | 
			
		||||
  MergedLocalizerTokens,
 | 
			
		||||
  GetMessageArgs,
 | 
			
		||||
  LocalizerComponentProps,
 | 
			
		||||
  SimpleLocalizerTokens,
 | 
			
		||||
} from '../localization/localeTools';
 | 
			
		||||
import { CrowdinLocale } from '../localization/constants';
 | 
			
		||||
 | 
			
		||||
export type I18nMethods = {
 | 
			
		||||
  /** @see {@link window.i18n.stripped} */
 | 
			
		||||
  stripped: <T extends MergedLocalizerTokens>(...[token, args]: GetMessageArgs<T>) => string | T;
 | 
			
		||||
  strippedWithObj: <T extends MergedLocalizerTokens>(
 | 
			
		||||
    opts: LocalizerComponentProps<T>
 | 
			
		||||
  ) => string | T;
 | 
			
		||||
  /** @see {@link window.i18n.inEnglish} */
 | 
			
		||||
  inEnglish: <T extends SimpleLocalizerTokens>(token: T) => string | T;
 | 
			
		||||
  /** @see {@link window.i18n.formatMessageWithArgs */
 | 
			
		||||
  getRawMessage: <T extends MergedLocalizerTokens>(
 | 
			
		||||
    crowdinLocale: CrowdinLocale,
 | 
			
		||||
    ...[token, args]: GetMessageArgs<T>
 | 
			
		||||
  ) => string | T;
 | 
			
		||||
  /** @see {@link window.i18n.formatMessageWithArgs} */
 | 
			
		||||
  formatMessageWithArgs: <T extends MergedLocalizerTokens>(
 | 
			
		||||
    rawMessage: string,
 | 
			
		||||
    args?: ArgsFromToken<T>
 | 
			
		||||
  ) => string | T;
 | 
			
		||||
};
 | 
			
		||||
import type { MergedLocalizerTokens, GetMessageArgs } from '../localization/localeTools';
 | 
			
		||||
import type { I18nMethods } from './I18nMethods';
 | 
			
		||||
 | 
			
		||||
export type SetupI18nReturnType = I18nMethods &
 | 
			
		||||
  (<T extends MergedLocalizerTokens>(...[token, args]: GetMessageArgs<T>) => string);
 | 
			
		||||
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue