@voerkai18n/runtime
Version:
runtime of voerkai18n
48 lines (40 loc) • 1.18 kB
text/typescript
/**
*
*
* formatters:{
* x1:(value,args,context)=>{ return value}
* x2:VoerkaI18nFormatter
* x3:VoerkaI18nFormatterBuilder
* $options: { // 对原有的formatters进行配置
* en:{},
* zh:{}
* }
* }
*
*
*
*
*/
import { FlexFilter } from "flexvars"
import type { VoerkaI18nScope } from "@/scope"
import { Dict } from "@/types"
export type VoerkaI18nFormatterContext<Config extends Dict = Dict> = {
getConfig: ()=> Config
scope:VoerkaI18nScope
}
export type VoerkaI18nFormatter<
Args extends Dict = Dict,
Config extends Dict = Args
> = FlexFilter<Args,VoerkaI18nFormatterContext<Config>> & {
global?: boolean
}
export type VoerkaI18nFormatterName = string
export interface VoerkaI18nFormatterConfig extends Record<VoerkaI18nFormatterName,Record<string,any>>{}
export interface VoerkaI18nFormatterBuilder<
Args extends Dict = Dict,
Config extends Dict = Args
> {
(scope: VoerkaI18nScope): VoerkaI18nFormatter<Args,Config>
}
// 实例化VoerkaI18nScope时传入的格式化器配置
export type VoerkaI18nFormatters = any[][]