-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathinternals.d.mts
More file actions
104 lines (92 loc) · 4.74 KB
/
Copy pathinternals.d.mts
File metadata and controls
104 lines (92 loc) · 4.74 KB
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
declare module '#build/i18n.plural.mjs' {
export function plural(key: string, count: number, params: Params, locale: string, getter: Getter): string | null
}
/** Приватный конфиг i18n (серверный): rootDir, rootDirs, debug, translationDir и т.д. Копия полей ModulePrivateOptionsExtend без импорта. */
interface I18nPrivateConfig {
rootDir: string
debug: boolean
translationDir: string
fallbackLocale?: string
apiBaseUrl: string
apiBaseClientHost?: string
apiBaseServerHost?: string
customRegexMatcher?: string
routesLocaleLinks?: Record<string, string>
serverTranslationPreload?: boolean
/** Absolute buildDir payload dir for Node fs reads in dev/prerender. */
payloadFsDir: string
/** Relative dir under Nitro `public/` for prod payload files. */
payloadPublicRel: string
}
declare module '#build/i18n.config.mjs' {
export function getI18nPrivateConfig(): I18nPrivateConfig
}
/**
* Типы для #build/i18n.strategy.mjs — скопированы без импорта из @i18n-micro/path-strategy.
*/
/** Контекст стратегии (копия PathStrategyContext). */
interface I18nStrategyContextRouter {
hasRoute: (name: string) => boolean
resolve: (to: { name?: string | null, path?: string, params?: Record<string, unknown>, query?: Record<string, unknown>, hash?: string } | string) => I18nStrategyResolvedRoute
}
interface I18nStrategyContext {
strategy: 'no_prefix' | 'prefix_except_default' | 'prefix' | 'prefix_and_default'
defaultLocale: string
locales: Array<{ code: string, [key: string]: unknown }>
localizedRouteNamePrefix: string
router: I18nStrategyContextRouter
globalLocaleRoutes?: Record<string, Record<string, string> | false | boolean>
routeLocales?: Record<string, string[]>
routesLocaleLinks?: Record<string, string>
noPrefixRedirect?: boolean
}
interface I18nStrategyResolvedRoute {
name: string | null
path: string
fullPath: string
params?: Record<string, unknown>
query?: Record<string, unknown>
hash?: string
}
/** Экземпляр стратегии (копия PathStrategy). */
export interface I18nStrategyInstance {
getRedirect(currentPath: string, targetLocale: string): string | null
getLocaleFromPath(path: string): string | null
resolveLocaleFromPath(path: string): string | null
localeRoute(targetLocale: string, routeOrPath: I18nStrategyResolvedRoute | string, currentRoute?: I18nStrategyResolvedRoute): I18nStrategyResolvedRoute | string
switchLocaleRoute(fromLocale: string, toLocale: string, route: I18nStrategyResolvedRoute, options?: { i18nRouteParams?: Record<string, Record<string, unknown>> }): I18nStrategyResolvedRoute | string
getCanonicalPath(route: I18nStrategyResolvedRoute, targetLocale: string): string | null
setRouter(router: I18nStrategyRouterLike): void
getCurrentLocale(route: I18nStrategyResolvedRoute, getDefaultLocale?: () => string | null | undefined): string
getPluginRouteName(route: I18nStrategyResolvedRoute, locale: string): string
getCurrentLocaleName(route: I18nStrategyResolvedRoute, getDefaultLocale?: () => string | null | undefined): string | null
getDefaultLocale(): string
getLocales(): Array<{ code: string, [key: string]: unknown }>
getStrategy(): 'no_prefix' | 'prefix_except_default' | 'prefix' | 'prefix_and_default'
getLocalizedRouteNamePrefix(): string
getGlobalLocaleRoutes(): Record<string, Record<string, string> | false | boolean> | undefined
getRouteLocales(): Record<string, string[]> | undefined
getRoutesLocaleLinks(): Record<string, string> | undefined
getNoPrefixRedirect(): boolean | undefined
}
/** Роутер для createI18nStrategy (hasRoute, resolve). */
interface I18nStrategyRouterLike {
hasRoute(name: string): boolean
resolve(to: unknown): { name: string | null, path: string, fullPath: string, params?: Record<string, unknown>, query?: Record<string, unknown>, hash?: string }
}
declare module '#build/i18n.strategy.mjs' {
/** Создаёт инстанс стратегии: контекст (build-time) уже в файле, при импорте передаётся только router. */
export function createI18nStrategy(router: I18nStrategyRouterLike): I18nStrategyInstance
export function getI18nConfig(): unknown
}
/** Nitro-алиасы: те же экспорты, что и #build/..., для server routes/plugins/middleware */
declare module '#i18n-internal/config' {
export function getI18nPrivateConfig(): I18nPrivateConfig
}
declare module '#i18n-internal/strategy' {
export function getI18nConfig(): unknown
export function createI18nStrategy(router: I18nStrategyRouterLike): I18nStrategyInstance
}
declare module '#i18n-internal/payload-source' {
export function readPayload(relPath: string): Promise<Record<string, unknown>>
}