UNPKG

vite-plugin-vue-i18n-typescript

Version:

Type-safe Vue i18n translations. Auto-generates TypeScript types from JSON locale files. Catch translation errors at compile time with full IDE autocomplete.

91 lines (85 loc) 3.48 kB
import { V as VirtualKeysDtsOptions, C as CustomLogger, G as GenerationOptions, J as JSONObject, c as GenerateTypesOptions, d as GenerateTypesResult } from './types-D-t7iqK-.cjs'; export { e as createColoredLogger, f as createConsoleLogger } from './types-D-t7iqK-.cjs'; import { ResolvedConfig } from 'vite'; import './vite-env-override-components.cjs'; import 'vue-i18n'; /** * Normalize and validate plugin configuration */ declare function normalizeConfig(userOptions: VirtualKeysDtsOptions | undefined, logger: CustomLogger, cfg?: { root?: string; } | ResolvedConfig): GenerationOptions; /** String enum keeps runtime minimal and DX straightforward */ declare enum SymbolEnum { imports = "_imports", messages = "messages", hrmHotUpdate = "_hrmHotUpdate", useI18nApp = "useI18nApp", availableLocales = "availableLocales", fallbackLocales = "fallbackLocales", translationWrapper = "translationWrapper", createI18nInstance = "createI18nInstance", createI18nInstancePlugin = "createI18nInstancePlugin", useI18nTypeSafe = "useI18nTypeSafe" } /** Typed, compact class with ergonomic helpers */ declare class RuntimeMethods { private readonly _data; private readonly _config; constructor(messagesCombined: CombinedMessages); /** Deterministic full-file content (all sections in HelperMethodsOrder) */ toFileContent(defaultExport?: string): string; parseSymbolEnumKey(key: string | SymbolEnum): string | undefined; getFileContentFor(target: string | SymbolEnum, separator?: string): string; } declare class CombinedMessages<TLanguages extends string = string, TMessages extends JSONObject = JSONObject> { messages: Record<TLanguages | string, TMessages>; config: GenerationOptions; readonly messagesJsonString: string; readonly keys: string[]; readonly baseLocaleMessages: TMessages; readonly languages: TLanguages[]; readonly contentId: string; readonly keysId: string; readonly fallbackLocales: Record<string, string[]>; constructor(messages: Record<TLanguages | string, TMessages>, config: GenerationOptions); get typesOutpath(): string; get virtualOutPath(): string | undefined; languagesTuple(): string; languagesUnion(): string; writeTypesFile(): Promise<void>; writeVirtualFile(): Promise<void>; static getFallBackLocales(langs: string[]): Record<string, string[]>; getRuntimeContent(): string; private _runtimeMethodsCache; getRuntimeMethods(): RuntimeMethods; loadVirtualModuleCode(moduleToResolve: string | SymbolEnum): string; writeFiles(): Promise<void>; getTypesContent(): string; /** * Validate messages and log conflicts */ validateMessages(): void; } /** * Generate TypeScript definitions from Vue i18n locale files * * @param options - Configuration options for generation * @returns Promise with generation result * * @example * ```typescript * import { generateI18nTypes } from 'unplugin- i18n-typescript-generation/api' * * const result = await generateI18nTypes({ * baseLocale: 'en', * include: ['src/locales/*.json'], * typesPath: 'src/i18n/i18n.gen.d.ts', * verbose: true * }) * * console.log(`Generated ${result.filesWritten} files for ${result.locales.length} locales`) * ``` */ declare function generateI18nTypes(options?: GenerateTypesOptions): Promise<GenerateTypesResult>; export { CombinedMessages, generateI18nTypes, normalizeConfig };