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

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,5 +1,5 @@
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
5
  export declare const bufferSchema: import("arktype/internal/methods/object.ts").ObjectType<Buffer, {}>;
package/column.d.mts CHANGED
@@ -1,5 +1,5 @@
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
5
  export declare const bufferSchema: import("arktype/internal/methods/object.ts").ObjectType<Buffer, {}>;
package/column.d.ts CHANGED
@@ -1,5 +1,5 @@
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
5
  export declare const bufferSchema: import("arktype/internal/methods/object.ts").ObjectType<Buffer, {}>;
@@ -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,269 +24,250 @@ 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
+ default: {
161
+ min = Number.MIN_SAFE_INTEGER;
162
+ max = Number.MAX_SAFE_INTEGER;
163
+ break;
164
+ }
201
165
  }
202
- else if (isColumnType(column, ['MySqlYear', 'SingleStoreYear'])) {
203
- min = 1901;
204
- max = 2155;
205
- integer = true;
166
+ return (integer ? arktype.type.keywords.number.integer : arktype.type.number).atLeast(min).atMost(max);
167
+ }
168
+ function arrayColumnToSchema(column, constraint) {
169
+ switch (constraint) {
170
+ case 'geometry':
171
+ case 'point': {
172
+ return arktype.type([arktype.type.number, arktype.type.number]);
173
+ }
174
+ case 'line': {
175
+ return arktype.type([arktype.type.number, arktype.type.number, arktype.type.number]);
176
+ }
177
+ case 'vector':
178
+ case 'halfvector': {
179
+ const length = column.length;
180
+ return length ? arktype.type.number.array().exactlyLength(length) : arktype.type.number.array();
181
+ }
182
+ case 'basecolumn': {
183
+ const length = column.length;
184
+ const schema = column.baseColumn
185
+ ? columnToSchema(column.baseColumn).array()
186
+ : arktype.type.unknown.array();
187
+ if (length)
188
+ return schema.exactlyLength(length);
189
+ return schema;
190
+ }
191
+ default: {
192
+ return arktype.type.unknown.array();
193
+ }
206
194
  }
207
- else {
208
- min = Number.MIN_SAFE_INTEGER;
209
- max = Number.MAX_SAFE_INTEGER;
195
+ }
196
+ function objectColumnToSchema(column, constraint) {
197
+ switch (constraint) {
198
+ case 'buffer': {
199
+ return bufferSchema;
200
+ }
201
+ case 'date': {
202
+ return arktype.type.Date;
203
+ }
204
+ case 'geometry':
205
+ case 'point': {
206
+ return arktype.type({
207
+ x: arktype.type.number,
208
+ y: arktype.type.number,
209
+ });
210
+ }
211
+ case 'json': {
212
+ return jsonSchema;
213
+ }
214
+ case 'line': {
215
+ return arktype.type({
216
+ a: arktype.type.number,
217
+ b: arktype.type.number,
218
+ c: arktype.type.number,
219
+ });
220
+ }
221
+ default: {
222
+ return arktype.type({});
223
+ }
210
224
  }
211
- return (integer ? arktype.type.keywords.number.integer : arktype.type.number).atLeast(min).atMost(max);
212
225
  }
213
226
  /** @internal */
214
227
  const unsignedBigintNarrow = (v, ctx) => v < 0n ? ctx.mustBe('greater than') : v > CONSTANTS.INT64_UNSIGNED_MAX ? ctx.mustBe('less than') : true;
215
228
  /** @internal */
216
229
  const bigintNarrow = (v, ctx) => v < CONSTANTS.INT64_MIN ? ctx.mustBe('greater than') : v > CONSTANTS.INT64_MAX ? ctx.mustBe('less than') : true;
217
- /** @internal */
218
- const bigintStringModeSchema = arktype.type.string.narrow((v, ctx) => {
219
- if (typeof v !== 'string') {
220
- return ctx.mustBe('a string');
221
- }
222
- if (!(/^-?\d+$/.test(v))) {
223
- return ctx.mustBe('a string representing a number');
224
- }
225
- const bigint = BigInt(v);
226
- if (bigint < CONSTANTS.INT64_MIN) {
227
- return ctx.mustBe('greater than');
228
- }
229
- if (bigint > CONSTANTS.INT64_MAX) {
230
- return ctx.mustBe('less than');
231
- }
232
- return true;
233
- });
234
- function bigintColumnToSchema(column) {
235
- if (isColumnType(column, ['MsSqlBigInt'])) {
236
- if (column.mode === 'string') {
237
- return bigintStringModeSchema;
230
+ function bigintColumnToSchema(column, constraint) {
231
+ switch (constraint) {
232
+ case 'int64': {
233
+ return arktype.type.bigint.narrow(bigintNarrow);
238
234
  }
239
- else if (column.mode === 'number') {
240
- return numberColumnToSchema(column);
235
+ case 'uint64': {
236
+ return arktype.type.bigint.narrow(unsignedBigintNarrow);
241
237
  }
242
238
  }
243
- const unsigned = column.getSQLType().includes('unsigned');
244
- return arktype.type.bigint.narrow(unsigned ? unsignedBigintNarrow : bigintNarrow);
239
+ return arktype.type.bigint;
245
240
  }
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`);
253
- }
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;
241
+ function stringColumnToSchema(column, constraint) {
242
+ const { name: columnName, length, isLengthExact } = column;
243
+ if (constraint === 'binary') {
244
+ return arktype.type(`/^[01]${length ? `{${isLengthExact ? length : `0,${length}`}}` : '*'}$/`)
245
+ .describe(`a string containing ones or zeros${length ? ` while being ${isLengthExact ? '' : 'up to '}${length} characters long` : ''}`);
270
246
  }
271
- else if (isColumnType(column, ['MySqlVarChar', 'SingleStoreVarChar'])) {
272
- max = column.length ?? CONSTANTS.INT16_UNSIGNED_MAX;
247
+ if (constraint === 'uuid') {
248
+ return arktype.type(/^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$/iu).describe('a RFC-4122-compliant UUID');
273
249
  }
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;
250
+ if (constraint === 'enum') {
251
+ const enumValues = column.enumValues;
252
+ if (!enumValues) {
253
+ throw new Error(`Column "${drizzleOrm.getTableName(drizzleOrm.getColumnTable(column))}"."${columnName}" is of 'enum' type, but lacks enum values`);
286
254
  }
255
+ return arktype.type.enumerated(...enumValues);
287
256
  }
288
- return max && fixed ? arktype.type.string.exactlyLength(max) : max ? arktype.type.string.atMostLength(max) : arktype.type.string;
257
+ return length && isLengthExact
258
+ ? arktype.type.string.exactlyLength(length)
259
+ : length
260
+ ? arktype.type.string.atMostLength(length)
261
+ : arktype.type.string;
262
+ }
263
+
264
+ function isColumnType(column, columnTypes) {
265
+ return columnTypes.includes(column.columnType);
266
+ }
267
+ function isWithEnum(column) {
268
+ return 'enumValues' in column && Array.isArray(column.enumValues) && column.enumValues.length > 0;
289
269
  }
270
+ const isPgEnum = isWithEnum;
290
271
 
291
272
  function getColumns(tableLike) {
292
273
  return drizzleOrm.isTable(tableLike) ? drizzleOrm.getTableColumns(tableLike) : drizzleOrm.getViewSelectedFields(tableLike);
@@ -339,8 +320,7 @@ const createSelectSchema = ((entity, refine) => {
339
320
  const createInsertSchema = ((entity, refine) => {
340
321
  const columns = getColumns(entity);
341
322
  return handleColumns(columns, refine ?? {}, {
342
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
343
- || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
323
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
344
324
  optional: (column) => !column.notNull || (column.notNull && column.hasDefault),
345
325
  nullable: (column) => !column.notNull,
346
326
  });
@@ -348,8 +328,7 @@ const createInsertSchema = ((entity, refine) => {
348
328
  const createUpdateSchema = ((entity, refine) => {
349
329
  const columns = getColumns(entity);
350
330
  return handleColumns(columns, refine ?? {}, {
351
- never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always'
352
- || ('identity' in (column ?? {}) && typeof column?.identity !== 'undefined'),
331
+ never: (column) => column?.generated?.type === 'always' || column?.generatedIdentity?.type === 'always',
353
332
  optional: () => true,
354
333
  nullable: (column) => !column.notNull,
355
334
  });
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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"}