UNPKG

json-schema-to-sql

Version:

Convert a JSON schema into SQL DDL (create table) statements.

107 lines 4.03 kB
import { z } from 'zod'; export type RefColumn = z.infer<typeof RefColumnSchema>; type LiteralColumn = z.infer<typeof LiteralColumnSchema>; type StringColumn = z.infer<typeof StringColumnSchema>; interface ArrayColumn { type: 'array'; items: Column; } export interface Table { type: 'object'; properties: Record<string, Column>; required?: string[]; 'x-primaryKey'?: string; } type NonArrayColumn = Table | LiteralColumn | StringColumn | RefColumn; export type Column = NonArrayColumn | ArrayColumn; declare const RefColumnSchema: z.ZodObject<{ $ref: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>; }, "strip", z.ZodTypeAny, { $ref: string; }, { $ref: string; }>; declare const LiteralColumnSchema: z.ZodObject<{ default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>; enum: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">>; description: z.ZodOptional<z.ZodString>; } & { type: z.ZodUnion<[z.ZodLiteral<"boolean">, z.ZodLiteral<"number">, z.ZodLiteral<"integer">]>; }, "strip", z.ZodTypeAny, { type: "number" | "boolean" | "integer"; default?: string | number | boolean | undefined; enum?: (string | number | boolean)[] | undefined; description?: string | undefined; }, { type: "number" | "boolean" | "integer"; default?: string | number | boolean | undefined; enum?: (string | number | boolean)[] | undefined; description?: string | undefined; }>; declare const StringColumnSchema: z.ZodObject<{ default: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>; enum: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>, "many">>; description: z.ZodOptional<z.ZodString>; } & { type: z.ZodLiteral<"string">; format: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"uuid">, z.ZodLiteral<"date">, z.ZodLiteral<"datetime">]>>; }, "strip", z.ZodTypeAny, { type: "string"; default?: string | number | boolean | undefined; enum?: (string | number | boolean)[] | undefined; description?: string | undefined; format?: "date" | "uuid" | "datetime" | undefined; }, { type: "string"; default?: string | number | boolean | undefined; enum?: (string | number | boolean)[] | undefined; description?: string | undefined; format?: "date" | "uuid" | "datetime" | undefined; }>; export declare const DatabaseSchema: z.ZodObject<{ type: z.ZodLiteral<"object">; properties: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{ type: z.ZodLiteral<"object">; properties: z.ZodLazy<z.ZodRecord<z.ZodString, z.ZodType<Column, z.ZodTypeDef, Column>>>; required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; 'x-primaryKey': z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { type: "object"; properties: Record<string, Column>; required?: string[] | undefined; 'x-primaryKey'?: string | undefined; }, { type: "object"; properties: Record<string, Column>; required?: string[] | undefined; 'x-primaryKey'?: string | undefined; }>, { type: "object"; properties: Record<string, Column>; required?: string[] | undefined; 'x-primaryKey'?: string | undefined; }, { type: "object"; properties: Record<string, Column>; required?: string[] | undefined; 'x-primaryKey'?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { type: "object"; properties: Record<string, { type: "object"; properties: Record<string, Column>; required?: string[] | undefined; 'x-primaryKey'?: string | undefined; }>; }, { type: "object"; properties: Record<string, { type: "object"; properties: Record<string, Column>; required?: string[] | undefined; 'x-primaryKey'?: string | undefined; }>; }>; export {}; //# sourceMappingURL=definitions.d.ts.map