UNPKG

ordinality

Version:
87 lines (86 loc) 5.06 kB
/// <reference types="node" /> /// <reference types="node" /> import { z } from 'zod'; import { MigrationContext } from '../Migration'; import type { MigrationStorage } from './MigrationStorage'; export type Codec<T> = { encode: (data: T) => Buffer; decode: (buffer: Buffer) => T; }; export type State<M = void> = { migrations: { name: string; meta: M; }[]; }; export declare class MigrationFileStorage<C extends MigrationContext<any, any>> implements MigrationStorage<C> { private readonly filename; private readonly options; constructor(filename: string, options?: { /** * Scheme validator for a migration meta */ metaScheme?: C['meta'] extends z.TypeOf<infer X> ? X : never; /** * Custom logic to encode/decode data * * By default data will be encoded as JSON string */ codec?: Codec<State<C['meta']>>; }); protected getCodec(): Codec<State<C['meta']>>; protected getMigrationScheme(): z.ZodObject<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }>, any>[k]; } : never, z.baseObjectInputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }>[k_1]; } : never>; protected getStorageScheme(): z.ZodObject<{ migrations: z.ZodArray<z.ZodObject<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }>, any>[k]; } : never, z.baseObjectInputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }>[k_1]; } : never>, "many">; }, "strip", z.ZodTypeAny, { migrations: (z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }>, any>[k]; } : never)[]; }, { migrations: (z.baseObjectInputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ name: z.ZodString; meta: (C["meta"] extends z.TypeOf<infer X extends z.ZodType<any, any, any>> ? X : never) | z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodVoid>>>; }>[k_1]; } : never)[]; }>; protected fetchState(): Promise<State<C["meta"]>>; list(): Promise<string[]>; log(uid: string, context: C): Promise<void>; unlog(uid: string): Promise<void>; }