drizzle-typebox 1.0.0-beta.6-9514357 → 1.0.0-beta.6-a679d20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs +355 -445
- package/index.cjs.map +1 -1
- package/index.d.cts +122 -6
- package/index.d.mts +122 -6
- package/index.d.ts +122 -6
- package/index.mjs +348 -436
- package/index.mjs.map +1 -1
- package/package.json +2 -3
- package/column.d.cts +0 -10
- package/column.d.mts +0 -10
- package/column.d.ts +0 -10
- package/column.types.d.cts +0 -31
- package/column.types.d.mts +0 -31
- package/column.types.d.ts +0 -31
- package/constants.d.cts +0 -20
- package/constants.d.mts +0 -20
- package/constants.d.ts +0 -20
- package/schema.d.cts +0 -18
- package/schema.d.mts +0 -18
- package/schema.d.ts +0 -18
- package/schema.types.d.cts +0 -24
- package/schema.types.d.mts +0 -24
- package/schema.types.d.ts +0 -24
- package/schema.types.internal.d.cts +0 -22
- package/schema.types.internal.d.mts +0 -22
- package/schema.types.internal.d.ts +0 -22
- package/utils.d.cts +0 -39
- package/utils.d.mts +0 -39
- package/utils.d.ts +0 -39
package/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/column.ts","../src/utils.ts","../src/schema.ts"],"sourcesContent":[null,null,null,null],"names":["t","TypeRegistry","Kind","extractExtendedColumnType","getTableName","getColumnTable","isTable","getTableColumns","getViewSelectedFields","is","Column","SQL","isView","typebox"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["t","jsonSchema: JsonSchema","TypeRegistry","bufferSchema: BufferSchema","Kind","schema!: TSchema","min!: number","max!: number","bigintStringModeSchema: BigIntStringModeSchema","unsignedBigintStringModeSchema: BigIntStringModeSchema","baseSchema: TSchema","schema: TSchema","min!: bigint | undefined","max!: bigint | undefined","options: Partial<BigIntOptions>","regex: RegExp | undefined","options: Partial<StringOptions>","isPgEnum: (entity: any) => entity is PgEnum<[string, ...string[]]>","columnSchemas: Record<string, TSchema>","Column","SQL","t","selectConditions: Conditions","insertConditions: Conditions","updateConditions: Conditions","createSelectSchema: CreateSelectSchema","createInsertSchema: CreateInsertSchema","createUpdateSchema: CreateUpdateSchema"],"sources":["../src/constants.ts","../src/column.ts","../src/utils.ts","../src/schema.ts"],"sourcesContent":["export const CONSTANTS = {\n\tINT8_MIN: -128,\n\tINT8_MAX: 127,\n\tINT8_UNSIGNED_MAX: 255,\n\tINT16_MIN: -32768,\n\tINT16_MAX: 32767,\n\tINT16_UNSIGNED_MAX: 65535,\n\tINT24_MIN: -8388608,\n\tINT24_MAX: 8388607,\n\tINT24_UNSIGNED_MAX: 16777215,\n\tINT32_MIN: -2147483648,\n\tINT32_MAX: 2147483647,\n\tINT32_UNSIGNED_MAX: 4294967295,\n\tINT48_MIN: -140737488355328,\n\tINT48_MAX: 140737488355327,\n\tINT48_UNSIGNED_MAX: 281474976710655,\n\tINT64_MIN: -9223372036854775808n,\n\tINT64_MAX: 9223372036854775807n,\n\tINT64_UNSIGNED_MAX: 18446744073709551615n,\n};\n","import { Kind, Type as t, TypeRegistry } from '@sinclair/typebox';\nimport type { BigIntOptions, StringOptions, TSchema, Type as typebox } from '@sinclair/typebox';\nimport {\n\ttype Column,\n\ttype ColumnDataArrayConstraint,\n\ttype ColumnDataBigIntConstraint,\n\ttype ColumnDataNumberConstraint,\n\ttype ColumnDataObjectConstraint,\n\ttype ColumnDataStringConstraint,\n\textractExtendedColumnType,\n\tgetColumnTable,\n\tgetTableName,\n} from 'drizzle-orm';\nimport { CONSTANTS } from './constants.ts';\nimport type { BigIntStringModeSchema, BufferSchema, JsonSchema } from './utils.ts';\n\nexport const literalSchema = t.Union([t.String(), t.Number(), t.Boolean(), t.Null()]);\nexport const jsonSchema: JsonSchema = t.Union([literalSchema, t.Array(t.Any()), t.Record(t.String(), t.Any())]) as any;\nTypeRegistry.Set('Buffer', (_, value) => value instanceof Buffer);\nexport const bufferSchema: BufferSchema = { [Kind]: 'Buffer', type: 'buffer' } as any;\n\nexport function mapEnumValues(values: string[]) {\n\treturn Object.fromEntries(values.map((value) => [value, value]));\n}\n\nexport function columnToSchema(column: Column, t: typeof typebox): TSchema {\n\tlet schema!: TSchema;\n\n\t// Check for PG array columns (have dimensions property instead of changing dataType)\n\tconst dimensions = (<{ dimensions?: number }> column).dimensions;\n\tif (typeof dimensions === 'number' && dimensions > 0) {\n\t\treturn pgArrayColumnToSchema(column, dimensions, t);\n\t}\n\n\tconst { type, constraint } = extractExtendedColumnType(column);\n\n\tswitch (type) {\n\t\tcase 'array': {\n\t\t\tschema = arrayColumnToSchema(column, constraint, t);\n\t\t\tbreak;\n\t\t}\n\t\tcase 'object': {\n\t\t\tschema = objectColumnToSchema(column, constraint, t);\n\t\t\tbreak;\n\t\t}\n\t\tcase 'number': {\n\t\t\tschema = numberColumnToSchema(column, constraint, t);\n\t\t\tbreak;\n\t\t}\n\t\tcase 'bigint': {\n\t\t\tschema = bigintColumnToSchema(column, constraint, t);\n\t\t\tbreak;\n\t\t}\n\t\tcase 'boolean': {\n\t\t\tschema = t.Boolean();\n\t\t\tbreak;\n\t\t}\n\t\tcase 'string': {\n\t\t\tschema = stringColumnToSchema(column, constraint, t);\n\t\t\tbreak;\n\t\t}\n\t\tcase 'custom': {\n\t\t\tschema = t.Any();\n\t\t\tbreak;\n\t\t}\n\t\tdefault: {\n\t\t\tschema = t.Any();\n\t\t}\n\t}\n\n\treturn schema;\n}\n\nfunction numberColumnToSchema(\n\tcolumn: Column,\n\tconstraint: ColumnDataNumberConstraint | undefined,\n\tt: typeof typebox,\n): TSchema {\n\tlet min!: number;\n\tlet max!: number;\n\tlet integer = false;\n\n\tswitch (constraint) {\n\t\tcase 'int8': {\n\t\t\tmin = CONSTANTS.INT8_MIN;\n\t\t\tmax = CONSTANTS.INT8_MAX;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'uint8': {\n\t\t\tmin = 0;\n\t\t\tmax = CONSTANTS.INT8_UNSIGNED_MAX;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'int16': {\n\t\t\tmin = CONSTANTS.INT16_MIN;\n\t\t\tmax = CONSTANTS.INT16_MAX;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'uint16': {\n\t\t\tmin = 0;\n\t\t\tmax = CONSTANTS.INT16_UNSIGNED_MAX;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'int24': {\n\t\t\tmin = CONSTANTS.INT24_MIN;\n\t\t\tmax = CONSTANTS.INT24_MAX;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'uint24': {\n\t\t\tmin = 0;\n\t\t\tmax = CONSTANTS.INT24_UNSIGNED_MAX;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'int32': {\n\t\t\tmin = CONSTANTS.INT32_MIN;\n\t\t\tmax = CONSTANTS.INT32_MAX;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'uint32': {\n\t\t\tmin = 0;\n\t\t\tmax = CONSTANTS.INT32_UNSIGNED_MAX;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'int53': {\n\t\t\tmin = Number.MIN_SAFE_INTEGER;\n\t\t\tmax = Number.MAX_SAFE_INTEGER;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'uint53': {\n\t\t\tmin = 0;\n\t\t\tmax = Number.MAX_SAFE_INTEGER;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'float': {\n\t\t\tmin = CONSTANTS.INT24_MIN;\n\t\t\tmax = CONSTANTS.INT24_MAX;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'ufloat': {\n\t\t\tmin = 0;\n\t\t\tmax = CONSTANTS.INT24_UNSIGNED_MAX;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'double': {\n\t\t\tmin = CONSTANTS.INT48_MIN;\n\t\t\tmax = CONSTANTS.INT48_MAX;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'udouble': {\n\t\t\tmin = 0;\n\t\t\tmax = CONSTANTS.INT48_UNSIGNED_MAX;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'year': {\n\t\t\tmin = 1901;\n\t\t\tmax = 2155;\n\t\t\tinteger = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'unsigned': {\n\t\t\tmin = 0;\n\t\t\tmax = Number.MAX_SAFE_INTEGER;\n\t\t\tbreak;\n\t\t}\n\t\tdefault: {\n\t\t\tmin = Number.MIN_SAFE_INTEGER;\n\t\t\tmax = Number.MAX_SAFE_INTEGER;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst key = integer ? 'Integer' : 'Number';\n\treturn t[key]({\n\t\tminimum: min,\n\t\tmaximum: max,\n\t});\n}\n\nTypeRegistry.Set('BigIntStringMode', (_, value) => {\n\tif (typeof value !== 'string' || !(/^-?\\d+$/.test(value))) {\n\t\treturn false;\n\t}\n\n\tconst bigint = BigInt(value);\n\tif (bigint < CONSTANTS.INT64_MIN || bigint > CONSTANTS.INT64_MAX) {\n\t\treturn false;\n\t}\n\n\treturn true;\n});\n\nTypeRegistry.Set('UnsignedBigIntStringMode', (_, value) => {\n\tif (typeof value !== 'string' || !(/^\\d+$/.test(value))) {\n\t\treturn false;\n\t}\n\n\tconst bigint = BigInt(value);\n\tif (bigint < 0 || bigint > CONSTANTS.INT64_MAX) {\n\t\treturn false;\n\t}\n\n\treturn true;\n});\n/** @internal */\nexport const bigintStringModeSchema: BigIntStringModeSchema = {\n\t[Kind]: 'BigIntStringMode',\n\ttype: 'string',\n} as any;\n\n/** @internal */\nexport const unsignedBigintStringModeSchema: BigIntStringModeSchema = {\n\t[Kind]: 'UnsignedBigIntStringMode',\n\ttype: 'string',\n} as any;\n\nfunction pgArrayColumnToSchema(\n\tcolumn: Column,\n\tdimensions: number,\n\tt: typeof typebox,\n): TSchema {\n\t// PG style: the column IS the base type, with dimensions indicating array depth\n\t// Get the base schema from the column's own dataType\n\tconst [baseType, baseConstraint] = column.dataType.split(' ');\n\tlet baseSchema: TSchema;\n\n\tswitch (baseType) {\n\t\tcase 'number':\n\t\t\tbaseSchema = numberColumnToSchema(column, baseConstraint as ColumnDataNumberConstraint, t);\n\t\t\tbreak;\n\t\tcase 'bigint':\n\t\t\tbaseSchema = bigintColumnToSchema(column, baseConstraint as ColumnDataBigIntConstraint, t);\n\t\t\tbreak;\n\t\tcase 'boolean':\n\t\t\tbaseSchema = t.Boolean();\n\t\t\tbreak;\n\t\tcase 'string':\n\t\t\tbaseSchema = stringColumnToSchema(column, baseConstraint as ColumnDataStringConstraint, t);\n\t\t\tbreak;\n\t\tcase 'object':\n\t\t\tbaseSchema = objectColumnToSchema(column, baseConstraint as ColumnDataObjectConstraint, t);\n\t\t\tbreak;\n\t\tcase 'array':\n\t\t\t// Handle array types like point, line, etc.\n\t\t\tbaseSchema = arrayColumnToSchema(column, baseConstraint as ColumnDataArrayConstraint, t);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbaseSchema = t.Any();\n\t}\n\n\t// Wrap in arrays based on dimensions\n\t// Note: For PG arrays, column.length is the base type's length (e.g., varchar(10)), not array size\n\tlet schema: TSchema = t.Array(baseSchema);\n\tfor (let i = 1; i < dimensions; i++) {\n\t\tschema = t.Array(schema);\n\t}\n\treturn schema;\n}\n\nfunction arrayColumnToSchema(\n\tcolumn: Column,\n\tconstraint: ColumnDataArrayConstraint | undefined,\n\tt: typeof typebox,\n): TSchema {\n\tswitch (constraint) {\n\t\tcase 'geometry':\n\t\tcase 'point': {\n\t\t\treturn t.Tuple([t.Number(), t.Number()]);\n\t\t}\n\t\tcase 'line': {\n\t\t\treturn t.Tuple([t.Number(), t.Number(), t.Number()]);\n\t\t}\n\t\tcase 'vector':\n\t\tcase 'halfvector': {\n\t\t\tconst length = column.length;\n\t\t\tconst sizeParam = length\n\t\t\t\t? {\n\t\t\t\t\tminItems: length,\n\t\t\t\t\tmaxItems: length,\n\t\t\t\t}\n\t\t\t\t: undefined;\n\t\t\treturn t.Array(t.Number(), sizeParam);\n\t\t}\n\t\tcase 'int64vector': {\n\t\t\tconst length = column.length;\n\t\t\tconst sizeParam = length\n\t\t\t\t? {\n\t\t\t\t\tminItems: length,\n\t\t\t\t\tmaxItems: length,\n\t\t\t\t}\n\t\t\t\t: undefined;\n\t\t\treturn t.Array(\n\t\t\t\tt.BigInt({\n\t\t\t\t\tminimum: CONSTANTS.INT64_MIN,\n\t\t\t\t\tmaximum: CONSTANTS.INT64_MAX,\n\t\t\t\t}),\n\t\t\t\tsizeParam,\n\t\t\t);\n\t\t}\n\t\tcase 'basecolumn': {\n\t\t\t// CockroachDB/GEL style: has a separate baseColumn\n\t\t\tconst baseColumn = (<{ baseColumn?: Column }> column).baseColumn;\n\t\t\tif (baseColumn) {\n\t\t\t\tconst size = column.length;\n\t\t\t\tconst sizeParam = size\n\t\t\t\t\t? {\n\t\t\t\t\t\tminItems: size,\n\t\t\t\t\t\tmaxItems: size,\n\t\t\t\t\t}\n\t\t\t\t\t: undefined;\n\t\t\t\treturn t.Array(columnToSchema(baseColumn, t), sizeParam);\n\t\t\t}\n\t\t\treturn t.Array(t.Any());\n\t\t}\n\t\tdefault: {\n\t\t\treturn t.Array(t.Any());\n\t\t}\n\t}\n}\n\nfunction objectColumnToSchema(\n\tcolumn: Column,\n\tconstraint: ColumnDataObjectConstraint | undefined,\n\tt: typeof typebox,\n): TSchema {\n\tswitch (constraint) {\n\t\tcase 'buffer': {\n\t\t\treturn bufferSchema;\n\t\t}\n\t\tcase 'date': {\n\t\t\treturn t.Date();\n\t\t}\n\t\tcase 'geometry':\n\t\tcase 'point': {\n\t\t\treturn t.Object({\n\t\t\t\tx: t.Number(),\n\t\t\t\ty: t.Number(),\n\t\t\t});\n\t\t}\n\t\tcase 'json': {\n\t\t\treturn jsonSchema;\n\t\t}\n\t\tcase 'line': {\n\t\t\treturn t.Object({\n\t\t\t\ta: t.Number(),\n\t\t\t\tb: t.Number(),\n\t\t\t\tc: t.Number(),\n\t\t\t});\n\t\t}\n\t\tdefault: {\n\t\t\treturn t.Object({});\n\t\t}\n\t}\n}\n\nfunction bigintColumnToSchema(\n\tcolumn: Column,\n\tconstraint: ColumnDataBigIntConstraint | undefined,\n\tt: typeof typebox,\n): TSchema {\n\tlet min!: bigint | undefined;\n\tlet max!: bigint | undefined;\n\n\tswitch (constraint) {\n\t\tcase 'int64': {\n\t\t\tmin = CONSTANTS.INT64_MIN;\n\t\t\tmax = CONSTANTS.INT64_MAX;\n\t\t\tbreak;\n\t\t}\n\t\tcase 'uint64': {\n\t\t\tmin = 0n;\n\t\t\tmax = CONSTANTS.INT64_UNSIGNED_MAX;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst options: Partial<BigIntOptions> = {};\n\n\tif (min !== undefined) {\n\t\toptions.minimum = min;\n\t}\n\tif (max !== undefined) {\n\t\toptions.maximum = max;\n\t}\n\n\treturn t.BigInt(Object.keys(options).length > 0 ? options : undefined);\n}\n\nfunction stringColumnToSchema(\n\tcolumn: Column,\n\tconstraint: ColumnDataStringConstraint | undefined,\n\tt: typeof typebox,\n): TSchema {\n\tconst { name: columnName, length, isLengthExact } = column;\n\tlet regex: RegExp | undefined;\n\n\tif (constraint === 'binary') {\n\t\tregex = /^[01]*$/;\n\t}\n\tif (constraint === 'uuid') {\n\t\treturn t.String({\n\t\t\tformat: 'uuid',\n\t\t});\n\t}\n\tif (constraint === 'enum') {\n\t\tconst enumValues = column.enumValues;\n\t\tif (!enumValues) {\n\t\t\tthrow new Error(\n\t\t\t\t`Column \"${getTableName(getColumnTable(column))}\".\"${columnName}\" is of 'enum' type, but lacks enum values`,\n\t\t\t);\n\t\t}\n\t\treturn t.Enum(mapEnumValues(enumValues));\n\t}\n\tif (constraint === 'int64') {\n\t\treturn bigintStringModeSchema;\n\t}\n\tif (constraint === 'uint64') {\n\t\treturn unsignedBigintStringModeSchema;\n\t}\n\n\tconst options: Partial<StringOptions> = {};\n\n\tif (length !== undefined && isLengthExact) {\n\t\toptions.minLength = length;\n\t\toptions.maxLength = length;\n\t} else if (length !== undefined) {\n\t\toptions.maxLength = length;\n\t}\n\n\treturn regex\n\t\t? t.RegExp(regex, Object.keys(options).length > 0 ? options : undefined)\n\t\t: t.String(Object.keys(options).length > 0 ? options : undefined);\n}\n","import type { Kind, Static, TSchema } from '@sinclair/typebox';\nimport type { Column, SelectedFieldsFlat, Table, View } from 'drizzle-orm';\nimport type { PgEnum } from 'drizzle-orm/pg-core';\nimport type { literalSchema } from './column.ts';\n\nexport function isColumnType<T extends Column>(column: Column, columnTypes: string[]): column is T {\n\treturn columnTypes.includes(column.columnType);\n}\n\nexport function isWithEnum(column: Column): column is typeof column & { enumValues: [string, ...string[]] } {\n\treturn 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;\n}\n\nexport const isPgEnum: (entity: any) => entity is PgEnum<[string, ...string[]]> = isWithEnum as any;\n\ntype Literal = Static<typeof literalSchema>;\nexport type Json = Literal | { [key: string]: any } | any[];\nexport interface JsonSchema extends TSchema {\n\t[Kind]: 'Union';\n\tstatic: Json;\n\tanyOf: Json;\n}\nexport interface BufferSchema extends TSchema {\n\t[Kind]: 'Buffer';\n\tstatic: Buffer;\n\ttype: 'buffer';\n}\nexport interface BigIntStringModeSchema extends TSchema {\n\t[Kind]: 'BigIntStringMode';\n\tstatic: string;\n\ttype: 'string';\n}\n\nexport type IsNever<T> = [T] extends [never] ? true : false;\n\nexport type IsEnumDefined<TEnum extends string[] | undefined> = [string, ...string[]] extends TEnum ? false\n\t: undefined extends TEnum ? false\n\t: true;\n\nexport type ColumnIsGeneratedAlwaysAs<TColumn> = TColumn extends Column\n\t? TColumn['_']['identity'] extends 'always' ? true\n\t: TColumn['_'] extends { generated: undefined } ? false\n\t: TColumn['_'] extends { generated: { type: 'byDefault' } } ? false\n\t: true\n\t: false;\n\nexport type GetSelection<T extends SelectedFieldsFlat<Column> | Table | View> = T extends Table ? T['_']['columns']\n\t: T extends View ? T['_']['selectedFields']\n\t: T;\n","import { Type as t } from '@sinclair/typebox';\nimport type { TSchema } from '@sinclair/typebox';\nimport { Column, getTableColumns, getViewSelectedFields, is, isTable, isView, SQL } from 'drizzle-orm';\nimport type { Table, View } from 'drizzle-orm';\nimport type { PgEnum } from 'drizzle-orm/pg-core';\nimport { columnToSchema, mapEnumValues } from './column.ts';\nimport type { Conditions } from './schema.types.internal.ts';\nimport type {\n\tCreateInsertSchema,\n\tCreateSchemaFactoryOptions,\n\tCreateSelectSchema,\n\tCreateUpdateSchema,\n} from './schema.types.ts';\nimport { isPgEnum } from './utils.ts';\n\nexport function getColumns(tableLike: Table | View) {\n\treturn isTable(tableLike) ? getTableColumns(tableLike) : getViewSelectedFields(tableLike);\n}\n\nexport function handleColumns(\n\tcolumns: Record<string, any>,\n\trefinements: Record<string, any>,\n\tconditions: Conditions,\n\tfactory?: CreateSchemaFactoryOptions,\n): TSchema {\n\tconst columnSchemas: Record<string, TSchema> = {};\n\n\tfor (const [key, selected] of Object.entries(columns)) {\n\t\tif (!is(selected, Column) && !is(selected, SQL) && !is(selected, SQL.Aliased) && typeof selected === 'object') {\n\t\t\tconst columns = isTable(selected) || isView(selected) ? getColumns(selected) : selected;\n\t\t\tcolumnSchemas[key] = handleColumns(columns, refinements[key] ?? {}, conditions, factory);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst refinement = refinements[key];\n\t\tif (refinement !== undefined && typeof refinement !== 'function') {\n\t\t\tcolumnSchemas[key] = refinement;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst column = is(selected, Column) ? selected : undefined;\n\t\tconst schema = column ? columnToSchema(column, factory?.typeboxInstance ?? t) : t.Any();\n\t\tconst refined = typeof refinement === 'function' ? refinement(schema) : schema;\n\n\t\tif (conditions.never(column)) {\n\t\t\tcontinue;\n\t\t} else {\n\t\t\tcolumnSchemas[key] = refined;\n\t\t}\n\n\t\tif (column) {\n\t\t\tif (conditions.nullable(column)) {\n\t\t\t\tcolumnSchemas[key] = t.Union([columnSchemas[key]!, t.Null()]);\n\t\t\t}\n\n\t\t\tif (conditions.optional(column)) {\n\t\t\t\tcolumnSchemas[key] = t.Optional(columnSchemas[key]!);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn t.Object(columnSchemas) as any;\n}\n\nexport function handleEnum(enum_: PgEnum<any>, factory?: CreateSchemaFactoryOptions) {\n\tconst typebox: typeof t = factory?.typeboxInstance ?? t;\n\treturn typebox.Enum(mapEnumValues(enum_.enumValues));\n}\n\nconst selectConditions: Conditions = {\n\tnever: () => false,\n\toptional: () => false,\n\tnullable: (column) => !column.notNull,\n};\n\nconst insertConditions: Conditions = {\n\tnever: (column) =>\n\t\tcolumn?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'\n\t\t|| ('identity' in (column ?? {}) && typeof (column as any)?.identity !== 'undefined'),\n\toptional: (column) => !column.notNull || (column.notNull && column.hasDefault),\n\tnullable: (column) => !column.notNull,\n};\n\nconst updateConditions: Conditions = {\n\tnever: (column) =>\n\t\tcolumn?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'\n\t\t|| ('identity' in (column ?? {}) && typeof (column as any)?.identity !== 'undefined'),\n\toptional: () => true,\n\tnullable: (column) => !column.notNull,\n};\n\nexport const createSelectSchema: CreateSelectSchema = (\n\tentity: Table | View | PgEnum<[string, ...string[]]>,\n\trefine?: Record<string, any>,\n) => {\n\tif (isPgEnum(entity)) {\n\t\treturn handleEnum(entity);\n\t}\n\tconst columns = getColumns(entity);\n\treturn handleColumns(columns, refine ?? {}, selectConditions) as any;\n};\n\nexport const createInsertSchema: CreateInsertSchema = (\n\tentity: Table,\n\trefine?: Record<string, any>,\n) => {\n\tconst columns = getColumns(entity);\n\treturn handleColumns(columns, refine ?? {}, insertConditions) as any;\n};\n\nexport const createUpdateSchema: CreateUpdateSchema = (\n\tentity: Table,\n\trefine?: Record<string, any>,\n) => {\n\tconst columns = getColumns(entity);\n\treturn handleColumns(columns, refine ?? {}, updateConditions) as any;\n};\n\nexport function createSchemaFactory(options?: CreateSchemaFactoryOptions) {\n\tconst createSelectSchema: CreateSelectSchema = (\n\t\tentity: Table | View | PgEnum<[string, ...string[]]>,\n\t\trefine?: Record<string, any>,\n\t) => {\n\t\tif (isPgEnum(entity)) {\n\t\t\treturn handleEnum(entity, options);\n\t\t}\n\t\tconst columns = getColumns(entity);\n\t\treturn handleColumns(columns, refine ?? {}, selectConditions, options) as any;\n\t};\n\n\tconst createInsertSchema: CreateInsertSchema = (\n\t\tentity: Table,\n\t\trefine?: Record<string, any>,\n\t) => {\n\t\tconst columns = getColumns(entity);\n\t\treturn handleColumns(columns, refine ?? {}, insertConditions, options) as any;\n\t};\n\n\tconst createUpdateSchema: CreateUpdateSchema = (\n\t\tentity: Table,\n\t\trefine?: Record<string, any>,\n\t) => {\n\t\tconst columns = getColumns(entity);\n\t\treturn handleColumns(columns, refine ?? {}, updateConditions, options) as any;\n\t};\n\n\treturn { createSelectSchema, createInsertSchema, createUpdateSchema };\n}\n"],"mappings":"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"}
|
package/index.d.cts
CHANGED
|
@@ -1,6 +1,122 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import * as _sinclair_typebox0 from "@sinclair/typebox";
|
|
2
|
+
import { Kind, Static, TSchema as TSchema$1 } from "@sinclair/typebox";
|
|
3
|
+
import * as drizzle_orm0 from "drizzle-orm";
|
|
4
|
+
import { Assume, Column, ColumnTypeData, DrizzleTypeError, ExtractColumnTypeData, InferInsertModel, InferSelectModel, SelectedFieldsFlat, Simplify, Table, View } from "drizzle-orm";
|
|
5
|
+
import { PgEnum } from "drizzle-orm/pg-core";
|
|
6
|
+
import { CockroachEnum } from "drizzle-orm/cockroach-core";
|
|
7
|
+
|
|
8
|
+
//#region src/utils.d.ts
|
|
9
|
+
declare function isColumnType<T extends Column>(column: Column, columnTypes: string[]): column is T;
|
|
10
|
+
declare function isWithEnum(column: Column): column is typeof column & {
|
|
11
|
+
enumValues: [string, ...string[]];
|
|
12
|
+
};
|
|
13
|
+
declare const isPgEnum: (entity: any) => entity is PgEnum<[string, ...string[]]>;
|
|
14
|
+
type Literal = Static<typeof literalSchema>;
|
|
15
|
+
type Json = Literal | {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
} | any[];
|
|
18
|
+
interface JsonSchema extends TSchema$1 {
|
|
19
|
+
[Kind]: 'Union';
|
|
20
|
+
static: Json;
|
|
21
|
+
anyOf: Json;
|
|
22
|
+
}
|
|
23
|
+
interface BufferSchema extends TSchema$1 {
|
|
24
|
+
[Kind]: 'Buffer';
|
|
25
|
+
static: Buffer;
|
|
26
|
+
type: 'buffer';
|
|
27
|
+
}
|
|
28
|
+
interface BigIntStringModeSchema extends TSchema$1 {
|
|
29
|
+
[Kind]: 'BigIntStringMode';
|
|
30
|
+
static: string;
|
|
31
|
+
type: 'string';
|
|
32
|
+
}
|
|
33
|
+
type IsNever<T> = [T] extends [never] ? true : false;
|
|
34
|
+
type IsEnumDefined<TEnum extends string[] | undefined> = [string, ...string[]] extends TEnum ? false : undefined extends TEnum ? false : true;
|
|
35
|
+
type ColumnIsGeneratedAlwaysAs<TColumn$1> = TColumn$1 extends Column ? TColumn$1['_']['identity'] extends 'always' ? true : TColumn$1['_'] extends {
|
|
36
|
+
generated: undefined;
|
|
37
|
+
} ? false : TColumn$1['_'] extends {
|
|
38
|
+
generated: {
|
|
39
|
+
type: 'byDefault';
|
|
40
|
+
};
|
|
41
|
+
} ? false : true : false;
|
|
42
|
+
type GetSelection<T extends SelectedFieldsFlat<Column> | Table | View> = T extends Table ? T['_']['columns'] : T extends View ? T['_']['selectedFields'] : T;
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/column.d.ts
|
|
45
|
+
declare const literalSchema: _sinclair_typebox0.TUnion<[_sinclair_typebox0.TString, _sinclair_typebox0.TNumber, _sinclair_typebox0.TBoolean, _sinclair_typebox0.TNull]>;
|
|
46
|
+
declare const jsonSchema: JsonSchema;
|
|
47
|
+
declare const bufferSchema: BufferSchema;
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region src/column.types.d.ts
|
|
50
|
+
type EnumValuesToEnum<TEnumValues extends [string, ...string[]]> = { [K in TEnumValues[number]]: K };
|
|
51
|
+
interface GenericSchema<T> extends _sinclair_typebox0.TSchema {
|
|
52
|
+
static: T;
|
|
53
|
+
}
|
|
54
|
+
type GetArrayDepth<T, Depth extends number = 0> = Depth extends 5 ? 5 : T extends readonly (infer U)[] ? GetArrayDepth<U, [1, 2, 3, 4, 5][Depth]> : Depth;
|
|
55
|
+
type WrapInTArray<TSchema$2 extends _sinclair_typebox0.TSchema, TDepth extends number> = TDepth extends 0 ? TSchema$2 : TDepth extends 1 ? _sinclair_typebox0.TArray<TSchema$2> : TDepth extends 2 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>> : TDepth extends 3 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>>> : TDepth extends 4 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>>>> : TDepth extends 5 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>>>>> : _sinclair_typebox0.TArray<_sinclair_typebox0.TAny>;
|
|
56
|
+
type IsPgArrayColumn<TColumn$1 extends Column, TType extends ColumnTypeData> = TType['type'] extends 'array' ? false : GetArrayDepth<TColumn$1['_']['data']> extends 0 ? false : true;
|
|
57
|
+
type GetTypeboxType<TColumn$1 extends Column, TType extends ColumnTypeData = ExtractColumnTypeData<TColumn$1['_']['dataType']>> = IsPgArrayColumn<TColumn$1, TType> extends true ? WrapInTArray<GetBaseTypeboxType<TColumn$1, TType>, GetArrayDepth<TColumn$1['_']['data']>> : GetBaseTypeboxType<TColumn$1, TType>;
|
|
58
|
+
type GetBaseTypeboxType<TColumn$1 extends Column, TType extends ColumnTypeData = ExtractColumnTypeData<TColumn$1['_']['dataType']>> = TType['type'] extends 'array' ? TType['constraint'] extends 'basecolumn' ? _sinclair_typebox0.TArray<GetTypeboxType<Assume<TColumn$1['_'], {
|
|
59
|
+
baseColumn: Column;
|
|
60
|
+
}>['baseColumn']>> : TType['constraint'] extends 'geometry' | 'point' ? _sinclair_typebox0.TTuple<[_sinclair_typebox0.TNumber, _sinclair_typebox0.TNumber]> : TType['constraint'] extends 'line' ? _sinclair_typebox0.TTuple<[_sinclair_typebox0.TNumber, _sinclair_typebox0.TNumber, _sinclair_typebox0.TNumber]> : TType['constraint'] extends 'vector' | 'halfvector' ? _sinclair_typebox0.TArray<_sinclair_typebox0.TNumber> : TType['constraint'] extends 'int64vector' ? _sinclair_typebox0.TArray<_sinclair_typebox0.TBigInt> : _sinclair_typebox0.TArray<_sinclair_typebox0.TAny> : TType['type'] extends 'object' ? TType['constraint'] extends 'geometry' | 'point' ? _sinclair_typebox0.TObject<{
|
|
61
|
+
x: _sinclair_typebox0.TNumber;
|
|
62
|
+
y: _sinclair_typebox0.TNumber;
|
|
63
|
+
}> : TType['constraint'] extends 'line' ? _sinclair_typebox0.TObject<{
|
|
64
|
+
a: _sinclair_typebox0.TNumber;
|
|
65
|
+
b: _sinclair_typebox0.TNumber;
|
|
66
|
+
c: _sinclair_typebox0.TNumber;
|
|
67
|
+
}> : TType['constraint'] extends 'date' ? _sinclair_typebox0.TDate : TType['constraint'] extends 'buffer' ? BufferSchema : TType['constraint'] extends 'json' ? TColumn$1['_']['data'] extends Record<string, any> ? GenericSchema<TColumn$1['_']['data']> : JsonSchema : _sinclair_typebox0.TObject : TType['type'] extends 'custom' ? _sinclair_typebox0.TAny : TType['type'] extends 'number' ? TType['constraint'] extends 'int8' | 'int16' | 'int24' | 'int32' | 'int53' | 'uint8' | 'uint16' | 'uint24' | 'uint32' | 'uint53' | 'year' ? _sinclair_typebox0.TInteger : _sinclair_typebox0.TNumber : TType['type'] extends 'bigint' ? _sinclair_typebox0.TBigInt : TType['type'] extends 'boolean' ? _sinclair_typebox0.TBoolean : TType['type'] extends 'string' ? TType['constraint'] extends 'binary' | 'varbinary' ? _sinclair_typebox0.TRegExp : TType['constraint'] extends 'int64' ? typeof bigintStringModeSchema : TType['constraint'] extends 'uint64' ? typeof unsignedBigintStringModeSchema : TType['constraint'] extends 'enum' ? _sinclair_typebox0.TEnum<{ [K in Assume<TColumn$1['_']['enumValues'], string[]>[number]]: K }> : _sinclair_typebox0.TString : _sinclair_typebox0.TAny;
|
|
68
|
+
type HandleSelectColumn<TSchema$2 extends _sinclair_typebox0.TSchema, TColumn$1 extends Column> = TColumn$1['_']['notNull'] extends true ? TSchema$2 : _sinclair_typebox0.Union<[TSchema$2, _sinclair_typebox0.TNull]>;
|
|
69
|
+
type HandleInsertColumn<TSchema$2 extends _sinclair_typebox0.TSchema, TColumn$1 extends Column> = TColumn$1['_']['notNull'] extends true ? TColumn$1['_']['hasDefault'] extends true ? _sinclair_typebox0.TOptional<TSchema$2> : TSchema$2 : _sinclair_typebox0.TOptional<_sinclair_typebox0.Union<[TSchema$2, _sinclair_typebox0.TNull]>>;
|
|
70
|
+
type HandleUpdateColumn<TSchema$2 extends _sinclair_typebox0.TSchema, TColumn$1 extends Column> = TColumn$1['_']['notNull'] extends true ? _sinclair_typebox0.TOptional<TSchema$2> : _sinclair_typebox0.TOptional<_sinclair_typebox0.Union<[TSchema$2, _sinclair_typebox0.TNull]>>;
|
|
71
|
+
type HandleColumn<TType extends 'select' | 'insert' | 'update', TColumn$1 extends Column> = TType extends 'select' ? HandleSelectColumn<GetTypeboxType<TColumn$1>, TColumn$1> : TType extends 'insert' ? HandleInsertColumn<GetTypeboxType<TColumn$1>, TColumn$1> : TType extends 'update' ? HandleUpdateColumn<GetTypeboxType<TColumn$1>, TColumn$1> : GetTypeboxType<TColumn$1>;
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/schema.types.internal.d.ts
|
|
74
|
+
interface Conditions {
|
|
75
|
+
never: (column?: Column) => boolean;
|
|
76
|
+
optional: (column: Column) => boolean;
|
|
77
|
+
nullable: (column: Column) => boolean;
|
|
78
|
+
}
|
|
79
|
+
type BuildRefineField<T> = T extends _sinclair_typebox0.TSchema ? ((schema: T) => _sinclair_typebox0.TSchema) | _sinclair_typebox0.TSchema : never;
|
|
80
|
+
type BuildRefine<TColumns extends Record<string, any>> = { [K in keyof TColumns as TColumns[K] extends Column | SelectedFieldsFlat<Column> | Table | View ? K : never]?: TColumns[K] extends Column ? BuildRefineField<GetTypeboxType<TColumns[K]>> : BuildRefine<GetSelection<TColumns[K]>> };
|
|
81
|
+
type HandleRefinement<TType extends 'select' | 'insert' | 'update', TRefinement, TColumn$1 extends Column> = TRefinement extends ((schema: any) => _sinclair_typebox0.TSchema) ? (TColumn$1['_']['notNull'] extends true ? ReturnType<TRefinement> : _sinclair_typebox0.TUnion<[ReturnType<TRefinement>, _sinclair_typebox0.TNull]>) extends infer TSchema ? TType extends 'update' ? _sinclair_typebox0.TOptional<Assume<TSchema, _sinclair_typebox0.TSchema>> : TSchema : _sinclair_typebox0.TSchema : TRefinement;
|
|
82
|
+
type IsRefinementDefined<TRefinements extends Record<string | symbol | number, any> | undefined, TKey extends string | symbol | number> = TRefinements extends object ? TRefinements[TKey] extends _sinclair_typebox0.TSchema | ((schema: any) => any) ? true : false : false;
|
|
83
|
+
type BuildSchema<TType extends 'select' | 'insert' | 'update', TColumns extends Record<string, any>, TRefinements extends Record<string, any> | undefined> = _sinclair_typebox0.TObject<Simplify<{ [K in keyof TColumns as ColumnIsGeneratedAlwaysAs<TColumns[K]> extends true ? TType extends 'select' ? K : never : K]: TColumns[K] extends infer TColumn extends Column ? IsRefinementDefined<TRefinements, K> extends true ? Assume<HandleRefinement<TType, TRefinements[K & keyof TRefinements], TColumn>, _sinclair_typebox0.TSchema> : HandleColumn<TType, TColumn> : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<TType, GetSelection<TObject>, TRefinements extends object ? TRefinements[K & keyof TRefinements] : undefined> : _sinclair_typebox0.TAny }>>;
|
|
84
|
+
type NoUnknownKeys<TRefinement extends Record<string, any>, TCompare extends Record<string, any>> = { [K in keyof TRefinement]: K extends keyof TCompare ? TRefinement[K] extends _sinclair_typebox0.TSchema ? TRefinement[K] : TRefinement[K] extends Record<string, _sinclair_typebox0.TSchema> ? NoUnknownKeys<TRefinement[K], TCompare[K]> : TRefinement[K] : DrizzleTypeError<`Found unknown key in refinement: "${K & string}"`> };
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/schema.types.d.ts
|
|
87
|
+
interface CreateSelectSchema {
|
|
88
|
+
<TTable extends Table>(table: TTable): BuildSchema<'select', TTable['_']['columns'], undefined>;
|
|
89
|
+
<TTable extends Table, TRefine extends BuildRefine<TTable['_']['columns']>>(table: TTable, refine?: NoUnknownKeys<TRefine, InferSelectModel<TTable>>): BuildSchema<'select', TTable['_']['columns'], TRefine>;
|
|
90
|
+
<TView extends View>(view: TView): BuildSchema<'select', TView['_']['selectedFields'], undefined>;
|
|
91
|
+
<TView extends View, TRefine extends BuildRefine<TView['_']['selectedFields']>>(view: TView, refine: NoUnknownKeys<TRefine, TView['$inferSelect']>): BuildSchema<'select', TView['_']['selectedFields'], TRefine>;
|
|
92
|
+
<TEnum extends PgEnum<any> | CockroachEnum<any>>(enum_: TEnum): _sinclair_typebox0.TEnum<EnumValuesToEnum<TEnum['enumValues']>>;
|
|
93
|
+
}
|
|
94
|
+
interface CreateInsertSchema {
|
|
95
|
+
<TTable extends Table>(table: TTable): BuildSchema<'insert', TTable['_']['columns'], undefined>;
|
|
96
|
+
<TTable extends Table, TRefine extends BuildRefine<Pick<TTable['_']['columns'], keyof InferInsertModel<TTable>>>>(table: TTable, refine?: NoUnknownKeys<TRefine, InferInsertModel<TTable>>): BuildSchema<'insert', TTable['_']['columns'], TRefine>;
|
|
97
|
+
}
|
|
98
|
+
interface CreateUpdateSchema {
|
|
99
|
+
<TTable extends Table>(table: TTable): BuildSchema<'update', TTable['_']['columns'], undefined>;
|
|
100
|
+
<TTable extends Table, TRefine extends BuildRefine<Pick<TTable['_']['columns'], keyof InferInsertModel<TTable>>>>(table: TTable, refine?: TRefine): BuildSchema<'update', TTable['_']['columns'], TRefine>;
|
|
101
|
+
}
|
|
102
|
+
interface CreateSchemaFactoryOptions {
|
|
103
|
+
typeboxInstance?: any;
|
|
104
|
+
}
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/schema.d.ts
|
|
107
|
+
declare function getColumns(tableLike: Table | View): drizzle_orm0.ColumnsSelection;
|
|
108
|
+
declare function handleColumns(columns: Record<string, any>, refinements: Record<string, any>, conditions: Conditions, factory?: CreateSchemaFactoryOptions): TSchema$1;
|
|
109
|
+
declare function handleEnum(enum_: PgEnum<any>, factory?: CreateSchemaFactoryOptions): _sinclair_typebox0.TEnum<{
|
|
110
|
+
[k: string]: string;
|
|
111
|
+
}>;
|
|
112
|
+
declare const createSelectSchema: CreateSelectSchema;
|
|
113
|
+
declare const createInsertSchema: CreateInsertSchema;
|
|
114
|
+
declare const createUpdateSchema: CreateUpdateSchema;
|
|
115
|
+
declare function createSchemaFactory(options?: CreateSchemaFactoryOptions): {
|
|
116
|
+
createSelectSchema: CreateSelectSchema;
|
|
117
|
+
createInsertSchema: CreateInsertSchema;
|
|
118
|
+
createUpdateSchema: CreateUpdateSchema;
|
|
119
|
+
};
|
|
120
|
+
//#endregion
|
|
121
|
+
export { BigIntStringModeSchema, BufferSchema, BuildRefine, BuildSchema, ColumnIsGeneratedAlwaysAs, Conditions, CreateInsertSchema, CreateSchemaFactoryOptions, CreateSelectSchema, CreateUpdateSchema, EnumValuesToEnum, GenericSchema, GetSelection, GetTypeboxType, HandleColumn, IsEnumDefined, IsNever, Json, JsonSchema, NoUnknownKeys, bufferSchema, createInsertSchema, createSchemaFactory, createSelectSchema, createUpdateSchema, getColumns, handleColumns, handleEnum, isColumnType, isPgEnum, isWithEnum, jsonSchema, literalSchema };
|
|
122
|
+
//# sourceMappingURL=index.d.cts.map
|
package/index.d.mts
CHANGED
|
@@ -1,6 +1,122 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import * as _sinclair_typebox0 from "@sinclair/typebox";
|
|
2
|
+
import { Kind, Static, TSchema as TSchema$1, Type } from "@sinclair/typebox";
|
|
3
|
+
import * as drizzle_orm0 from "drizzle-orm";
|
|
4
|
+
import { Assume, Column, ColumnTypeData, DrizzleTypeError, ExtractColumnTypeData, InferInsertModel, InferSelectModel, SelectedFieldsFlat, Simplify, Table, View } from "drizzle-orm";
|
|
5
|
+
import { PgEnum } from "drizzle-orm/pg-core";
|
|
6
|
+
import { CockroachEnum } from "drizzle-orm/cockroach-core";
|
|
7
|
+
|
|
8
|
+
//#region src/utils.d.ts
|
|
9
|
+
declare function isColumnType<T extends Column>(column: Column, columnTypes: string[]): column is T;
|
|
10
|
+
declare function isWithEnum(column: Column): column is typeof column & {
|
|
11
|
+
enumValues: [string, ...string[]];
|
|
12
|
+
};
|
|
13
|
+
declare const isPgEnum: (entity: any) => entity is PgEnum<[string, ...string[]]>;
|
|
14
|
+
type Literal = Static<typeof literalSchema>;
|
|
15
|
+
type Json = Literal | {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
} | any[];
|
|
18
|
+
interface JsonSchema extends TSchema$1 {
|
|
19
|
+
[Kind]: 'Union';
|
|
20
|
+
static: Json;
|
|
21
|
+
anyOf: Json;
|
|
22
|
+
}
|
|
23
|
+
interface BufferSchema extends TSchema$1 {
|
|
24
|
+
[Kind]: 'Buffer';
|
|
25
|
+
static: Buffer;
|
|
26
|
+
type: 'buffer';
|
|
27
|
+
}
|
|
28
|
+
interface BigIntStringModeSchema extends TSchema$1 {
|
|
29
|
+
[Kind]: 'BigIntStringMode';
|
|
30
|
+
static: string;
|
|
31
|
+
type: 'string';
|
|
32
|
+
}
|
|
33
|
+
type IsNever<T> = [T] extends [never] ? true : false;
|
|
34
|
+
type IsEnumDefined<TEnum extends string[] | undefined> = [string, ...string[]] extends TEnum ? false : undefined extends TEnum ? false : true;
|
|
35
|
+
type ColumnIsGeneratedAlwaysAs<TColumn$1> = TColumn$1 extends Column ? TColumn$1['_']['identity'] extends 'always' ? true : TColumn$1['_'] extends {
|
|
36
|
+
generated: undefined;
|
|
37
|
+
} ? false : TColumn$1['_'] extends {
|
|
38
|
+
generated: {
|
|
39
|
+
type: 'byDefault';
|
|
40
|
+
};
|
|
41
|
+
} ? false : true : false;
|
|
42
|
+
type GetSelection<T extends SelectedFieldsFlat<Column> | Table | View> = T extends Table ? T['_']['columns'] : T extends View ? T['_']['selectedFields'] : T;
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/column.d.ts
|
|
45
|
+
declare const literalSchema: _sinclair_typebox0.TUnion<[_sinclair_typebox0.TString, _sinclair_typebox0.TNumber, _sinclair_typebox0.TBoolean, _sinclair_typebox0.TNull]>;
|
|
46
|
+
declare const jsonSchema: JsonSchema;
|
|
47
|
+
declare const bufferSchema: BufferSchema;
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region src/column.types.d.ts
|
|
50
|
+
type EnumValuesToEnum<TEnumValues extends [string, ...string[]]> = { [K in TEnumValues[number]]: K };
|
|
51
|
+
interface GenericSchema<T> extends _sinclair_typebox0.TSchema {
|
|
52
|
+
static: T;
|
|
53
|
+
}
|
|
54
|
+
type GetArrayDepth<T, Depth extends number = 0> = Depth extends 5 ? 5 : T extends readonly (infer U)[] ? GetArrayDepth<U, [1, 2, 3, 4, 5][Depth]> : Depth;
|
|
55
|
+
type WrapInTArray<TSchema$2 extends _sinclair_typebox0.TSchema, TDepth extends number> = TDepth extends 0 ? TSchema$2 : TDepth extends 1 ? _sinclair_typebox0.TArray<TSchema$2> : TDepth extends 2 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>> : TDepth extends 3 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>>> : TDepth extends 4 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>>>> : TDepth extends 5 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>>>>> : _sinclair_typebox0.TArray<_sinclair_typebox0.TAny>;
|
|
56
|
+
type IsPgArrayColumn<TColumn$1 extends Column, TType extends ColumnTypeData> = TType['type'] extends 'array' ? false : GetArrayDepth<TColumn$1['_']['data']> extends 0 ? false : true;
|
|
57
|
+
type GetTypeboxType<TColumn$1 extends Column, TType extends ColumnTypeData = ExtractColumnTypeData<TColumn$1['_']['dataType']>> = IsPgArrayColumn<TColumn$1, TType> extends true ? WrapInTArray<GetBaseTypeboxType<TColumn$1, TType>, GetArrayDepth<TColumn$1['_']['data']>> : GetBaseTypeboxType<TColumn$1, TType>;
|
|
58
|
+
type GetBaseTypeboxType<TColumn$1 extends Column, TType extends ColumnTypeData = ExtractColumnTypeData<TColumn$1['_']['dataType']>> = TType['type'] extends 'array' ? TType['constraint'] extends 'basecolumn' ? _sinclair_typebox0.TArray<GetTypeboxType<Assume<TColumn$1['_'], {
|
|
59
|
+
baseColumn: Column;
|
|
60
|
+
}>['baseColumn']>> : TType['constraint'] extends 'geometry' | 'point' ? _sinclair_typebox0.TTuple<[_sinclair_typebox0.TNumber, _sinclair_typebox0.TNumber]> : TType['constraint'] extends 'line' ? _sinclair_typebox0.TTuple<[_sinclair_typebox0.TNumber, _sinclair_typebox0.TNumber, _sinclair_typebox0.TNumber]> : TType['constraint'] extends 'vector' | 'halfvector' ? _sinclair_typebox0.TArray<_sinclair_typebox0.TNumber> : TType['constraint'] extends 'int64vector' ? _sinclair_typebox0.TArray<_sinclair_typebox0.TBigInt> : _sinclair_typebox0.TArray<_sinclair_typebox0.TAny> : TType['type'] extends 'object' ? TType['constraint'] extends 'geometry' | 'point' ? _sinclair_typebox0.TObject<{
|
|
61
|
+
x: _sinclair_typebox0.TNumber;
|
|
62
|
+
y: _sinclair_typebox0.TNumber;
|
|
63
|
+
}> : TType['constraint'] extends 'line' ? _sinclair_typebox0.TObject<{
|
|
64
|
+
a: _sinclair_typebox0.TNumber;
|
|
65
|
+
b: _sinclair_typebox0.TNumber;
|
|
66
|
+
c: _sinclair_typebox0.TNumber;
|
|
67
|
+
}> : TType['constraint'] extends 'date' ? _sinclair_typebox0.TDate : TType['constraint'] extends 'buffer' ? BufferSchema : TType['constraint'] extends 'json' ? TColumn$1['_']['data'] extends Record<string, any> ? GenericSchema<TColumn$1['_']['data']> : JsonSchema : _sinclair_typebox0.TObject : TType['type'] extends 'custom' ? _sinclair_typebox0.TAny : TType['type'] extends 'number' ? TType['constraint'] extends 'int8' | 'int16' | 'int24' | 'int32' | 'int53' | 'uint8' | 'uint16' | 'uint24' | 'uint32' | 'uint53' | 'year' ? _sinclair_typebox0.TInteger : _sinclair_typebox0.TNumber : TType['type'] extends 'bigint' ? _sinclair_typebox0.TBigInt : TType['type'] extends 'boolean' ? _sinclair_typebox0.TBoolean : TType['type'] extends 'string' ? TType['constraint'] extends 'binary' | 'varbinary' ? _sinclair_typebox0.TRegExp : TType['constraint'] extends 'int64' ? typeof bigintStringModeSchema : TType['constraint'] extends 'uint64' ? typeof unsignedBigintStringModeSchema : TType['constraint'] extends 'enum' ? _sinclair_typebox0.TEnum<{ [K in Assume<TColumn$1['_']['enumValues'], string[]>[number]]: K }> : _sinclair_typebox0.TString : _sinclair_typebox0.TAny;
|
|
68
|
+
type HandleSelectColumn<TSchema$2 extends _sinclair_typebox0.TSchema, TColumn$1 extends Column> = TColumn$1['_']['notNull'] extends true ? TSchema$2 : _sinclair_typebox0.Union<[TSchema$2, _sinclair_typebox0.TNull]>;
|
|
69
|
+
type HandleInsertColumn<TSchema$2 extends _sinclair_typebox0.TSchema, TColumn$1 extends Column> = TColumn$1['_']['notNull'] extends true ? TColumn$1['_']['hasDefault'] extends true ? _sinclair_typebox0.TOptional<TSchema$2> : TSchema$2 : _sinclair_typebox0.TOptional<_sinclair_typebox0.Union<[TSchema$2, _sinclair_typebox0.TNull]>>;
|
|
70
|
+
type HandleUpdateColumn<TSchema$2 extends _sinclair_typebox0.TSchema, TColumn$1 extends Column> = TColumn$1['_']['notNull'] extends true ? _sinclair_typebox0.TOptional<TSchema$2> : _sinclair_typebox0.TOptional<_sinclair_typebox0.Union<[TSchema$2, _sinclair_typebox0.TNull]>>;
|
|
71
|
+
type HandleColumn<TType extends 'select' | 'insert' | 'update', TColumn$1 extends Column> = TType extends 'select' ? HandleSelectColumn<GetTypeboxType<TColumn$1>, TColumn$1> : TType extends 'insert' ? HandleInsertColumn<GetTypeboxType<TColumn$1>, TColumn$1> : TType extends 'update' ? HandleUpdateColumn<GetTypeboxType<TColumn$1>, TColumn$1> : GetTypeboxType<TColumn$1>;
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/schema.types.internal.d.ts
|
|
74
|
+
interface Conditions {
|
|
75
|
+
never: (column?: Column) => boolean;
|
|
76
|
+
optional: (column: Column) => boolean;
|
|
77
|
+
nullable: (column: Column) => boolean;
|
|
78
|
+
}
|
|
79
|
+
type BuildRefineField<T> = T extends _sinclair_typebox0.TSchema ? ((schema: T) => _sinclair_typebox0.TSchema) | _sinclair_typebox0.TSchema : never;
|
|
80
|
+
type BuildRefine<TColumns extends Record<string, any>> = { [K in keyof TColumns as TColumns[K] extends Column | SelectedFieldsFlat<Column> | Table | View ? K : never]?: TColumns[K] extends Column ? BuildRefineField<GetTypeboxType<TColumns[K]>> : BuildRefine<GetSelection<TColumns[K]>> };
|
|
81
|
+
type HandleRefinement<TType extends 'select' | 'insert' | 'update', TRefinement, TColumn$1 extends Column> = TRefinement extends ((schema: any) => _sinclair_typebox0.TSchema) ? (TColumn$1['_']['notNull'] extends true ? ReturnType<TRefinement> : _sinclair_typebox0.TUnion<[ReturnType<TRefinement>, _sinclair_typebox0.TNull]>) extends infer TSchema ? TType extends 'update' ? _sinclair_typebox0.TOptional<Assume<TSchema, _sinclair_typebox0.TSchema>> : TSchema : _sinclair_typebox0.TSchema : TRefinement;
|
|
82
|
+
type IsRefinementDefined<TRefinements extends Record<string | symbol | number, any> | undefined, TKey extends string | symbol | number> = TRefinements extends object ? TRefinements[TKey] extends _sinclair_typebox0.TSchema | ((schema: any) => any) ? true : false : false;
|
|
83
|
+
type BuildSchema<TType extends 'select' | 'insert' | 'update', TColumns extends Record<string, any>, TRefinements extends Record<string, any> | undefined> = _sinclair_typebox0.TObject<Simplify<{ [K in keyof TColumns as ColumnIsGeneratedAlwaysAs<TColumns[K]> extends true ? TType extends 'select' ? K : never : K]: TColumns[K] extends infer TColumn extends Column ? IsRefinementDefined<TRefinements, K> extends true ? Assume<HandleRefinement<TType, TRefinements[K & keyof TRefinements], TColumn>, _sinclair_typebox0.TSchema> : HandleColumn<TType, TColumn> : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<TType, GetSelection<TObject>, TRefinements extends object ? TRefinements[K & keyof TRefinements] : undefined> : _sinclair_typebox0.TAny }>>;
|
|
84
|
+
type NoUnknownKeys<TRefinement extends Record<string, any>, TCompare extends Record<string, any>> = { [K in keyof TRefinement]: K extends keyof TCompare ? TRefinement[K] extends _sinclair_typebox0.TSchema ? TRefinement[K] : TRefinement[K] extends Record<string, _sinclair_typebox0.TSchema> ? NoUnknownKeys<TRefinement[K], TCompare[K]> : TRefinement[K] : DrizzleTypeError<`Found unknown key in refinement: "${K & string}"`> };
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/schema.types.d.ts
|
|
87
|
+
interface CreateSelectSchema {
|
|
88
|
+
<TTable extends Table>(table: TTable): BuildSchema<'select', TTable['_']['columns'], undefined>;
|
|
89
|
+
<TTable extends Table, TRefine extends BuildRefine<TTable['_']['columns']>>(table: TTable, refine?: NoUnknownKeys<TRefine, InferSelectModel<TTable>>): BuildSchema<'select', TTable['_']['columns'], TRefine>;
|
|
90
|
+
<TView extends View>(view: TView): BuildSchema<'select', TView['_']['selectedFields'], undefined>;
|
|
91
|
+
<TView extends View, TRefine extends BuildRefine<TView['_']['selectedFields']>>(view: TView, refine: NoUnknownKeys<TRefine, TView['$inferSelect']>): BuildSchema<'select', TView['_']['selectedFields'], TRefine>;
|
|
92
|
+
<TEnum extends PgEnum<any> | CockroachEnum<any>>(enum_: TEnum): _sinclair_typebox0.TEnum<EnumValuesToEnum<TEnum['enumValues']>>;
|
|
93
|
+
}
|
|
94
|
+
interface CreateInsertSchema {
|
|
95
|
+
<TTable extends Table>(table: TTable): BuildSchema<'insert', TTable['_']['columns'], undefined>;
|
|
96
|
+
<TTable extends Table, TRefine extends BuildRefine<Pick<TTable['_']['columns'], keyof InferInsertModel<TTable>>>>(table: TTable, refine?: NoUnknownKeys<TRefine, InferInsertModel<TTable>>): BuildSchema<'insert', TTable['_']['columns'], TRefine>;
|
|
97
|
+
}
|
|
98
|
+
interface CreateUpdateSchema {
|
|
99
|
+
<TTable extends Table>(table: TTable): BuildSchema<'update', TTable['_']['columns'], undefined>;
|
|
100
|
+
<TTable extends Table, TRefine extends BuildRefine<Pick<TTable['_']['columns'], keyof InferInsertModel<TTable>>>>(table: TTable, refine?: TRefine): BuildSchema<'update', TTable['_']['columns'], TRefine>;
|
|
101
|
+
}
|
|
102
|
+
interface CreateSchemaFactoryOptions {
|
|
103
|
+
typeboxInstance?: any;
|
|
104
|
+
}
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/schema.d.ts
|
|
107
|
+
declare function getColumns(tableLike: Table | View): drizzle_orm0.ColumnsSelection;
|
|
108
|
+
declare function handleColumns(columns: Record<string, any>, refinements: Record<string, any>, conditions: Conditions, factory?: CreateSchemaFactoryOptions): TSchema$1;
|
|
109
|
+
declare function handleEnum(enum_: PgEnum<any>, factory?: CreateSchemaFactoryOptions): _sinclair_typebox0.TEnum<{
|
|
110
|
+
[k: string]: string;
|
|
111
|
+
}>;
|
|
112
|
+
declare const createSelectSchema: CreateSelectSchema;
|
|
113
|
+
declare const createInsertSchema: CreateInsertSchema;
|
|
114
|
+
declare const createUpdateSchema: CreateUpdateSchema;
|
|
115
|
+
declare function createSchemaFactory(options?: CreateSchemaFactoryOptions): {
|
|
116
|
+
createSelectSchema: CreateSelectSchema;
|
|
117
|
+
createInsertSchema: CreateInsertSchema;
|
|
118
|
+
createUpdateSchema: CreateUpdateSchema;
|
|
119
|
+
};
|
|
120
|
+
//#endregion
|
|
121
|
+
export { BigIntStringModeSchema, BufferSchema, BuildRefine, BuildSchema, ColumnIsGeneratedAlwaysAs, Conditions, CreateInsertSchema, CreateSchemaFactoryOptions, CreateSelectSchema, CreateUpdateSchema, EnumValuesToEnum, GenericSchema, GetSelection, GetTypeboxType, HandleColumn, IsEnumDefined, IsNever, Json, JsonSchema, NoUnknownKeys, bufferSchema, createInsertSchema, createSchemaFactory, createSelectSchema, createUpdateSchema, getColumns, handleColumns, handleEnum, isColumnType, isPgEnum, isWithEnum, jsonSchema, literalSchema };
|
|
122
|
+
//# sourceMappingURL=index.d.mts.map
|
package/index.d.ts
CHANGED
|
@@ -1,6 +1,122 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import * as _sinclair_typebox0 from "@sinclair/typebox";
|
|
2
|
+
import { Kind, Static, TSchema as TSchema$1, Type } from "@sinclair/typebox";
|
|
3
|
+
import * as drizzle_orm0 from "drizzle-orm";
|
|
4
|
+
import { Assume, Column, ColumnTypeData, DrizzleTypeError, ExtractColumnTypeData, InferInsertModel, InferSelectModel, SelectedFieldsFlat, Simplify, Table, View } from "drizzle-orm";
|
|
5
|
+
import { PgEnum } from "drizzle-orm/pg-core";
|
|
6
|
+
import { CockroachEnum } from "drizzle-orm/cockroach-core";
|
|
7
|
+
|
|
8
|
+
//#region src/utils.d.ts
|
|
9
|
+
declare function isColumnType<T extends Column>(column: Column, columnTypes: string[]): column is T;
|
|
10
|
+
declare function isWithEnum(column: Column): column is typeof column & {
|
|
11
|
+
enumValues: [string, ...string[]];
|
|
12
|
+
};
|
|
13
|
+
declare const isPgEnum: (entity: any) => entity is PgEnum<[string, ...string[]]>;
|
|
14
|
+
type Literal = Static<typeof literalSchema>;
|
|
15
|
+
type Json = Literal | {
|
|
16
|
+
[key: string]: any;
|
|
17
|
+
} | any[];
|
|
18
|
+
interface JsonSchema extends TSchema$1 {
|
|
19
|
+
[Kind]: 'Union';
|
|
20
|
+
static: Json;
|
|
21
|
+
anyOf: Json;
|
|
22
|
+
}
|
|
23
|
+
interface BufferSchema extends TSchema$1 {
|
|
24
|
+
[Kind]: 'Buffer';
|
|
25
|
+
static: Buffer;
|
|
26
|
+
type: 'buffer';
|
|
27
|
+
}
|
|
28
|
+
interface BigIntStringModeSchema extends TSchema$1 {
|
|
29
|
+
[Kind]: 'BigIntStringMode';
|
|
30
|
+
static: string;
|
|
31
|
+
type: 'string';
|
|
32
|
+
}
|
|
33
|
+
type IsNever<T> = [T] extends [never] ? true : false;
|
|
34
|
+
type IsEnumDefined<TEnum extends string[] | undefined> = [string, ...string[]] extends TEnum ? false : undefined extends TEnum ? false : true;
|
|
35
|
+
type ColumnIsGeneratedAlwaysAs<TColumn$1> = TColumn$1 extends Column ? TColumn$1['_']['identity'] extends 'always' ? true : TColumn$1['_'] extends {
|
|
36
|
+
generated: undefined;
|
|
37
|
+
} ? false : TColumn$1['_'] extends {
|
|
38
|
+
generated: {
|
|
39
|
+
type: 'byDefault';
|
|
40
|
+
};
|
|
41
|
+
} ? false : true : false;
|
|
42
|
+
type GetSelection<T extends SelectedFieldsFlat<Column> | Table | View> = T extends Table ? T['_']['columns'] : T extends View ? T['_']['selectedFields'] : T;
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/column.d.ts
|
|
45
|
+
declare const literalSchema: _sinclair_typebox0.TUnion<[_sinclair_typebox0.TString, _sinclair_typebox0.TNumber, _sinclair_typebox0.TBoolean, _sinclair_typebox0.TNull]>;
|
|
46
|
+
declare const jsonSchema: JsonSchema;
|
|
47
|
+
declare const bufferSchema: BufferSchema;
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region src/column.types.d.ts
|
|
50
|
+
type EnumValuesToEnum<TEnumValues extends [string, ...string[]]> = { [K in TEnumValues[number]]: K };
|
|
51
|
+
interface GenericSchema<T> extends _sinclair_typebox0.TSchema {
|
|
52
|
+
static: T;
|
|
53
|
+
}
|
|
54
|
+
type GetArrayDepth<T, Depth extends number = 0> = Depth extends 5 ? 5 : T extends readonly (infer U)[] ? GetArrayDepth<U, [1, 2, 3, 4, 5][Depth]> : Depth;
|
|
55
|
+
type WrapInTArray<TSchema$2 extends _sinclair_typebox0.TSchema, TDepth extends number> = TDepth extends 0 ? TSchema$2 : TDepth extends 1 ? _sinclair_typebox0.TArray<TSchema$2> : TDepth extends 2 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>> : TDepth extends 3 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>>> : TDepth extends 4 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>>>> : TDepth extends 5 ? _sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<_sinclair_typebox0.TArray<TSchema$2>>>>> : _sinclair_typebox0.TArray<_sinclair_typebox0.TAny>;
|
|
56
|
+
type IsPgArrayColumn<TColumn$1 extends Column, TType extends ColumnTypeData> = TType['type'] extends 'array' ? false : GetArrayDepth<TColumn$1['_']['data']> extends 0 ? false : true;
|
|
57
|
+
type GetTypeboxType<TColumn$1 extends Column, TType extends ColumnTypeData = ExtractColumnTypeData<TColumn$1['_']['dataType']>> = IsPgArrayColumn<TColumn$1, TType> extends true ? WrapInTArray<GetBaseTypeboxType<TColumn$1, TType>, GetArrayDepth<TColumn$1['_']['data']>> : GetBaseTypeboxType<TColumn$1, TType>;
|
|
58
|
+
type GetBaseTypeboxType<TColumn$1 extends Column, TType extends ColumnTypeData = ExtractColumnTypeData<TColumn$1['_']['dataType']>> = TType['type'] extends 'array' ? TType['constraint'] extends 'basecolumn' ? _sinclair_typebox0.TArray<GetTypeboxType<Assume<TColumn$1['_'], {
|
|
59
|
+
baseColumn: Column;
|
|
60
|
+
}>['baseColumn']>> : TType['constraint'] extends 'geometry' | 'point' ? _sinclair_typebox0.TTuple<[_sinclair_typebox0.TNumber, _sinclair_typebox0.TNumber]> : TType['constraint'] extends 'line' ? _sinclair_typebox0.TTuple<[_sinclair_typebox0.TNumber, _sinclair_typebox0.TNumber, _sinclair_typebox0.TNumber]> : TType['constraint'] extends 'vector' | 'halfvector' ? _sinclair_typebox0.TArray<_sinclair_typebox0.TNumber> : TType['constraint'] extends 'int64vector' ? _sinclair_typebox0.TArray<_sinclair_typebox0.TBigInt> : _sinclair_typebox0.TArray<_sinclair_typebox0.TAny> : TType['type'] extends 'object' ? TType['constraint'] extends 'geometry' | 'point' ? _sinclair_typebox0.TObject<{
|
|
61
|
+
x: _sinclair_typebox0.TNumber;
|
|
62
|
+
y: _sinclair_typebox0.TNumber;
|
|
63
|
+
}> : TType['constraint'] extends 'line' ? _sinclair_typebox0.TObject<{
|
|
64
|
+
a: _sinclair_typebox0.TNumber;
|
|
65
|
+
b: _sinclair_typebox0.TNumber;
|
|
66
|
+
c: _sinclair_typebox0.TNumber;
|
|
67
|
+
}> : TType['constraint'] extends 'date' ? _sinclair_typebox0.TDate : TType['constraint'] extends 'buffer' ? BufferSchema : TType['constraint'] extends 'json' ? TColumn$1['_']['data'] extends Record<string, any> ? GenericSchema<TColumn$1['_']['data']> : JsonSchema : _sinclair_typebox0.TObject : TType['type'] extends 'custom' ? _sinclair_typebox0.TAny : TType['type'] extends 'number' ? TType['constraint'] extends 'int8' | 'int16' | 'int24' | 'int32' | 'int53' | 'uint8' | 'uint16' | 'uint24' | 'uint32' | 'uint53' | 'year' ? _sinclair_typebox0.TInteger : _sinclair_typebox0.TNumber : TType['type'] extends 'bigint' ? _sinclair_typebox0.TBigInt : TType['type'] extends 'boolean' ? _sinclair_typebox0.TBoolean : TType['type'] extends 'string' ? TType['constraint'] extends 'binary' | 'varbinary' ? _sinclair_typebox0.TRegExp : TType['constraint'] extends 'int64' ? typeof bigintStringModeSchema : TType['constraint'] extends 'uint64' ? typeof unsignedBigintStringModeSchema : TType['constraint'] extends 'enum' ? _sinclair_typebox0.TEnum<{ [K in Assume<TColumn$1['_']['enumValues'], string[]>[number]]: K }> : _sinclair_typebox0.TString : _sinclair_typebox0.TAny;
|
|
68
|
+
type HandleSelectColumn<TSchema$2 extends _sinclair_typebox0.TSchema, TColumn$1 extends Column> = TColumn$1['_']['notNull'] extends true ? TSchema$2 : _sinclair_typebox0.Union<[TSchema$2, _sinclair_typebox0.TNull]>;
|
|
69
|
+
type HandleInsertColumn<TSchema$2 extends _sinclair_typebox0.TSchema, TColumn$1 extends Column> = TColumn$1['_']['notNull'] extends true ? TColumn$1['_']['hasDefault'] extends true ? _sinclair_typebox0.TOptional<TSchema$2> : TSchema$2 : _sinclair_typebox0.TOptional<_sinclair_typebox0.Union<[TSchema$2, _sinclair_typebox0.TNull]>>;
|
|
70
|
+
type HandleUpdateColumn<TSchema$2 extends _sinclair_typebox0.TSchema, TColumn$1 extends Column> = TColumn$1['_']['notNull'] extends true ? _sinclair_typebox0.TOptional<TSchema$2> : _sinclair_typebox0.TOptional<_sinclair_typebox0.Union<[TSchema$2, _sinclair_typebox0.TNull]>>;
|
|
71
|
+
type HandleColumn<TType extends 'select' | 'insert' | 'update', TColumn$1 extends Column> = TType extends 'select' ? HandleSelectColumn<GetTypeboxType<TColumn$1>, TColumn$1> : TType extends 'insert' ? HandleInsertColumn<GetTypeboxType<TColumn$1>, TColumn$1> : TType extends 'update' ? HandleUpdateColumn<GetTypeboxType<TColumn$1>, TColumn$1> : GetTypeboxType<TColumn$1>;
|
|
72
|
+
//#endregion
|
|
73
|
+
//#region src/schema.types.internal.d.ts
|
|
74
|
+
interface Conditions {
|
|
75
|
+
never: (column?: Column) => boolean;
|
|
76
|
+
optional: (column: Column) => boolean;
|
|
77
|
+
nullable: (column: Column) => boolean;
|
|
78
|
+
}
|
|
79
|
+
type BuildRefineField<T> = T extends _sinclair_typebox0.TSchema ? ((schema: T) => _sinclair_typebox0.TSchema) | _sinclair_typebox0.TSchema : never;
|
|
80
|
+
type BuildRefine<TColumns extends Record<string, any>> = { [K in keyof TColumns as TColumns[K] extends Column | SelectedFieldsFlat<Column> | Table | View ? K : never]?: TColumns[K] extends Column ? BuildRefineField<GetTypeboxType<TColumns[K]>> : BuildRefine<GetSelection<TColumns[K]>> };
|
|
81
|
+
type HandleRefinement<TType extends 'select' | 'insert' | 'update', TRefinement, TColumn$1 extends Column> = TRefinement extends ((schema: any) => _sinclair_typebox0.TSchema) ? (TColumn$1['_']['notNull'] extends true ? ReturnType<TRefinement> : _sinclair_typebox0.TUnion<[ReturnType<TRefinement>, _sinclair_typebox0.TNull]>) extends infer TSchema ? TType extends 'update' ? _sinclair_typebox0.TOptional<Assume<TSchema, _sinclair_typebox0.TSchema>> : TSchema : _sinclair_typebox0.TSchema : TRefinement;
|
|
82
|
+
type IsRefinementDefined<TRefinements extends Record<string | symbol | number, any> | undefined, TKey extends string | symbol | number> = TRefinements extends object ? TRefinements[TKey] extends _sinclair_typebox0.TSchema | ((schema: any) => any) ? true : false : false;
|
|
83
|
+
type BuildSchema<TType extends 'select' | 'insert' | 'update', TColumns extends Record<string, any>, TRefinements extends Record<string, any> | undefined> = _sinclair_typebox0.TObject<Simplify<{ [K in keyof TColumns as ColumnIsGeneratedAlwaysAs<TColumns[K]> extends true ? TType extends 'select' ? K : never : K]: TColumns[K] extends infer TColumn extends Column ? IsRefinementDefined<TRefinements, K> extends true ? Assume<HandleRefinement<TType, TRefinements[K & keyof TRefinements], TColumn>, _sinclair_typebox0.TSchema> : HandleColumn<TType, TColumn> : TColumns[K] extends infer TObject extends SelectedFieldsFlat<Column> | Table | View ? BuildSchema<TType, GetSelection<TObject>, TRefinements extends object ? TRefinements[K & keyof TRefinements] : undefined> : _sinclair_typebox0.TAny }>>;
|
|
84
|
+
type NoUnknownKeys<TRefinement extends Record<string, any>, TCompare extends Record<string, any>> = { [K in keyof TRefinement]: K extends keyof TCompare ? TRefinement[K] extends _sinclair_typebox0.TSchema ? TRefinement[K] : TRefinement[K] extends Record<string, _sinclair_typebox0.TSchema> ? NoUnknownKeys<TRefinement[K], TCompare[K]> : TRefinement[K] : DrizzleTypeError<`Found unknown key in refinement: "${K & string}"`> };
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/schema.types.d.ts
|
|
87
|
+
interface CreateSelectSchema {
|
|
88
|
+
<TTable extends Table>(table: TTable): BuildSchema<'select', TTable['_']['columns'], undefined>;
|
|
89
|
+
<TTable extends Table, TRefine extends BuildRefine<TTable['_']['columns']>>(table: TTable, refine?: NoUnknownKeys<TRefine, InferSelectModel<TTable>>): BuildSchema<'select', TTable['_']['columns'], TRefine>;
|
|
90
|
+
<TView extends View>(view: TView): BuildSchema<'select', TView['_']['selectedFields'], undefined>;
|
|
91
|
+
<TView extends View, TRefine extends BuildRefine<TView['_']['selectedFields']>>(view: TView, refine: NoUnknownKeys<TRefine, TView['$inferSelect']>): BuildSchema<'select', TView['_']['selectedFields'], TRefine>;
|
|
92
|
+
<TEnum extends PgEnum<any> | CockroachEnum<any>>(enum_: TEnum): _sinclair_typebox0.TEnum<EnumValuesToEnum<TEnum['enumValues']>>;
|
|
93
|
+
}
|
|
94
|
+
interface CreateInsertSchema {
|
|
95
|
+
<TTable extends Table>(table: TTable): BuildSchema<'insert', TTable['_']['columns'], undefined>;
|
|
96
|
+
<TTable extends Table, TRefine extends BuildRefine<Pick<TTable['_']['columns'], keyof InferInsertModel<TTable>>>>(table: TTable, refine?: NoUnknownKeys<TRefine, InferInsertModel<TTable>>): BuildSchema<'insert', TTable['_']['columns'], TRefine>;
|
|
97
|
+
}
|
|
98
|
+
interface CreateUpdateSchema {
|
|
99
|
+
<TTable extends Table>(table: TTable): BuildSchema<'update', TTable['_']['columns'], undefined>;
|
|
100
|
+
<TTable extends Table, TRefine extends BuildRefine<Pick<TTable['_']['columns'], keyof InferInsertModel<TTable>>>>(table: TTable, refine?: TRefine): BuildSchema<'update', TTable['_']['columns'], TRefine>;
|
|
101
|
+
}
|
|
102
|
+
interface CreateSchemaFactoryOptions {
|
|
103
|
+
typeboxInstance?: any;
|
|
104
|
+
}
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/schema.d.ts
|
|
107
|
+
declare function getColumns(tableLike: Table | View): drizzle_orm0.ColumnsSelection;
|
|
108
|
+
declare function handleColumns(columns: Record<string, any>, refinements: Record<string, any>, conditions: Conditions, factory?: CreateSchemaFactoryOptions): TSchema$1;
|
|
109
|
+
declare function handleEnum(enum_: PgEnum<any>, factory?: CreateSchemaFactoryOptions): _sinclair_typebox0.TEnum<{
|
|
110
|
+
[k: string]: string;
|
|
111
|
+
}>;
|
|
112
|
+
declare const createSelectSchema: CreateSelectSchema;
|
|
113
|
+
declare const createInsertSchema: CreateInsertSchema;
|
|
114
|
+
declare const createUpdateSchema: CreateUpdateSchema;
|
|
115
|
+
declare function createSchemaFactory(options?: CreateSchemaFactoryOptions): {
|
|
116
|
+
createSelectSchema: CreateSelectSchema;
|
|
117
|
+
createInsertSchema: CreateInsertSchema;
|
|
118
|
+
createUpdateSchema: CreateUpdateSchema;
|
|
119
|
+
};
|
|
120
|
+
//#endregion
|
|
121
|
+
export { BigIntStringModeSchema, BufferSchema, BuildRefine, BuildSchema, ColumnIsGeneratedAlwaysAs, Conditions, CreateInsertSchema, CreateSchemaFactoryOptions, CreateSelectSchema, CreateUpdateSchema, EnumValuesToEnum, GenericSchema, GetSelection, GetTypeboxType, HandleColumn, IsEnumDefined, IsNever, Json, JsonSchema, NoUnknownKeys, bufferSchema, createInsertSchema, createSchemaFactory, createSelectSchema, createUpdateSchema, getColumns, handleColumns, handleEnum, isColumnType, isPgEnum, isWithEnum, jsonSchema, literalSchema };
|
|
122
|
+
//# sourceMappingURL=index.d.mts.map
|