UNPKG

astro-loader-i18n

Version:

An Astro content loader for i18n files and folder structures.

13 lines (12 loc) 2.22 kB
import { z } from 'astro/zod'; /** * Creates a schema for localized content, supporting multiple locales. * * @template T - The Zod schema type for the content. * @template Locales - A tuple of locale strings. * @param schema - The base schema for the content. * @param locales - An array of locale strings to define the localization keys. * @param partial - Whether the schema should allow partial localization (optional). * @returns A Zod schema that validates either the localized object or the base schema. */ export declare const localized: <T extends z.ZodTypeAny, Locales extends readonly string[]>(schema: T, locales: Locales, partial?: boolean) => z.ZodUnion<[z.ZodObject<Record<Locales[number], T>, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Record<Locales[number], T>>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Record<Locales[number], T>>, any>[k]; } : never, z.baseObjectInputType<Record<Locales[number], T>> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<Record<Locales[number], T>>[k_1]; } : never>, T]> | z.ZodUnion<[z.ZodObject<Record<Locales[number], T> extends infer T_3 extends z.ZodRawShape ? { [k_2 in keyof T_3]: z.ZodOptional<Record<Locales[number], T>[k_2]>; } : never, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Record<Locales[number], T> extends infer T_6 extends z.ZodRawShape ? { [k_2 in keyof T_6]: z.ZodOptional<Record<Locales[number], T>[k_2]>; } : never>, any> extends infer T_4 ? { [k_3 in keyof T_4]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<Record<Locales[number], T> extends infer T_5 extends z.ZodRawShape ? { [k_2 in keyof T_5]: z.ZodOptional<Record<Locales[number], T>[k_2]>; } : never>, any>[k_3]; } : never, z.baseObjectInputType<Record<Locales[number], T> extends infer T_9 extends z.ZodRawShape ? { [k_2 in keyof T_9]: z.ZodOptional<Record<Locales[number], T>[k_2]>; } : never> extends infer T_7 ? { [k_4 in keyof T_7]: z.baseObjectInputType<Record<Locales[number], T> extends infer T_8 extends z.ZodRawShape ? { [k_2 in keyof T_8]: z.ZodOptional<Record<Locales[number], T>[k_2]>; } : never>[k_4]; } : never>, T]>;