drizzle-typebox 0.3.3 → 1.0.0-beta.2-e93475f

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
@@ -24,167 +24,152 @@ const CONSTANTS = {
24
24
  INT64_UNSIGNED_MAX: 18446744073709551615n,
25
25
  };
26
26
 
27
- function isColumnType(column, columnTypes) {
28
- return columnTypes.includes(column.columnType);
29
- }
30
- function isWithEnum(column) {
31
- return 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
32
- }
33
- const isPgEnum = isWithEnum;
34
-
35
27
  const literalSchema = typebox.Type.Union([typebox.Type.String(), typebox.Type.Number(), typebox.Type.Boolean(), typebox.Type.Null()]);
36
28
  const jsonSchema = typebox.Type.Union([literalSchema, typebox.Type.Array(typebox.Type.Any()), typebox.Type.Record(typebox.Type.String(), typebox.Type.Any())]);
37
- typebox.TypeRegistry.Set('Buffer', (_, value) => value instanceof Buffer); // eslint-disable-line no-instanceof/no-instanceof
29
+ typebox.TypeRegistry.Set('Buffer', (_, value) => value instanceof Buffer);
38
30
  const bufferSchema = { [typebox.Kind]: 'Buffer', type: 'buffer' };
39
31
  function mapEnumValues(values) {
40
32
  return Object.fromEntries(values.map((value) => [value, value]));
41
33
  }
42
34
  function columnToSchema(column, t) {
43
35
  let schema;
44
- if (isWithEnum(column)) {
45
- schema = column.enumValues.length ? t.Enum(mapEnumValues(column.enumValues)) : t.String();
46
- }
47
- if (!schema) {
48
- // Handle specific types
49
- if (isColumnType(column, ['PgGeometry', 'PgPointTuple'])) {
50
- schema = t.Tuple([t.Number(), t.Number()]);
51
- }
52
- else if (isColumnType(column, ['PgGeometryObject', 'PgPointObject'])) {
53
- schema = t.Object({ x: t.Number(), y: t.Number() });
54
- }
55
- else if (isColumnType(column, ['PgHalfVector', 'PgVector'])) {
56
- schema = t.Array(t.Number(), column.dimensions
57
- ? {
58
- minItems: column.dimensions,
59
- maxItems: column.dimensions,
60
- }
61
- : undefined);
62
- }
63
- else if (isColumnType(column, ['PgLine'])) {
64
- schema = t.Tuple([t.Number(), t.Number(), t.Number()]);
36
+ const { type, constraint } = drizzleOrm.extractExtendedColumnType(column);
37
+ switch (type) {
38
+ case 'array': {
39
+ schema = arrayColumnToSchema(column, constraint, t);
40
+ break;
65
41
  }
66
- else if (isColumnType(column, ['PgLineABC'])) {
67
- schema = t.Object({
68
- a: t.Number(),
69
- b: t.Number(),
70
- c: t.Number(),
71
- });
72
- } // Handle other types
73
- else if (isColumnType(column, ['PgArray'])) {
74
- schema = t.Array(columnToSchema(column.baseColumn, t), column.size
75
- ? {
76
- minItems: column.size,
77
- maxItems: column.size,
78
- }
79
- : undefined);
80
- }
81
- else if (column.dataType === 'array') {
82
- schema = t.Array(t.Any());
42
+ case 'object': {
43
+ schema = objectColumnToSchema(column, constraint, t);
44
+ break;
83
45
  }
84
- else if (column.dataType === 'number') {
85
- schema = numberColumnToSchema(column, t);
46
+ case 'number': {
47
+ schema = numberColumnToSchema(column, constraint, t);
48
+ break;
86
49
  }
87
- else if (column.dataType === 'bigint') {
88
- schema = bigintColumnToSchema(column, t);
50
+ case 'bigint': {
51
+ schema = bigintColumnToSchema(column, constraint, t);
52
+ break;
89
53
  }
90
- else if (column.dataType === 'boolean') {
54
+ case 'boolean': {
91
55
  schema = t.Boolean();
56
+ break;
92
57
  }
93
- else if (column.dataType === 'date') {
94
- schema = t.Date();
58
+ case 'string': {
59
+ schema = stringColumnToSchema(column, constraint, t);
60
+ break;
95
61
  }
96
- else if (column.dataType === 'string') {
97
- schema = stringColumnToSchema(column, t);
98
- }
99
- else if (column.dataType === 'json') {
100
- schema = jsonSchema;
101
- }
102
- else if (column.dataType === 'custom') {
62
+ case 'custom': {
103
63
  schema = t.Any();
64
+ break;
104
65
  }
105
- else if (column.dataType === 'buffer') {
106
- schema = bufferSchema;
66
+ default: {
67
+ schema = t.Any();
107
68
  }
108
69
  }
109
- if (!schema) {
110
- schema = t.Any();
111
- }
112
70
  return schema;
113
71
  }
114
- function numberColumnToSchema(column, t) {
115
- let unsigned = column.getSQLType().includes('unsigned');
72
+ function numberColumnToSchema(column, constraint, t) {
116
73
  let min;
117
74
  let max;
118
75
  let integer = false;
119
- if (isColumnType(column, ['MySqlTinyInt', 'SingleStoreTinyInt'])) {
120
- min = unsigned ? 0 : CONSTANTS.INT8_MIN;
121
- max = unsigned ? CONSTANTS.INT8_UNSIGNED_MAX : CONSTANTS.INT8_MAX;
122
- integer = true;
123
- }
124
- else if (isColumnType(column, [
125
- 'PgSmallInt',
126
- 'PgSmallSerial',
127
- 'MySqlSmallInt',
128
- 'SingleStoreSmallInt',
129
- ])) {
130
- min = unsigned ? 0 : CONSTANTS.INT16_MIN;
131
- max = unsigned ? CONSTANTS.INT16_UNSIGNED_MAX : CONSTANTS.INT16_MAX;
132
- integer = true;
133
- }
134
- else if (isColumnType(column, [
135
- 'PgReal',
136
- 'MySqlFloat',
137
- 'MySqlMediumInt',
138
- 'SingleStoreFloat',
139
- 'SingleStoreMediumInt',
140
- ])) {
141
- min = unsigned ? 0 : CONSTANTS.INT24_MIN;
142
- max = unsigned ? CONSTANTS.INT24_UNSIGNED_MAX : CONSTANTS.INT24_MAX;
143
- integer = isColumnType(column, ['MySqlMediumInt', 'SingleStoreMediumInt']);
144
- }
145
- else if (isColumnType(column, [
146
- 'PgInteger',
147
- 'PgSerial',
148
- 'MySqlInt',
149
- 'SingleStoreInt',
150
- ])) {
151
- min = unsigned ? 0 : CONSTANTS.INT32_MIN;
152
- max = unsigned ? CONSTANTS.INT32_UNSIGNED_MAX : CONSTANTS.INT32_MAX;
153
- integer = true;
154
- }
155
- else if (isColumnType(column, [
156
- 'PgDoublePrecision',
157
- 'MySqlReal',
158
- 'MySqlDouble',
159
- 'SingleStoreReal',
160
- 'SingleStoreDouble',
161
- 'SQLiteReal',
162
- ])) {
163
- min = unsigned ? 0 : CONSTANTS.INT48_MIN;
164
- max = unsigned ? CONSTANTS.INT48_UNSIGNED_MAX : CONSTANTS.INT48_MAX;
165
- }
166
- else if (isColumnType(column, [
167
- 'PgBigInt53',
168
- 'PgBigSerial53',
169
- 'MySqlBigInt53',
170
- 'MySqlSerial',
171
- 'SingleStoreBigInt53',
172
- 'SingleStoreSerial',
173
- 'SQLiteInteger',
174
- ])) {
175
- unsigned = unsigned || isColumnType(column, ['MySqlSerial', 'SingleStoreSerial']);
176
- min = unsigned ? 0 : Number.MIN_SAFE_INTEGER;
177
- max = Number.MAX_SAFE_INTEGER;
178
- integer = true;
179
- }
180
- else if (isColumnType(column, ['MySqlYear', 'SingleStoreYear'])) {
181
- min = 1901;
182
- max = 2155;
183
- integer = true;
184
- }
185
- else {
186
- min = Number.MIN_SAFE_INTEGER;
187
- max = Number.MAX_SAFE_INTEGER;
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
+ }
188
173
  }
189
174
  const key = integer ? 'Integer' : 'Number';
190
175
  return t[key]({
@@ -192,64 +177,184 @@ function numberColumnToSchema(column, t) {
192
177
  maximum: max,
193
178
  });
194
179
  }
195
- function bigintColumnToSchema(column, t) {
196
- const unsigned = column.getSQLType().includes('unsigned');
197
- const min = unsigned ? 0n : CONSTANTS.INT64_MIN;
198
- const max = unsigned ? CONSTANTS.INT64_UNSIGNED_MAX : CONSTANTS.INT64_MAX;
199
- return t.BigInt({
200
- minimum: min,
201
- maximum: max,
202
- });
203
- }
204
- function stringColumnToSchema(column, t) {
205
- if (isColumnType(column, ['PgUUID'])) {
206
- return t.String({ format: 'uuid' });
180
+ typebox.TypeRegistry.Set('BigIntStringMode', (_, value) => {
181
+ if (typeof value !== 'string' || !(/^-?\d+$/.test(value))) {
182
+ return false;
207
183
  }
208
- else if (isColumnType(column, [
209
- 'PgBinaryVector',
210
- ])) {
211
- return t.RegExp(/^[01]+$/, column.dimensions ? { maxLength: column.dimensions } : undefined);
184
+ const bigint = BigInt(value);
185
+ if (bigint < CONSTANTS.INT64_MIN || bigint > CONSTANTS.INT64_MAX) {
186
+ return false;
212
187
  }
213
- let max;
214
- let fixed = false;
215
- if (isColumnType(column, ['PgVarchar', 'SQLiteText'])) {
216
- max = column.length;
188
+ return true;
189
+ });
190
+ typebox.TypeRegistry.Set('UnsignedBigIntStringMode', (_, value) => {
191
+ if (typeof value !== 'string' || !(/^\d+$/.test(value))) {
192
+ return false;
217
193
  }
218
- else if (isColumnType(column, ['MySqlVarChar', 'SingleStoreVarChar'])) {
219
- max = column.length ?? CONSTANTS.INT16_UNSIGNED_MAX;
194
+ const bigint = BigInt(value);
195
+ if (bigint < 0 || bigint > CONSTANTS.INT64_MAX) {
196
+ return false;
220
197
  }
221
- else if (isColumnType(column, ['MySqlText', 'SingleStoreText'])) {
222
- if (column.textType === 'longtext') {
223
- max = CONSTANTS.INT32_UNSIGNED_MAX;
198
+ return true;
199
+ });
200
+ /** @internal */
201
+ const bigintStringModeSchema = {
202
+ [typebox.Kind]: 'BigIntStringMode',
203
+ type: 'string',
204
+ };
205
+ /** @internal */
206
+ const unsignedBigintStringModeSchema = {
207
+ [typebox.Kind]: 'UnsignedBigIntStringMode',
208
+ type: 'string',
209
+ };
210
+ function arrayColumnToSchema(column, constraint, t) {
211
+ switch (constraint) {
212
+ case 'geometry':
213
+ case 'point': {
214
+ return t.Tuple([t.Number(), t.Number()]);
224
215
  }
225
- else if (column.textType === 'mediumtext') {
226
- max = CONSTANTS.INT24_UNSIGNED_MAX;
216
+ case 'line': {
217
+ return t.Tuple([t.Number(), t.Number(), t.Number()]);
227
218
  }
228
- else if (column.textType === 'text') {
229
- max = CONSTANTS.INT16_UNSIGNED_MAX;
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);
230
229
  }
231
- else {
232
- max = CONSTANTS.INT8_UNSIGNED_MAX;
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());
233
257
  }
234
258
  }
235
- if (isColumnType(column, [
236
- 'PgChar',
237
- 'MySqlChar',
238
- 'SingleStoreChar',
239
- ])) {
240
- max = column.length;
241
- fixed = true;
259
+ }
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
+ }
289
+ }
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
+ }
242
304
  }
243
305
  const options = {};
244
- if (max !== undefined && fixed) {
245
- options.minLength = max;
246
- options.maxLength = max;
306
+ if (min !== undefined) {
307
+ options.minimum = min;
247
308
  }
248
- else if (max !== undefined) {
249
- options.maxLength = max;
309
+ if (max !== undefined) {
310
+ options.maximum = max;
250
311
  }
251
- return t.String(Object.keys(options).length > 0 ? options : undefined);
312
+ return t.BigInt(Object.keys(options).length > 0 ? options : undefined);
252
313
  }
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);
349
+ }
350
+
351
+ function isColumnType(column, columnTypes) {
352
+ return columnTypes.includes(column.columnType);
353
+ }
354
+ function isWithEnum(column) {
355
+ return 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
356
+ }
357
+ const isPgEnum = isWithEnum;
253
358
 
254
359
  function getColumns(tableLike) {
255
360
  return drizzleOrm.isTable(tableLike) ? drizzleOrm.getTableColumns(tableLike) : drizzleOrm.getViewSelectedFields(tableLike);
@@ -297,12 +402,14 @@ const selectConditions = {
297
402
  nullable: (column) => !column.notNull,
298
403
  };
299
404
  const insertConditions = {
300
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
405
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
406
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
301
407
  optional: (column) => !column.notNull || (column.notNull && column.hasDefault),
302
408
  nullable: (column) => !column.notNull,
303
409
  };
304
410
  const updateConditions = {
305
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
411
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
412
+ || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
306
413
  optional: () => true,
307
414
  nullable: (column) => !column.notNull,
308
415
  };
package/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/constants.ts","../src/utils.ts","../src/column.ts","../src/schema.ts"],"sourcesContent":[null,null,null,null],"names":["t","TypeRegistry","Kind","isTable","getTableColumns","getViewSelectedFields","is","Column","SQL","isView","typebox"],"mappings":"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"}
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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"}