UNPKG

narraleaf

Version:

Create your visual novel with Electron and React

23 lines (22 loc) 853 B
import { z } from "zod"; export declare enum ProjectFileType { JSONC = "jsons", CJS = "cjs", DIR = "dir", FILE = "file" } export type DirStructureDefinition<Contains extends { [K in string]: string | z.infer<z.ZodType<any, any, any>>; }> = { contains: { [K in keyof Contains]: { path: string | string[]; type: ProjectFileType; validator: Contains[K] extends string ? null : z.ZodType<any, any, any>; }; }; }; export type InferDirStructure<T extends DirStructureDefinition<any>> = T extends DirStructureDefinition<infer Contains> ? { [K in keyof Contains]: Contains[K] extends string ? string : z.infer<Contains[K]>; } : never; export declare function parseDirStructure<T extends DirStructureDefinition<any>>(definition: T, root: string): Promise<InferDirStructure<T>>;