drizzle-typebox 1.0.0-beta.9-5a93194 → 1.0.0-beta.9-c26fd2f

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,452 +1,406 @@
1
- 'use strict';
2
-
3
- var typebox = require('@sinclair/typebox');
4
- var drizzleOrm = require('drizzle-orm');
1
+ let _sinclair_typebox = require("@sinclair/typebox");
2
+ let drizzle_orm = require("drizzle-orm");
5
3
 
4
+ //#region src/constants.ts
6
5
  const CONSTANTS = {
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,
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
25
24
  };
26
25
 
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' };
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
+ };
31
44
  function mapEnumValues(values) {
32
- return Object.fromEntries(values.map((value) => [value, value]));
45
+ return Object.fromEntries(values.map((value) => [value, value]));
33
46
  }
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;
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;
71
77
  }
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
- });
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
+ });
179
167
  }
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;
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;
189
173
  });
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;
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;
199
179
  });
200
180
  /** @internal */
201
181
  const bigintStringModeSchema = {
202
- [typebox.Kind]: 'BigIntStringMode',
203
- type: 'string',
182
+ [_sinclair_typebox.Kind]: "BigIntStringMode",
183
+ type: "string"
204
184
  };
205
185
  /** @internal */
206
186
  const unsignedBigintStringModeSchema = {
207
- [typebox.Kind]: 'UnsignedBigIntStringMode',
208
- type: 'string',
187
+ [_sinclair_typebox.Kind]: "UnsignedBigIntStringMode",
188
+ type: "string"
209
189
  };
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
- }
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
+ }
259
261
  }
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
- }
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
+ }
289
279
  }
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);
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);
313
297
  }
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);
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);
349
316
  }
350
317
 
318
+ //#endregion
319
+ //#region src/utils.ts
351
320
  function isColumnType(column, columnTypes) {
352
- return columnTypes.includes(column.columnType);
321
+ return columnTypes.includes(column.columnType);
353
322
  }
354
323
  function isWithEnum(column) {
355
- return 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
324
+ return "enumValues" in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
356
325
  }
357
326
  const isPgEnum = isWithEnum;
358
327
 
328
+ //#endregion
329
+ //#region src/schema.ts
359
330
  function getColumns(tableLike) {
360
- return drizzleOrm.isTable(tableLike) ? drizzleOrm.getTableColumns(tableLike) : drizzleOrm.getViewSelectedFields(tableLike);
331
+ return (0, drizzle_orm.isTable)(tableLike) ? (0, drizzle_orm.getTableColumns)(tableLike) : (0, drizzle_orm.getViewSelectedFields)(tableLike);
361
332
  }
362
333
  function handleColumns(columns, refinements, conditions, factory) {
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);
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);
394
356
  }
395
357
  function handleEnum(enum_, factory) {
396
- const typebox$1 = factory?.typeboxInstance ?? typebox.Type;
397
- return typebox$1.Enum(mapEnumValues(enum_.enumValues));
358
+ return (factory?.typeboxInstance ?? _sinclair_typebox.Type).Enum(mapEnumValues(enum_.enumValues));
398
359
  }
399
360
  const selectConditions = {
400
- never: () => false,
401
- optional: () => false,
402
- nullable: (column) => !column.notNull,
361
+ never: () => false,
362
+ optional: () => false,
363
+ nullable: (column) => !column.notNull
403
364
  };
404
365
  const insertConditions = {
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,
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
409
369
  };
410
370
  const updateConditions = {
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,
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
415
374
  };
416
375
  const createSelectSchema = (entity, refine) => {
417
- if (isPgEnum(entity)) {
418
- return handleEnum(entity);
419
- }
420
- const columns = getColumns(entity);
421
- return handleColumns(columns, refine ?? {}, selectConditions);
376
+ if (isPgEnum(entity)) return handleEnum(entity);
377
+ return handleColumns(getColumns(entity), refine ?? {}, selectConditions);
422
378
  };
423
379
  const createInsertSchema = (entity, refine) => {
424
- const columns = getColumns(entity);
425
- return handleColumns(columns, refine ?? {}, insertConditions);
380
+ return handleColumns(getColumns(entity), refine ?? {}, insertConditions);
426
381
  };
427
382
  const createUpdateSchema = (entity, refine) => {
428
- const columns = getColumns(entity);
429
- return handleColumns(columns, refine ?? {}, updateConditions);
383
+ return handleColumns(getColumns(entity), refine ?? {}, updateConditions);
430
384
  };
431
385
  function createSchemaFactory(options) {
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 };
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
+ };
448
401
  }
449
402
 
403
+ //#endregion
450
404
  exports.bufferSchema = bufferSchema;
451
405
  exports.createInsertSchema = createInsertSchema;
452
406
  exports.createSchemaFactory = createSchemaFactory;
@@ -460,4 +414,4 @@ exports.isPgEnum = isPgEnum;
460
414
  exports.isWithEnum = isWithEnum;
461
415
  exports.jsonSchema = jsonSchema;
462
416
  exports.literalSchema = literalSchema;
463
- //# sourceMappingURL=index.cjs.map
417
+ //# sourceMappingURL=index.cjs.map