forked from nuxt-modules/i18n
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontext.ts
51 lines (47 loc) · 1.55 KB
/
context.ts
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
import type { Resolver } from '@nuxt/kit'
import type { LocaleInfo, LocaleObject, NuxtI18nOptions, VueI18nConfigPathInfo } from './types'
import type { Nuxt } from '@nuxt/schema'
import { createResolver, useLogger } from '@nuxt/kit'
import { NUXT_I18N_MODULE_ID } from './constants'
import createDebug from 'debug'
export interface I18nNuxtContext {
resolver: Resolver
logger: ReturnType<(typeof import('@nuxt/kit'))['useLogger']>
debug: ReturnType<typeof import('debug')>
userOptions: NuxtI18nOptions
options: Required<NuxtI18nOptions>
isDev: boolean
isSSR: boolean
isPrepare: boolean
isSSG: boolean
isBuild: boolean
isTest: boolean
genTemplate: (isServer: boolean, lazy?: boolean) => string
normalizedLocales: LocaleObject<string>[]
localeCodes: string[]
localeInfo: LocaleInfo[]
vueI18nConfigPaths: Required<VueI18nConfigPathInfo>[]
}
const debug = createDebug('@nuxtjs/i18n:context')
const resolver = createResolver(import.meta.url)
export function createContext(userOptions: NuxtI18nOptions, nuxt: Nuxt): I18nNuxtContext {
const options = userOptions as Required<NuxtI18nOptions>
return {
resolver,
logger: useLogger(NUXT_I18N_MODULE_ID),
debug,
userOptions,
options,
isDev: nuxt.options.dev,
isSSR: nuxt.options.ssr,
isPrepare: nuxt.options._prepare,
isSSG: nuxt.options._generate,
isBuild: nuxt.options._build,
isTest: nuxt.options.test,
genTemplate: undefined!,
normalizedLocales: undefined!,
localeCodes: undefined!,
localeInfo: undefined!,
vueI18nConfigPaths: undefined!
}
}