drizzle-arktype 0.1.3-08bb2d5 → 0.1.3-2d0c9fd

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/column.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type Type } from 'arktype';
2
- import type { Column } from 'drizzle-orm';
2
+ import { type Column } from 'drizzle-orm';
3
3
  export declare const literalSchema: import("arktype").BaseType<string | number | boolean | null, {}>;
4
4
  export declare const jsonSchema: import("arktype").BaseType<string | number | boolean | any[] | Record<string, any> | null, {}>;
5
- export declare const bufferSchema: import("arktype/internal/methods/object.ts").ObjectType<Buffer, {}>;
5
+ export declare const bufferSchema: import("arktype/internal/methods/object.ts").ObjectType<Buffer<ArrayBufferLike>, {}>;
6
6
  export declare function columnToSchema(column: Column): Type;
package/column.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type Type } from 'arktype';
2
- import type { Column } from 'drizzle-orm';
2
+ import { type Column } from 'drizzle-orm';
3
3
  export declare const literalSchema: import("arktype").BaseType<string | number | boolean | null, {}>;
4
4
  export declare const jsonSchema: import("arktype").BaseType<string | number | boolean | any[] | Record<string, any> | null, {}>;
5
- export declare const bufferSchema: import("arktype/internal/methods/object.ts").ObjectType<Buffer, {}>;
5
+ export declare const bufferSchema: import("arktype/internal/methods/object.ts").ObjectType<Buffer<ArrayBufferLike>, {}>;
6
6
  export declare function columnToSchema(column: Column): Type;
package/column.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type Type } from 'arktype';
2
- import type { Column } from 'drizzle-orm';
2
+ import { type Column } from 'drizzle-orm';
3
3
  export declare const literalSchema: import("arktype").BaseType<string | number | boolean | null, {}>;
4
4
  export declare const jsonSchema: import("arktype").BaseType<string | number | boolean | any[] | Record<string, any> | null, {}>;
5
- export declare const bufferSchema: import("arktype/internal/methods/object.ts").ObjectType<Buffer, {}>;
5
+ export declare const bufferSchema: import("arktype/internal/methods/object.ts").ObjectType<Buffer<ArrayBufferLike>, {}>;
6
6
  export declare function columnToSchema(column: Column): Type;
@@ -1,9 +1,9 @@
1
- import { Type, type } from 'arktype';
2
- import type { Column } from 'drizzle-orm';
1
+ import type { Type, type } from 'arktype';
2
+ import type { Column, ColumnTypeData, ExtractColumnTypeData } from 'drizzle-orm';
3
3
  import type { Json } from "./utils.cjs";
4
4
  export type ArktypeNullable<TSchema> = Type<type.infer<TSchema> | null>;
5
5
  export type ArktypeOptional<TSchema> = [Type<type.infer<TSchema>>, '?'];
6
- export type GetArktypeType<TColumn extends Column> = TColumn['_']['columnType'] extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson' | 'CockroachJsonb' ? unknown extends TColumn['_']['data'] ? Type<Json> : Type<TColumn['_']['data']> : Type<TColumn['_']['data']>;
6
+ export type GetArktypeType<TColumn extends Column, TType extends ColumnTypeData = ExtractColumnTypeData<TColumn['_']['dataType']>> = TType['constraint'] extends 'json' ? unknown extends TColumn['_']['data'] ? Type<Json> : Type<TColumn['_']['data']> : TType['type'] extends 'custom' ? Type<any> : Type<TColumn['_']['data']>;
7
7
  type HandleSelectColumn<TSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TSchema : ArktypeNullable<TSchema>;
8
8
  type HandleInsertColumn<TSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? ArktypeOptional<TSchema> : TSchema : ArktypeOptional<ArktypeNullable<TSchema>>;
9
9
  type HandleUpdateColumn<TSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? ArktypeOptional<TSchema> : ArktypeOptional<ArktypeNullable<TSchema>>;
@@ -1,9 +1,9 @@
1
- import { Type, type } from 'arktype';
2
- import type { Column } from 'drizzle-orm';
1
+ import type { Type, type } from 'arktype';
2
+ import type { Column, ColumnTypeData, ExtractColumnTypeData } from 'drizzle-orm';
3
3
  import type { Json } from "./utils.mjs";
4
4
  export type ArktypeNullable<TSchema> = Type<type.infer<TSchema> | null>;
5
5
  export type ArktypeOptional<TSchema> = [Type<type.infer<TSchema>>, '?'];
6
- export type GetArktypeType<TColumn extends Column> = TColumn['_']['columnType'] extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson' | 'CockroachJsonb' ? unknown extends TColumn['_']['data'] ? Type<Json> : Type<TColumn['_']['data']> : Type<TColumn['_']['data']>;
6
+ export type GetArktypeType<TColumn extends Column, TType extends ColumnTypeData = ExtractColumnTypeData<TColumn['_']['dataType']>> = TType['constraint'] extends 'json' ? unknown extends TColumn['_']['data'] ? Type<Json> : Type<TColumn['_']['data']> : TType['type'] extends 'custom' ? Type<any> : Type<TColumn['_']['data']>;
7
7
  type HandleSelectColumn<TSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TSchema : ArktypeNullable<TSchema>;
8
8
  type HandleInsertColumn<TSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? ArktypeOptional<TSchema> : TSchema : ArktypeOptional<ArktypeNullable<TSchema>>;
9
9
  type HandleUpdateColumn<TSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? ArktypeOptional<TSchema> : ArktypeOptional<ArktypeNullable<TSchema>>;
package/column.types.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { Type, type } from 'arktype';
2
- import type { Column } from 'drizzle-orm';
1
+ import type { Type, type } from 'arktype';
2
+ import type { Column, ColumnTypeData, ExtractColumnTypeData } from 'drizzle-orm';
3
3
  import type { Json } from './utils.js';
4
4
  export type ArktypeNullable<TSchema> = Type<type.infer<TSchema> | null>;
5
5
  export type ArktypeOptional<TSchema> = [Type<type.infer<TSchema>>, '?'];
6
- export type GetArktypeType<TColumn extends Column> = TColumn['_']['columnType'] extends 'PgJson' | 'PgJsonb' | 'MySqlJson' | 'SingleStoreJson' | 'SQLiteTextJson' | 'SQLiteBlobJson' | 'CockroachJsonb' ? unknown extends TColumn['_']['data'] ? Type<Json> : Type<TColumn['_']['data']> : Type<TColumn['_']['data']>;
6
+ export type GetArktypeType<TColumn extends Column, TType extends ColumnTypeData = ExtractColumnTypeData<TColumn['_']['dataType']>> = TType['constraint'] extends 'json' ? unknown extends TColumn['_']['data'] ? Type<Json> : Type<TColumn['_']['data']> : TType['type'] extends 'custom' ? Type<any> : Type<TColumn['_']['data']>;
7
7
  type HandleSelectColumn<TSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TSchema : ArktypeNullable<TSchema>;
8
8
  type HandleInsertColumn<TSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? TColumn['_']['hasDefault'] extends true ? ArktypeOptional<TSchema> : TSchema : ArktypeOptional<ArktypeNullable<TSchema>>;
9
9
  type HandleUpdateColumn<TSchema, TColumn extends Column> = TColumn['_']['notNull'] extends true ? ArktypeOptional<TSchema> : ArktypeOptional<ArktypeNullable<TSchema>>;
package/index.cjs CHANGED
@@ -24,191 +24,214 @@ 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 = arktype.type.string.or(arktype.type.number).or(arktype.type.boolean).or(arktype.type.null);
36
28
  const jsonSchema = literalSchema.or(arktype.type.unknown.as().array()).or(arktype.type.object.as());
37
29
  const bufferSchema = arktype.type.unknown.narrow((value) => value instanceof Buffer).as().describe(// eslint-disable-line no-instanceof/no-instanceof
38
30
  'a Buffer instance');
39
31
  function columnToSchema(column) {
40
32
  let schema;
41
- if (isWithEnum(column)) {
42
- schema = column.enumValues.length ? arktype.type.enumerated(...column.enumValues) : arktype.type.string;
43
- }
44
- if (!schema) {
45
- // Handle specific types
46
- if (isColumnType(column, [
47
- 'PgGeometry',
48
- 'PgPointTuple',
49
- 'CockroachGeometry',
50
- ])) {
51
- schema = arktype.type([arktype.type.number, arktype.type.number]);
52
- }
53
- else if (isColumnType(column, [
54
- 'PgGeometryObject',
55
- 'PgPointObject',
56
- 'CockroachGeometryObject',
57
- ])) {
58
- schema = arktype.type({
59
- x: arktype.type.number,
60
- y: arktype.type.number,
61
- });
33
+ const { type: columnType, constraint } = drizzleOrm.extractExtendedColumnType(column);
34
+ switch (columnType) {
35
+ case 'array': {
36
+ schema = arrayColumnToSchema(column, constraint);
37
+ break;
62
38
  }
63
- else if (isColumnType(column, [
64
- 'PgHalfVector',
65
- 'PgVector',
66
- 'SingleStoreVector',
67
- 'CockroachVector',
68
- ])) {
69
- schema = column.dimensions
70
- ? arktype.type.number.array().exactlyLength(column.dimensions)
71
- : arktype.type.number.array();
72
- }
73
- else if (isColumnType(column, ['PgLine'])) {
74
- schema = arktype.type([arktype.type.number, arktype.type.number, arktype.type.number]);
75
- }
76
- else if (isColumnType(column, ['PgLineABC'])) {
77
- schema = arktype.type({
78
- a: arktype.type.number,
79
- b: arktype.type.number,
80
- c: arktype.type.number,
81
- });
82
- } // Handle other types
83
- else if (isColumnType(column, ['PgArray', 'CockroachArray'])) {
84
- const arraySchema = columnToSchema(column.baseColumn).array();
85
- schema = column.size ? arraySchema.exactlyLength(column.size) : arraySchema;
86
- }
87
- else if (column.dataType === 'array') {
88
- schema = arktype.type.unknown.array();
39
+ case 'object': {
40
+ schema = objectColumnToSchema(column, constraint);
41
+ break;
89
42
  }
90
- else if (column.dataType === 'number') {
91
- schema = numberColumnToSchema(column);
43
+ case 'number': {
44
+ schema = numberColumnToSchema(column, constraint);
45
+ break;
92
46
  }
93
- else if (column.dataType === 'bigint') {
94
- schema = bigintColumnToSchema(column);
47
+ case 'bigint': {
48
+ schema = bigintColumnToSchema(column, constraint);
49
+ break;
95
50
  }
96
- else if (column.dataType === 'boolean') {
51
+ case 'boolean': {
97
52
  schema = arktype.type.boolean;
53
+ break;
98
54
  }
99
- else if (column.dataType === 'date') {
100
- schema = arktype.type.Date;
101
- }
102
- else if (column.dataType === 'string') {
103
- schema = stringColumnToSchema(column);
55
+ case 'string': {
56
+ schema = stringColumnToSchema(column, constraint);
57
+ break;
104
58
  }
105
- else if (column.dataType === 'json') {
106
- schema = jsonSchema;
107
- }
108
- else if (column.dataType === 'custom') {
59
+ case 'custom': {
109
60
  schema = arktype.type.unknown;
61
+ break;
110
62
  }
111
- else if (column.dataType === 'buffer') {
112
- schema = bufferSchema;
63
+ default: {
64
+ schema = arktype.type.unknown;
113
65
  }
114
66
  }
115
- if (!schema) {
116
- schema = arktype.type.unknown;
117
- }
118
67
  return schema;
119
68
  }
120
- function numberColumnToSchema(column) {
121
- let unsigned = column.getSQLType().includes('unsigned') || isColumnType(column, ['MsSqlTinyInt']);
69
+ function numberColumnToSchema(column, constraint) {
122
70
  let min;
123
71
  let max;
124
72
  let integer = false;
125
- if (isColumnType(column, [
126
- 'MySqlTinyInt',
127
- 'SingleStoreTinyInt',
128
- 'MsSqlTinyInt',
129
- ])) {
130
- min = unsigned ? 0 : CONSTANTS.INT8_MIN;
131
- max = unsigned ? CONSTANTS.INT8_UNSIGNED_MAX : CONSTANTS.INT8_MAX;
132
- integer = true;
133
- }
134
- else if (isColumnType(column, [
135
- 'PgSmallInt',
136
- 'PgSmallSerial',
137
- 'MySqlSmallInt',
138
- 'SingleStoreSmallInt',
139
- 'MsSqlSmallInt',
140
- 'CockroachSmallInt',
141
- ])) {
142
- min = unsigned ? 0 : CONSTANTS.INT16_MIN;
143
- max = unsigned ? CONSTANTS.INT16_UNSIGNED_MAX : CONSTANTS.INT16_MAX;
144
- integer = true;
145
- }
146
- else if (isColumnType(column, [
147
- 'PgReal',
148
- 'MySqlFloat',
149
- 'MySqlMediumInt',
150
- 'SingleStoreFloat',
151
- 'SingleStoreMediumInt',
152
- 'MsSqlReal',
153
- 'CockroachReal',
154
- ])) {
155
- min = unsigned ? 0 : CONSTANTS.INT24_MIN;
156
- max = unsigned ? CONSTANTS.INT24_UNSIGNED_MAX : CONSTANTS.INT24_MAX;
157
- integer = isColumnType(column, ['MySqlMediumInt', 'SingleStoreMediumInt']);
158
- }
159
- else if (isColumnType(column, [
160
- 'PgInteger',
161
- 'PgSerial',
162
- 'MySqlInt',
163
- 'SingleStoreInt',
164
- 'MsSqlInt',
165
- 'CockroachInteger',
166
- ])) {
167
- min = unsigned ? 0 : CONSTANTS.INT32_MIN;
168
- max = unsigned ? CONSTANTS.INT32_UNSIGNED_MAX : CONSTANTS.INT32_MAX;
169
- integer = true;
170
- }
171
- else if (isColumnType(column, [
172
- 'PgDoublePrecision',
173
- 'MySqlReal',
174
- 'MySqlDouble',
175
- 'SingleStoreReal',
176
- 'SingleStoreDouble',
177
- 'SQLiteReal',
178
- 'MsSqlFloat',
179
- 'CockroachFloat',
180
- ])) {
181
- min = unsigned ? 0 : CONSTANTS.INT48_MIN;
182
- max = unsigned ? CONSTANTS.INT48_UNSIGNED_MAX : CONSTANTS.INT48_MAX;
183
- }
184
- else if (isColumnType(column, [
185
- 'PgBigInt53',
186
- 'PgBigSerial53',
187
- 'MySqlBigInt53',
188
- 'MySqlSerial',
189
- 'MySqlDecimalNumber',
190
- 'SingleStoreBigInt53',
191
- 'SingleStoreSerial',
192
- 'SingleStoreDecimalNumber',
193
- 'SQLiteInteger',
194
- 'CockroachBigInt53',
195
- ])
196
- || (isColumnType(column, ['MsSqlBigInt']) && column.mode === 'number')) {
197
- unsigned = unsigned || isColumnType(column, ['MySqlSerial', 'SingleStoreSerial']);
198
- min = unsigned ? 0 : Number.MIN_SAFE_INTEGER;
199
- max = Number.MAX_SAFE_INTEGER;
200
- integer = !isColumnType(column, ['MySqlDecimalNumber', 'SingleStoreDecimalNumber']);
73
+ switch (constraint) {
74
+ case 'int8': {
75
+ min = CONSTANTS.INT8_MIN;
76
+ max = CONSTANTS.INT8_MAX;
77
+ integer = true;
78
+ break;
79
+ }
80
+ case 'uint8': {
81
+ min = 0;
82
+ max = CONSTANTS.INT8_UNSIGNED_MAX;
83
+ integer = true;
84
+ break;
85
+ }
86
+ case 'int16': {
87
+ min = CONSTANTS.INT16_MIN;
88
+ max = CONSTANTS.INT16_MAX;
89
+ integer = true;
90
+ break;
91
+ }
92
+ case 'uint16': {
93
+ min = 0;
94
+ max = CONSTANTS.INT16_UNSIGNED_MAX;
95
+ integer = true;
96
+ break;
97
+ }
98
+ case 'int24': {
99
+ min = CONSTANTS.INT24_MIN;
100
+ max = CONSTANTS.INT24_MAX;
101
+ integer = true;
102
+ break;
103
+ }
104
+ case 'uint24': {
105
+ min = 0;
106
+ max = CONSTANTS.INT24_UNSIGNED_MAX;
107
+ integer = true;
108
+ break;
109
+ }
110
+ case 'int32': {
111
+ min = CONSTANTS.INT32_MIN;
112
+ max = CONSTANTS.INT32_MAX;
113
+ integer = true;
114
+ break;
115
+ }
116
+ case 'uint32': {
117
+ min = 0;
118
+ max = CONSTANTS.INT32_UNSIGNED_MAX;
119
+ integer = true;
120
+ break;
121
+ }
122
+ case 'int53': {
123
+ min = Number.MIN_SAFE_INTEGER;
124
+ max = Number.MAX_SAFE_INTEGER;
125
+ integer = true;
126
+ break;
127
+ }
128
+ case 'uint53': {
129
+ min = 0;
130
+ max = Number.MAX_SAFE_INTEGER;
131
+ integer = true;
132
+ break;
133
+ }
134
+ case 'float': {
135
+ min = CONSTANTS.INT24_MIN;
136
+ max = CONSTANTS.INT24_MAX;
137
+ break;
138
+ }
139
+ case 'ufloat': {
140
+ min = 0;
141
+ max = CONSTANTS.INT24_UNSIGNED_MAX;
142
+ break;
143
+ }
144
+ case 'double': {
145
+ min = CONSTANTS.INT48_MIN;
146
+ max = CONSTANTS.INT48_MAX;
147
+ break;
148
+ }
149
+ case 'udouble': {
150
+ min = 0;
151
+ max = CONSTANTS.INT48_UNSIGNED_MAX;
152
+ break;
153
+ }
154
+ case 'year': {
155
+ min = 1901;
156
+ max = 2155;
157
+ integer = true;
158
+ break;
159
+ }
160
+ case 'unsigned': {
161
+ min = 0;
162
+ max = Number.MAX_SAFE_INTEGER;
163
+ break;
164
+ }
165
+ default: {
166
+ min = Number.MIN_SAFE_INTEGER;
167
+ max = Number.MAX_SAFE_INTEGER;
168
+ break;
169
+ }
201
170
  }
202
- else if (isColumnType(column, ['MySqlYear', 'SingleStoreYear'])) {
203
- min = 1901;
204
- max = 2155;
205
- integer = true;
171
+ return (integer ? arktype.type.keywords.number.integer : arktype.type.number).atLeast(min).atMost(max);
172
+ }
173
+ function arrayColumnToSchema(column, constraint) {
174
+ switch (constraint) {
175
+ case 'geometry':
176
+ case 'point': {
177
+ return arktype.type([arktype.type.number, arktype.type.number]);
178
+ }
179
+ case 'line': {
180
+ return arktype.type([arktype.type.number, arktype.type.number, arktype.type.number]);
181
+ }
182
+ case 'vector':
183
+ case 'halfvector': {
184
+ const length = column.length;
185
+ return length ? arktype.type.number.array().exactlyLength(length) : arktype.type.number.array();
186
+ }
187
+ case 'int64vector': {
188
+ const length = column.length;
189
+ // TODO - INT64 number range
190
+ return length ? arktype.type.bigint.array().exactlyLength(length) : arktype.type.bigint.array();
191
+ }
192
+ case 'basecolumn': {
193
+ const length = column.length;
194
+ const schema = column.baseColumn
195
+ ? columnToSchema(column.baseColumn).array()
196
+ : arktype.type.unknown.array();
197
+ if (length)
198
+ return schema.exactlyLength(length);
199
+ return schema;
200
+ }
201
+ default: {
202
+ return arktype.type.unknown.array();
203
+ }
206
204
  }
207
- else {
208
- min = Number.MIN_SAFE_INTEGER;
209
- max = Number.MAX_SAFE_INTEGER;
205
+ }
206
+ function objectColumnToSchema(column, constraint) {
207
+ switch (constraint) {
208
+ case 'buffer': {
209
+ return bufferSchema;
210
+ }
211
+ case 'date': {
212
+ return arktype.type.Date;
213
+ }
214
+ case 'geometry':
215
+ case 'point': {
216
+ return arktype.type({
217
+ x: arktype.type.number,
218
+ y: arktype.type.number,
219
+ });
220
+ }
221
+ case 'json': {
222
+ return jsonSchema;
223
+ }
224
+ case 'line': {
225
+ return arktype.type({
226
+ a: arktype.type.number,
227
+ b: arktype.type.number,
228
+ c: arktype.type.number,
229
+ });
230
+ }
231
+ default: {
232
+ return arktype.type({});
233
+ }
210
234
  }
211
- return (integer ? arktype.type.keywords.number.integer : arktype.type.number).atLeast(min).atMost(max);
212
235
  }
213
236
  /** @internal */
214
237
  const unsignedBigintNarrow = (v, ctx) => v < 0n ? ctx.mustBe('greater than') : v > CONSTANTS.INT64_UNSIGNED_MAX ? ctx.mustBe('less than') : true;
@@ -231,63 +254,51 @@ const bigintStringModeSchema = arktype.type.string.narrow((v, ctx) => {
231
254
  }
232
255
  return true;
233
256
  });
234
- function bigintColumnToSchema(column) {
235
- if (isColumnType(column, ['MsSqlBigInt'])) {
236
- if (column.mode === 'string') {
237
- return bigintStringModeSchema;
257
+ function bigintColumnToSchema(column, constraint) {
258
+ switch (constraint) {
259
+ case 'int64': {
260
+ return arktype.type.bigint.narrow(bigintNarrow);
238
261
  }
239
- else if (column.mode === 'number') {
240
- return numberColumnToSchema(column);
262
+ case 'uint64': {
263
+ return arktype.type.bigint.narrow(unsignedBigintNarrow);
241
264
  }
242
265
  }
243
- const unsigned = column.getSQLType().includes('unsigned');
244
- return arktype.type.bigint.narrow(unsigned ? unsignedBigintNarrow : bigintNarrow);
266
+ return arktype.type.bigint;
245
267
  }
246
- function stringColumnToSchema(column) {
247
- if (isColumnType(column, ['PgUUID', 'CockroachUUID'])) {
248
- return arktype.type(/^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$/iu).describe('a RFC-4122-compliant UUID');
249
- }
250
- if (isColumnType(column, ['PgBinaryVector', 'CockroachBinaryVector'])) {
251
- return arktype.type(`/^[01]{${column.dimensions}}$/`)
252
- .describe(`a string containing ones or zeros while being ${column.dimensions} characters long`);
268
+ function stringColumnToSchema(column, constraint) {
269
+ const { name: columnName, length, isLengthExact } = column;
270
+ if (constraint === 'binary') {
271
+ return arktype.type(`/^[01]${length ? `{${isLengthExact ? length : `0,${length}`}}` : '*'}$/`)
272
+ .describe(`a string containing ones or zeros${length ? ` while being ${isLengthExact ? '' : 'up to '}${length} characters long` : ''}`);
253
273
  }
254
- let max;
255
- let fixed = false;
256
- // Char columns are padded to a fixed length. The input can be equal or less than the set length
257
- if (isColumnType(column, [
258
- 'PgVarchar',
259
- 'SQLiteText',
260
- 'PgChar',
261
- 'MySqlChar',
262
- 'SingleStoreChar',
263
- 'MsSqlChar',
264
- 'MsSqlVarChar',
265
- 'CockroachChar',
266
- 'CockroachVarchar',
267
- 'CockroachString',
268
- ])) {
269
- max = column.length;
270
- }
271
- else if (isColumnType(column, ['MySqlVarChar', 'SingleStoreVarChar'])) {
272
- max = column.length ?? CONSTANTS.INT16_UNSIGNED_MAX;
274
+ if (constraint === 'uuid') {
275
+ return arktype.type(/^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$/iu).describe('a RFC-4122-compliant UUID');
273
276
  }
274
- else if (isColumnType(column, ['MySqlText', 'SingleStoreText'])) {
275
- if (column.textType === 'longtext') {
276
- max = CONSTANTS.INT32_UNSIGNED_MAX;
277
- }
278
- else if (column.textType === 'mediumtext') {
279
- max = CONSTANTS.INT24_UNSIGNED_MAX;
280
- }
281
- else if (column.textType === 'text') {
282
- max = CONSTANTS.INT16_UNSIGNED_MAX;
283
- }
284
- else {
285
- max = CONSTANTS.INT8_UNSIGNED_MAX;
277
+ if (constraint === 'enum') {
278
+ const enumValues = column.enumValues;
279
+ if (!enumValues) {
280
+ throw new Error(`Column "${drizzleOrm.getTableName(drizzleOrm.getColumnTable(column))}"."${columnName}" is of 'enum' type, but lacks enum values`);
286
281
  }
282
+ return arktype.type.enumerated(...enumValues);
283
+ }
284
+ if (constraint === 'int64') {
285
+ return bigintStringModeSchema;
287
286
  }
288
- return max && fixed ? arktype.type.string.exactlyLength(max) : max ? arktype.type.string.atMostLength(max) : arktype.type.string;
287
+ return length && isLengthExact
288
+ ? arktype.type.string.exactlyLength(length)
289
+ : length
290
+ ? arktype.type.string.atMostLength(length)
291
+ : arktype.type.string;
289
292
  }
290
293
 
294
+ function isColumnType(column, columnTypes) {
295
+ return columnTypes.includes(column.columnType);
296
+ }
297
+ function isWithEnum(column) {
298
+ return 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
299
+ }
300
+ const isPgEnum = isWithEnum;
301
+
291
302
  function getColumns(tableLike) {
292
303
  return drizzleOrm.isTable(tableLike) ? drizzleOrm.getTableColumns(tableLike) : drizzleOrm.getViewSelectedFields(tableLike);
293
304
  }
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":["type","isTable","getTableColumns","getViewSelectedFields","is","Column","SQL","isView"],"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":["type","extractExtendedColumnType","getTableName","getColumnTable","isTable","getTableColumns","getViewSelectedFields","is","Column","SQL","isView"],"mappings":"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"}