drizzle-typebox 1.0.0-beta.6-cefee57 → 1.0.0-beta.6-7419dcb

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 CHANGED
@@ -1,406 +1,452 @@
1
- let _sinclair_typebox = require("@sinclair/typebox");
2
- let drizzle_orm = require("drizzle-orm");
1
+ 'use strict';
2
+
3
+ var typebox = require('@sinclair/typebox');
4
+ var drizzleOrm = require('drizzle-orm');
3
5
 
4
- //#region src/constants.ts
5
6
  const CONSTANTS = {
6
- INT8_MIN: -128,
7
- INT8_MAX: 127,
8
- INT8_UNSIGNED_MAX: 255,
9
- INT16_MIN: -32768,
10
- INT16_MAX: 32767,
11
- INT16_UNSIGNED_MAX: 65535,
12
- INT24_MIN: -8388608,
13
- INT24_MAX: 8388607,
14
- INT24_UNSIGNED_MAX: 16777215,
15
- INT32_MIN: -2147483648,
16
- INT32_MAX: 2147483647,
17
- INT32_UNSIGNED_MAX: 4294967295,
18
- INT48_MIN: -0x800000000000,
19
- INT48_MAX: 0x7fffffffffff,
20
- INT48_UNSIGNED_MAX: 0xffffffffffff,
21
- INT64_MIN: -9223372036854775808n,
22
- INT64_MAX: 9223372036854775807n,
23
- INT64_UNSIGNED_MAX: 18446744073709551615n
7
+ INT8_MIN: -128,
8
+ INT8_MAX: 127,
9
+ INT8_UNSIGNED_MAX: 255,
10
+ INT16_MIN: -32768,
11
+ INT16_MAX: 32767,
12
+ INT16_UNSIGNED_MAX: 65535,
13
+ INT24_MIN: -8388608,
14
+ INT24_MAX: 8388607,
15
+ INT24_UNSIGNED_MAX: 16777215,
16
+ INT32_MIN: -2147483648,
17
+ INT32_MAX: 2147483647,
18
+ INT32_UNSIGNED_MAX: 4294967295,
19
+ INT48_MIN: -140737488355328,
20
+ INT48_MAX: 140737488355327,
21
+ INT48_UNSIGNED_MAX: 281474976710655,
22
+ INT64_MIN: -9223372036854775808n,
23
+ INT64_MAX: 9223372036854775807n,
24
+ INT64_UNSIGNED_MAX: 18446744073709551615n,
24
25
  };
25
26
 
26
- //#endregion
27
- //#region src/column.ts
28
- const literalSchema = _sinclair_typebox.Type.Union([
29
- _sinclair_typebox.Type.String(),
30
- _sinclair_typebox.Type.Number(),
31
- _sinclair_typebox.Type.Boolean(),
32
- _sinclair_typebox.Type.Null()
33
- ]);
34
- const jsonSchema = _sinclair_typebox.Type.Union([
35
- literalSchema,
36
- _sinclair_typebox.Type.Array(_sinclair_typebox.Type.Any()),
37
- _sinclair_typebox.Type.Record(_sinclair_typebox.Type.String(), _sinclair_typebox.Type.Any())
38
- ]);
39
- _sinclair_typebox.TypeRegistry.Set("Buffer", (_, value) => value instanceof Buffer);
40
- const bufferSchema = {
41
- [_sinclair_typebox.Kind]: "Buffer",
42
- type: "buffer"
43
- };
27
+ const literalSchema = typebox.Type.Union([typebox.Type.String(), typebox.Type.Number(), typebox.Type.Boolean(), typebox.Type.Null()]);
28
+ const jsonSchema = typebox.Type.Union([literalSchema, typebox.Type.Array(typebox.Type.Any()), typebox.Type.Record(typebox.Type.String(), typebox.Type.Any())]);
29
+ typebox.TypeRegistry.Set('Buffer', (_, value) => value instanceof Buffer);
30
+ const bufferSchema = { [typebox.Kind]: 'Buffer', type: 'buffer' };
44
31
  function mapEnumValues(values) {
45
- return Object.fromEntries(values.map((value) => [value, value]));
32
+ return Object.fromEntries(values.map((value) => [value, value]));
46
33
  }
47
- function columnToSchema(column, t$2) {
48
- let schema;
49
- const dimensions = column.dimensions;
50
- if (typeof dimensions === "number" && dimensions > 0) return pgArrayColumnToSchema(column, dimensions, t$2);
51
- const { type, constraint } = (0, drizzle_orm.extractExtendedColumnType)(column);
52
- switch (type) {
53
- case "array":
54
- schema = arrayColumnToSchema(column, constraint, t$2);
55
- break;
56
- case "object":
57
- schema = objectColumnToSchema(column, constraint, t$2);
58
- break;
59
- case "number":
60
- schema = numberColumnToSchema(column, constraint, t$2);
61
- break;
62
- case "bigint":
63
- schema = bigintColumnToSchema(column, constraint, t$2);
64
- break;
65
- case "boolean":
66
- schema = t$2.Boolean();
67
- break;
68
- case "string":
69
- schema = stringColumnToSchema(column, constraint, t$2);
70
- break;
71
- case "custom":
72
- schema = t$2.Any();
73
- break;
74
- default: schema = t$2.Any();
75
- }
76
- return schema;
34
+ function columnToSchema(column, t) {
35
+ let schema;
36
+ const { type, constraint } = drizzleOrm.extractExtendedColumnType(column);
37
+ switch (type) {
38
+ case 'array': {
39
+ schema = arrayColumnToSchema(column, constraint, t);
40
+ break;
41
+ }
42
+ case 'object': {
43
+ schema = objectColumnToSchema(column, constraint, t);
44
+ break;
45
+ }
46
+ case 'number': {
47
+ schema = numberColumnToSchema(column, constraint, t);
48
+ break;
49
+ }
50
+ case 'bigint': {
51
+ schema = bigintColumnToSchema(column, constraint, t);
52
+ break;
53
+ }
54
+ case 'boolean': {
55
+ schema = t.Boolean();
56
+ break;
57
+ }
58
+ case 'string': {
59
+ schema = stringColumnToSchema(column, constraint, t);
60
+ break;
61
+ }
62
+ case 'custom': {
63
+ schema = t.Any();
64
+ break;
65
+ }
66
+ default: {
67
+ schema = t.Any();
68
+ }
69
+ }
70
+ return schema;
77
71
  }
78
- function numberColumnToSchema(column, constraint, t$2) {
79
- let min;
80
- let max;
81
- let integer = false;
82
- switch (constraint) {
83
- case "int8":
84
- min = CONSTANTS.INT8_MIN;
85
- max = CONSTANTS.INT8_MAX;
86
- integer = true;
87
- break;
88
- case "uint8":
89
- min = 0;
90
- max = CONSTANTS.INT8_UNSIGNED_MAX;
91
- integer = true;
92
- break;
93
- case "int16":
94
- min = CONSTANTS.INT16_MIN;
95
- max = CONSTANTS.INT16_MAX;
96
- integer = true;
97
- break;
98
- case "uint16":
99
- min = 0;
100
- max = CONSTANTS.INT16_UNSIGNED_MAX;
101
- integer = true;
102
- break;
103
- case "int24":
104
- min = CONSTANTS.INT24_MIN;
105
- max = CONSTANTS.INT24_MAX;
106
- integer = true;
107
- break;
108
- case "uint24":
109
- min = 0;
110
- max = CONSTANTS.INT24_UNSIGNED_MAX;
111
- integer = true;
112
- break;
113
- case "int32":
114
- min = CONSTANTS.INT32_MIN;
115
- max = CONSTANTS.INT32_MAX;
116
- integer = true;
117
- break;
118
- case "uint32":
119
- min = 0;
120
- max = CONSTANTS.INT32_UNSIGNED_MAX;
121
- integer = true;
122
- break;
123
- case "int53":
124
- min = Number.MIN_SAFE_INTEGER;
125
- max = Number.MAX_SAFE_INTEGER;
126
- integer = true;
127
- break;
128
- case "uint53":
129
- min = 0;
130
- max = Number.MAX_SAFE_INTEGER;
131
- integer = true;
132
- break;
133
- case "float":
134
- min = CONSTANTS.INT24_MIN;
135
- max = CONSTANTS.INT24_MAX;
136
- break;
137
- case "ufloat":
138
- min = 0;
139
- max = CONSTANTS.INT24_UNSIGNED_MAX;
140
- break;
141
- case "double":
142
- min = CONSTANTS.INT48_MIN;
143
- max = CONSTANTS.INT48_MAX;
144
- break;
145
- case "udouble":
146
- min = 0;
147
- max = CONSTANTS.INT48_UNSIGNED_MAX;
148
- break;
149
- case "year":
150
- min = 1901;
151
- max = 2155;
152
- integer = true;
153
- break;
154
- case "unsigned":
155
- min = 0;
156
- max = Number.MAX_SAFE_INTEGER;
157
- break;
158
- default:
159
- min = Number.MIN_SAFE_INTEGER;
160
- max = Number.MAX_SAFE_INTEGER;
161
- break;
162
- }
163
- return t$2[integer ? "Integer" : "Number"]({
164
- minimum: min,
165
- maximum: max
166
- });
72
+ function numberColumnToSchema(column, constraint, t) {
73
+ let min;
74
+ let max;
75
+ let integer = false;
76
+ switch (constraint) {
77
+ case 'int8': {
78
+ min = CONSTANTS.INT8_MIN;
79
+ max = CONSTANTS.INT8_MAX;
80
+ integer = true;
81
+ break;
82
+ }
83
+ case 'uint8': {
84
+ min = 0;
85
+ max = CONSTANTS.INT8_UNSIGNED_MAX;
86
+ integer = true;
87
+ break;
88
+ }
89
+ case 'int16': {
90
+ min = CONSTANTS.INT16_MIN;
91
+ max = CONSTANTS.INT16_MAX;
92
+ integer = true;
93
+ break;
94
+ }
95
+ case 'uint16': {
96
+ min = 0;
97
+ max = CONSTANTS.INT16_UNSIGNED_MAX;
98
+ integer = true;
99
+ break;
100
+ }
101
+ case 'int24': {
102
+ min = CONSTANTS.INT24_MIN;
103
+ max = CONSTANTS.INT24_MAX;
104
+ integer = true;
105
+ break;
106
+ }
107
+ case 'uint24': {
108
+ min = 0;
109
+ max = CONSTANTS.INT24_UNSIGNED_MAX;
110
+ integer = true;
111
+ break;
112
+ }
113
+ case 'int32': {
114
+ min = CONSTANTS.INT32_MIN;
115
+ max = CONSTANTS.INT32_MAX;
116
+ integer = true;
117
+ break;
118
+ }
119
+ case 'uint32': {
120
+ min = 0;
121
+ max = CONSTANTS.INT32_UNSIGNED_MAX;
122
+ integer = true;
123
+ break;
124
+ }
125
+ case 'int53': {
126
+ min = Number.MIN_SAFE_INTEGER;
127
+ max = Number.MAX_SAFE_INTEGER;
128
+ integer = true;
129
+ break;
130
+ }
131
+ case 'uint53': {
132
+ min = 0;
133
+ max = Number.MAX_SAFE_INTEGER;
134
+ integer = true;
135
+ break;
136
+ }
137
+ case 'float': {
138
+ min = CONSTANTS.INT24_MIN;
139
+ max = CONSTANTS.INT24_MAX;
140
+ break;
141
+ }
142
+ case 'ufloat': {
143
+ min = 0;
144
+ max = CONSTANTS.INT24_UNSIGNED_MAX;
145
+ break;
146
+ }
147
+ case 'double': {
148
+ min = CONSTANTS.INT48_MIN;
149
+ max = CONSTANTS.INT48_MAX;
150
+ break;
151
+ }
152
+ case 'udouble': {
153
+ min = 0;
154
+ max = CONSTANTS.INT48_UNSIGNED_MAX;
155
+ break;
156
+ }
157
+ case 'year': {
158
+ min = 1901;
159
+ max = 2155;
160
+ integer = true;
161
+ break;
162
+ }
163
+ case 'unsigned': {
164
+ min = 0;
165
+ max = Number.MAX_SAFE_INTEGER;
166
+ break;
167
+ }
168
+ default: {
169
+ min = Number.MIN_SAFE_INTEGER;
170
+ max = Number.MAX_SAFE_INTEGER;
171
+ break;
172
+ }
173
+ }
174
+ const key = integer ? 'Integer' : 'Number';
175
+ return t[key]({
176
+ minimum: min,
177
+ maximum: max,
178
+ });
167
179
  }
168
- _sinclair_typebox.TypeRegistry.Set("BigIntStringMode", (_, value) => {
169
- if (typeof value !== "string" || !/^-?\d+$/.test(value)) return false;
170
- const bigint = BigInt(value);
171
- if (bigint < CONSTANTS.INT64_MIN || bigint > CONSTANTS.INT64_MAX) return false;
172
- return true;
180
+ typebox.TypeRegistry.Set('BigIntStringMode', (_, value) => {
181
+ if (typeof value !== 'string' || !(/^-?\d+$/.test(value))) {
182
+ return false;
183
+ }
184
+ const bigint = BigInt(value);
185
+ if (bigint < CONSTANTS.INT64_MIN || bigint > CONSTANTS.INT64_MAX) {
186
+ return false;
187
+ }
188
+ return true;
173
189
  });
174
- _sinclair_typebox.TypeRegistry.Set("UnsignedBigIntStringMode", (_, value) => {
175
- if (typeof value !== "string" || !/^\d+$/.test(value)) return false;
176
- const bigint = BigInt(value);
177
- if (bigint < 0 || bigint > CONSTANTS.INT64_MAX) return false;
178
- return true;
190
+ typebox.TypeRegistry.Set('UnsignedBigIntStringMode', (_, value) => {
191
+ if (typeof value !== 'string' || !(/^\d+$/.test(value))) {
192
+ return false;
193
+ }
194
+ const bigint = BigInt(value);
195
+ if (bigint < 0 || bigint > CONSTANTS.INT64_MAX) {
196
+ return false;
197
+ }
198
+ return true;
179
199
  });
180
200
  /** @internal */
181
201
  const bigintStringModeSchema = {
182
- [_sinclair_typebox.Kind]: "BigIntStringMode",
183
- type: "string"
202
+ [typebox.Kind]: 'BigIntStringMode',
203
+ type: 'string',
184
204
  };
185
205
  /** @internal */
186
206
  const unsignedBigintStringModeSchema = {
187
- [_sinclair_typebox.Kind]: "UnsignedBigIntStringMode",
188
- type: "string"
207
+ [typebox.Kind]: 'UnsignedBigIntStringMode',
208
+ type: 'string',
189
209
  };
190
- function pgArrayColumnToSchema(column, dimensions, t$2) {
191
- const [baseType, baseConstraint] = column.dataType.split(" ");
192
- let baseSchema;
193
- switch (baseType) {
194
- case "number":
195
- baseSchema = numberColumnToSchema(column, baseConstraint, t$2);
196
- break;
197
- case "bigint":
198
- baseSchema = bigintColumnToSchema(column, baseConstraint, t$2);
199
- break;
200
- case "boolean":
201
- baseSchema = t$2.Boolean();
202
- break;
203
- case "string":
204
- baseSchema = stringColumnToSchema(column, baseConstraint, t$2);
205
- break;
206
- case "object":
207
- baseSchema = objectColumnToSchema(column, baseConstraint, t$2);
208
- break;
209
- case "array":
210
- baseSchema = arrayColumnToSchema(column, baseConstraint, t$2);
211
- break;
212
- default: baseSchema = t$2.Any();
213
- }
214
- let schema = t$2.Array(baseSchema);
215
- for (let i = 1; i < dimensions; i++) schema = t$2.Array(schema);
216
- return schema;
217
- }
218
- function arrayColumnToSchema(column, constraint, t$2) {
219
- switch (constraint) {
220
- case "geometry":
221
- case "point": return t$2.Tuple([t$2.Number(), t$2.Number()]);
222
- case "line": return t$2.Tuple([
223
- t$2.Number(),
224
- t$2.Number(),
225
- t$2.Number()
226
- ]);
227
- case "vector":
228
- case "halfvector": {
229
- const length = column.length;
230
- const sizeParam = length ? {
231
- minItems: length,
232
- maxItems: length
233
- } : void 0;
234
- return t$2.Array(t$2.Number(), sizeParam);
235
- }
236
- case "int64vector": {
237
- const length = column.length;
238
- const sizeParam = length ? {
239
- minItems: length,
240
- maxItems: length
241
- } : void 0;
242
- return t$2.Array(t$2.BigInt({
243
- minimum: CONSTANTS.INT64_MIN,
244
- maximum: CONSTANTS.INT64_MAX
245
- }), sizeParam);
246
- }
247
- case "basecolumn": {
248
- const baseColumn = column.baseColumn;
249
- if (baseColumn) {
250
- const size = column.length;
251
- const sizeParam = size ? {
252
- minItems: size,
253
- maxItems: size
254
- } : void 0;
255
- return t$2.Array(columnToSchema(baseColumn, t$2), sizeParam);
256
- }
257
- return t$2.Array(t$2.Any());
258
- }
259
- default: return t$2.Array(t$2.Any());
260
- }
210
+ function arrayColumnToSchema(column, constraint, t) {
211
+ switch (constraint) {
212
+ case 'geometry':
213
+ case 'point': {
214
+ return t.Tuple([t.Number(), t.Number()]);
215
+ }
216
+ case 'line': {
217
+ return t.Tuple([t.Number(), t.Number(), t.Number()]);
218
+ }
219
+ case 'vector':
220
+ case 'halfvector': {
221
+ const length = column.length;
222
+ const sizeParam = length
223
+ ? {
224
+ minItems: length,
225
+ maxItems: length,
226
+ }
227
+ : undefined;
228
+ return t.Array(t.Number(), sizeParam);
229
+ }
230
+ case 'int64vector': {
231
+ const length = column.length;
232
+ const sizeParam = length
233
+ ? {
234
+ minItems: length,
235
+ maxItems: length,
236
+ }
237
+ : undefined;
238
+ return t.Array(t.BigInt({
239
+ minimum: CONSTANTS.INT64_MIN,
240
+ maximum: CONSTANTS.INT64_MAX,
241
+ }), sizeParam);
242
+ }
243
+ case 'basecolumn': {
244
+ const size = column.length;
245
+ const sizeParam = size
246
+ ? {
247
+ minItems: size,
248
+ maxItems: size,
249
+ }
250
+ : undefined;
251
+ return column.baseColumn
252
+ ? t.Array(columnToSchema(column.baseColumn, t), sizeParam)
253
+ : t.Array(t.Any(), sizeParam);
254
+ }
255
+ default: {
256
+ return t.Array(t.Any());
257
+ }
258
+ }
261
259
  }
262
- function objectColumnToSchema(column, constraint, t$2) {
263
- switch (constraint) {
264
- case "buffer": return bufferSchema;
265
- case "date": return t$2.Date();
266
- case "geometry":
267
- case "point": return t$2.Object({
268
- x: t$2.Number(),
269
- y: t$2.Number()
270
- });
271
- case "json": return jsonSchema;
272
- case "line": return t$2.Object({
273
- a: t$2.Number(),
274
- b: t$2.Number(),
275
- c: t$2.Number()
276
- });
277
- default: return t$2.Object({});
278
- }
260
+ function objectColumnToSchema(column, constraint, t) {
261
+ switch (constraint) {
262
+ case 'buffer': {
263
+ return bufferSchema;
264
+ }
265
+ case 'date': {
266
+ return t.Date();
267
+ }
268
+ case 'geometry':
269
+ case 'point': {
270
+ return t.Object({
271
+ x: t.Number(),
272
+ y: t.Number(),
273
+ });
274
+ }
275
+ case 'json': {
276
+ return jsonSchema;
277
+ }
278
+ case 'line': {
279
+ return t.Object({
280
+ a: t.Number(),
281
+ b: t.Number(),
282
+ c: t.Number(),
283
+ });
284
+ }
285
+ default: {
286
+ return t.Object({});
287
+ }
288
+ }
279
289
  }
280
- function bigintColumnToSchema(column, constraint, t$2) {
281
- let min;
282
- let max;
283
- switch (constraint) {
284
- case "int64":
285
- min = CONSTANTS.INT64_MIN;
286
- max = CONSTANTS.INT64_MAX;
287
- break;
288
- case "uint64":
289
- min = 0n;
290
- max = CONSTANTS.INT64_UNSIGNED_MAX;
291
- break;
292
- }
293
- const options = {};
294
- if (min !== void 0) options.minimum = min;
295
- if (max !== void 0) options.maximum = max;
296
- return t$2.BigInt(Object.keys(options).length > 0 ? options : void 0);
290
+ function bigintColumnToSchema(column, constraint, t) {
291
+ let min;
292
+ let max;
293
+ switch (constraint) {
294
+ case 'int64': {
295
+ min = CONSTANTS.INT64_MIN;
296
+ max = CONSTANTS.INT64_MAX;
297
+ break;
298
+ }
299
+ case 'uint64': {
300
+ min = 0n;
301
+ max = CONSTANTS.INT64_UNSIGNED_MAX;
302
+ break;
303
+ }
304
+ }
305
+ const options = {};
306
+ if (min !== undefined) {
307
+ options.minimum = min;
308
+ }
309
+ if (max !== undefined) {
310
+ options.maximum = max;
311
+ }
312
+ return t.BigInt(Object.keys(options).length > 0 ? options : undefined);
297
313
  }
298
- function stringColumnToSchema(column, constraint, t$2) {
299
- const { name: columnName, length, isLengthExact } = column;
300
- let regex;
301
- if (constraint === "binary") regex = /^[01]*$/;
302
- if (constraint === "uuid") return t$2.String({ format: "uuid" });
303
- if (constraint === "enum") {
304
- const enumValues = column.enumValues;
305
- if (!enumValues) throw new Error(`Column "${(0, drizzle_orm.getTableName)((0, drizzle_orm.getColumnTable)(column))}"."${columnName}" is of 'enum' type, but lacks enum values`);
306
- return t$2.Enum(mapEnumValues(enumValues));
307
- }
308
- if (constraint === "int64") return bigintStringModeSchema;
309
- if (constraint === "uint64") return unsignedBigintStringModeSchema;
310
- const options = {};
311
- if (length !== void 0 && isLengthExact) {
312
- options.minLength = length;
313
- options.maxLength = length;
314
- } else if (length !== void 0) options.maxLength = length;
315
- return regex ? t$2.RegExp(regex, Object.keys(options).length > 0 ? options : void 0) : t$2.String(Object.keys(options).length > 0 ? options : void 0);
314
+ function stringColumnToSchema(column, constraint, t) {
315
+ const { name: columnName, length, isLengthExact } = column;
316
+ let regex;
317
+ if (constraint === 'binary') {
318
+ regex = /^[01]*$/;
319
+ }
320
+ if (constraint === 'uuid') {
321
+ return t.String({
322
+ format: 'uuid',
323
+ });
324
+ }
325
+ if (constraint === 'enum') {
326
+ const enumValues = column.enumValues;
327
+ if (!enumValues) {
328
+ throw new Error(`Column "${drizzleOrm.getTableName(drizzleOrm.getColumnTable(column))}"."${columnName}" is of 'enum' type, but lacks enum values`);
329
+ }
330
+ return t.Enum(mapEnumValues(enumValues));
331
+ }
332
+ if (constraint === 'int64') {
333
+ return bigintStringModeSchema;
334
+ }
335
+ if (constraint === 'uint64') {
336
+ return unsignedBigintStringModeSchema;
337
+ }
338
+ const options = {};
339
+ if (length !== undefined && isLengthExact) {
340
+ options.minLength = length;
341
+ options.maxLength = length;
342
+ }
343
+ else if (length !== undefined) {
344
+ options.maxLength = length;
345
+ }
346
+ return regex
347
+ ? t.RegExp(regex, Object.keys(options).length > 0 ? options : undefined)
348
+ : t.String(Object.keys(options).length > 0 ? options : undefined);
316
349
  }
317
350
 
318
- //#endregion
319
- //#region src/utils.ts
320
351
  function isColumnType(column, columnTypes) {
321
- return columnTypes.includes(column.columnType);
352
+ return columnTypes.includes(column.columnType);
322
353
  }
323
354
  function isWithEnum(column) {
324
- return "enumValues" in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
355
+ return 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
325
356
  }
326
357
  const isPgEnum = isWithEnum;
327
358
 
328
- //#endregion
329
- //#region src/schema.ts
330
359
  function getColumns(tableLike) {
331
- return (0, drizzle_orm.isTable)(tableLike) ? (0, drizzle_orm.getTableColumns)(tableLike) : (0, drizzle_orm.getViewSelectedFields)(tableLike);
360
+ return drizzleOrm.isTable(tableLike) ? drizzleOrm.getTableColumns(tableLike) : drizzleOrm.getViewSelectedFields(tableLike);
332
361
  }
333
362
  function handleColumns(columns, refinements, conditions, factory) {
334
- const columnSchemas = {};
335
- for (const [key, selected] of Object.entries(columns)) {
336
- if (!(0, drizzle_orm.is)(selected, drizzle_orm.Column) && !(0, drizzle_orm.is)(selected, drizzle_orm.SQL) && !(0, drizzle_orm.is)(selected, drizzle_orm.SQL.Aliased) && typeof selected === "object") {
337
- columnSchemas[key] = handleColumns((0, drizzle_orm.isTable)(selected) || (0, drizzle_orm.isView)(selected) ? getColumns(selected) : selected, refinements[key] ?? {}, conditions, factory);
338
- continue;
339
- }
340
- const refinement = refinements[key];
341
- if (refinement !== void 0 && typeof refinement !== "function") {
342
- columnSchemas[key] = refinement;
343
- continue;
344
- }
345
- const column = (0, drizzle_orm.is)(selected, drizzle_orm.Column) ? selected : void 0;
346
- const schema = column ? columnToSchema(column, factory?.typeboxInstance ?? _sinclair_typebox.Type) : _sinclair_typebox.Type.Any();
347
- const refined = typeof refinement === "function" ? refinement(schema) : schema;
348
- if (conditions.never(column)) continue;
349
- else columnSchemas[key] = refined;
350
- if (column) {
351
- if (conditions.nullable(column)) columnSchemas[key] = _sinclair_typebox.Type.Union([columnSchemas[key], _sinclair_typebox.Type.Null()]);
352
- if (conditions.optional(column)) columnSchemas[key] = _sinclair_typebox.Type.Optional(columnSchemas[key]);
353
- }
354
- }
355
- return _sinclair_typebox.Type.Object(columnSchemas);
363
+ const columnSchemas = {};
364
+ for (const [key, selected] of Object.entries(columns)) {
365
+ if (!drizzleOrm.is(selected, drizzleOrm.Column) && !drizzleOrm.is(selected, drizzleOrm.SQL) && !drizzleOrm.is(selected, drizzleOrm.SQL.Aliased) && typeof selected === 'object') {
366
+ const columns = drizzleOrm.isTable(selected) || drizzleOrm.isView(selected) ? getColumns(selected) : selected;
367
+ columnSchemas[key] = handleColumns(columns, refinements[key] ?? {}, conditions, factory);
368
+ continue;
369
+ }
370
+ const refinement = refinements[key];
371
+ if (refinement !== undefined && typeof refinement !== 'function') {
372
+ columnSchemas[key] = refinement;
373
+ continue;
374
+ }
375
+ const column = drizzleOrm.is(selected, drizzleOrm.Column) ? selected : undefined;
376
+ const schema = column ? columnToSchema(column, factory?.typeboxInstance ?? typebox.Type) : typebox.Type.Any();
377
+ const refined = typeof refinement === 'function' ? refinement(schema) : schema;
378
+ if (conditions.never(column)) {
379
+ continue;
380
+ }
381
+ else {
382
+ columnSchemas[key] = refined;
383
+ }
384
+ if (column) {
385
+ if (conditions.nullable(column)) {
386
+ columnSchemas[key] = typebox.Type.Union([columnSchemas[key], typebox.Type.Null()]);
387
+ }
388
+ if (conditions.optional(column)) {
389
+ columnSchemas[key] = typebox.Type.Optional(columnSchemas[key]);
390
+ }
391
+ }
392
+ }
393
+ return typebox.Type.Object(columnSchemas);
356
394
  }
357
395
  function handleEnum(enum_, factory) {
358
- return (factory?.typeboxInstance ?? _sinclair_typebox.Type).Enum(mapEnumValues(enum_.enumValues));
396
+ const typebox$1 = factory?.typeboxInstance ?? typebox.Type;
397
+ return typebox$1.Enum(mapEnumValues(enum_.enumValues));
359
398
  }
360
399
  const selectConditions = {
361
- never: () => false,
362
- optional: () => false,
363
- nullable: (column) => !column.notNull
400
+ never: () => false,
401
+ optional: () => false,
402
+ nullable: (column) => !column.notNull,
364
403
  };
365
404
  const insertConditions = {
366
- never: (column) => column?.generated?.type === "always" || column?.generatedIdentity?.type === "always" || "identity" in (column ?? {}) && typeof column?.identity !== "undefined",
367
- optional: (column) => !column.notNull || column.notNull && column.hasDefault,
368
- nullable: (column) => !column.notNull
405
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
406
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
407
+ optional: (column) => !column.notNull || (column.notNull && column.hasDefault),
408
+ nullable: (column) => !column.notNull,
369
409
  };
370
410
  const updateConditions = {
371
- never: (column) => column?.generated?.type === "always" || column?.generatedIdentity?.type === "always" || "identity" in (column ?? {}) && typeof column?.identity !== "undefined",
372
- optional: () => true,
373
- nullable: (column) => !column.notNull
411
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
412
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
413
+ optional: () => true,
414
+ nullable: (column) => !column.notNull,
374
415
  };
375
416
  const createSelectSchema = (entity, refine) => {
376
- if (isPgEnum(entity)) return handleEnum(entity);
377
- return handleColumns(getColumns(entity), refine ?? {}, selectConditions);
417
+ if (isPgEnum(entity)) {
418
+ return handleEnum(entity);
419
+ }
420
+ const columns = getColumns(entity);
421
+ return handleColumns(columns, refine ?? {}, selectConditions);
378
422
  };
379
423
  const createInsertSchema = (entity, refine) => {
380
- return handleColumns(getColumns(entity), refine ?? {}, insertConditions);
424
+ const columns = getColumns(entity);
425
+ return handleColumns(columns, refine ?? {}, insertConditions);
381
426
  };
382
427
  const createUpdateSchema = (entity, refine) => {
383
- return handleColumns(getColumns(entity), refine ?? {}, updateConditions);
428
+ const columns = getColumns(entity);
429
+ return handleColumns(columns, refine ?? {}, updateConditions);
384
430
  };
385
431
  function createSchemaFactory(options) {
386
- const createSelectSchema$1 = (entity, refine) => {
387
- if (isPgEnum(entity)) return handleEnum(entity, options);
388
- return handleColumns(getColumns(entity), refine ?? {}, selectConditions, options);
389
- };
390
- const createInsertSchema$1 = (entity, refine) => {
391
- return handleColumns(getColumns(entity), refine ?? {}, insertConditions, options);
392
- };
393
- const createUpdateSchema$1 = (entity, refine) => {
394
- return handleColumns(getColumns(entity), refine ?? {}, updateConditions, options);
395
- };
396
- return {
397
- createSelectSchema: createSelectSchema$1,
398
- createInsertSchema: createInsertSchema$1,
399
- createUpdateSchema: createUpdateSchema$1
400
- };
432
+ const createSelectSchema = (entity, refine) => {
433
+ if (isPgEnum(entity)) {
434
+ return handleEnum(entity, options);
435
+ }
436
+ const columns = getColumns(entity);
437
+ return handleColumns(columns, refine ?? {}, selectConditions, options);
438
+ };
439
+ const createInsertSchema = (entity, refine) => {
440
+ const columns = getColumns(entity);
441
+ return handleColumns(columns, refine ?? {}, insertConditions, options);
442
+ };
443
+ const createUpdateSchema = (entity, refine) => {
444
+ const columns = getColumns(entity);
445
+ return handleColumns(columns, refine ?? {}, updateConditions, options);
446
+ };
447
+ return { createSelectSchema, createInsertSchema, createUpdateSchema };
401
448
  }
402
449
 
403
- //#endregion
404
450
  exports.bufferSchema = bufferSchema;
405
451
  exports.createInsertSchema = createInsertSchema;
406
452
  exports.createSchemaFactory = createSchemaFactory;
@@ -414,4 +460,4 @@ exports.isPgEnum = isPgEnum;
414
460
  exports.isWithEnum = isWithEnum;
415
461
  exports.jsonSchema = jsonSchema;
416
462
  exports.literalSchema = literalSchema;
417
- //# sourceMappingURL=index.cjs.map
463
+ //# sourceMappingURL=index.cjs.map