77 */
88import type { CookieConfig } from "../../types" ;
99import { cookies } from "next/headers" ;
10+ import { logger } from "../../utils/logger" ;
11+ import type { LocaleCode } from "lingo.dev/spec" ;
1012
1113/**
1214 * Configuration for Next.js locale resolver
@@ -16,13 +18,13 @@ export interface NextLocaleResolverConfig {
1618 * Cookie configuration (name and maxAge)
1719 * @default { name: 'locale', maxAge: 31536000 }
1820 */
19- cookieConfig ? : CookieConfig ;
21+ cookieConfig : CookieConfig ;
2022
2123 /**
2224 * Default locale if cookie is not set
2325 * @default 'en'
2426 */
25- defaultLocale ?: string ;
27+ defaultLocale : LocaleCode ;
2628}
2729
2830/**
@@ -33,27 +35,12 @@ export interface NextLocaleResolverConfig {
3335 *
3436 * @param config - Configuration options
3537 * @returns Locale resolver function
36- *
37- * @example
38- * ```typescript
39- * import { setLocaleResolver } from '@lingo.dev/compiler/react';
40- * import { createNextCookieLocaleResolver } from '@lingo.dev/compiler/react/next';
41- *
42- * // Use default config (cookie name: 'locale', default: 'en')
43- * setLocaleResolver(createNextCookieLocaleResolver());
44- *
45- * // Or customize with cookie config
46- * setLocaleResolver(createNextCookieLocaleResolver({
47- * cookieConfig: { name: 'user_language', maxAge: 2592000 },
48- * defaultLocale: 'de'
49- * }));
50- * ```
5138 */
5239export function createNextCookieLocaleResolver (
53- config : NextLocaleResolverConfig = { } ,
40+ config : NextLocaleResolverConfig ,
5441) : ( ) => Promise < string > {
55- const cookieName = config . cookieConfig ? .name || "locale" ;
56- const defaultLocale = config . defaultLocale || "en" ;
42+ const cookieName = config . cookieConfig . name ;
43+ const defaultLocale = config . defaultLocale ;
5744
5845 return async ( ) => {
5946 try {
@@ -62,9 +49,7 @@ export function createNextCookieLocaleResolver(
6249 } catch ( error ) {
6350 // Fallback on error (e.g., not in Next.js environment, or cookies() failed)
6451 if ( process . env . DEBUG ) {
65- process . stderr . write (
66- `[lingo.dev] Error reading locale from Next.js cookies: ${ error } \n` ,
67- ) ;
52+ logger . error ( `Error reading locale from Next.js cookies: ${ error } \n` ) ;
6853 }
6954 return defaultLocale ;
7055 }
0 commit comments