orchid-orm 1.6.1 → 1.6.3

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/dist/index.d.ts CHANGED
@@ -146,12 +146,31 @@ declare type Table = {
146
146
  };
147
147
  declare const createBaseTable: <CT extends ColumnTypesBase>(options?: {
148
148
  columnTypes?: CT | ((t: DefaultColumnTypes) => CT) | undefined;
149
+ snakeCase?: boolean | undefined;
149
150
  }) => {
150
151
  new (): {
151
152
  table: string;
152
153
  columns: TableConfig;
153
154
  schema?: string | undefined;
154
155
  columnTypes: ColumnTypesBase extends CT ? {
156
+ timestamps: <T extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
157
+ name(name: string): {
158
+ timestamp(): T;
159
+ };
160
+ timestamp(): T;
161
+ }) => {
162
+ createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
163
+ updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
164
+ };
165
+ timestampsSnakeCase: <T_1 extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
166
+ name(name: string): {
167
+ timestamp(): T_1;
168
+ };
169
+ timestamp(): T_1;
170
+ }) => {
171
+ createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
172
+ updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
173
+ };
155
174
  name: typeof orchid_core.name;
156
175
  raw: (sql: string, values?: false | Record<string, unknown> | undefined) => orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>;
157
176
  smallint(this: ColumnTypesBase): pqb.SmallIntColumn;
@@ -177,7 +196,7 @@ declare const createBaseTable: <CT extends ColumnTypesBase>(options?: {
177
196
  timeWithTimeZone<Precision_5 extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision_5 | undefined): pqb.TimeWithTimeZoneColumn<Precision_5>;
178
197
  interval<Fields extends string | undefined = undefined, Precision_6 extends number | undefined = undefined>(this: ColumnTypesBase, fields?: Fields | undefined, precision?: Precision_6 | undefined): pqb.IntervalColumn<Fields, Precision_6>;
179
198
  boolean(this: ColumnTypesBase): pqb.BooleanColumn;
180
- enum<U extends string, T extends [U, ...U[]]>(this: ColumnTypesBase, dataType: string, type: T): pqb.EnumColumn<U, T>;
199
+ enum<U extends string, T_2 extends [U, ...U[]]>(this: ColumnTypesBase, dataType: string, type: T_2): pqb.EnumColumn<U, T_2>;
181
200
  point(this: ColumnTypesBase): pqb.PointColumn;
182
201
  line(this: ColumnTypesBase): pqb.LineColumn;
183
202
  lseg(this: ColumnTypesBase): pqb.LsegColumn;
@@ -197,8 +216,8 @@ declare const createBaseTable: <CT extends ColumnTypesBase>(options?: {
197
216
  xml(this: ColumnTypesBase): pqb.XMLColumn;
198
217
  json<Type extends orchid_core.JSONTypeAny>(this: ColumnTypesBase, schemaOrFn: Type | ((j: {
199
218
  set: <Value extends orchid_core.JSONTypeAny>(valueType: Value) => orchid_core.JSONSet<Value>;
200
- tuple: <T_1 extends [] | orchid_core.JSONTupleItems, Rest extends orchid_core.JSONTypeAny | null = null>(items: T_1, rest?: Rest) => orchid_core.JSONTuple<T_1, Rest>;
201
- union: <T_2 extends [orchid_core.JSONTypeAny, orchid_core.JSONTypeAny, ...orchid_core.JSONTypeAny[]]>(types: T_2) => orchid_core.JSONUnion<T_2>;
219
+ tuple: <T_3 extends [] | orchid_core.JSONTupleItems, Rest extends orchid_core.JSONTypeAny | null = null>(items: T_3, rest?: Rest) => orchid_core.JSONTuple<T_3, Rest>;
220
+ union: <T_4 extends [orchid_core.JSONTypeAny, orchid_core.JSONTypeAny, ...orchid_core.JSONTypeAny[]]>(types: T_4) => orchid_core.JSONUnion<T_4>;
202
221
  any: () => orchid_core.JSONAny;
203
222
  bigint: () => orchid_core.JSONBigInt;
204
223
  boolean: () => orchid_core.JSONBoolean;
@@ -213,31 +232,25 @@ declare const createBaseTable: <CT extends ColumnTypesBase>(options?: {
213
232
  void: () => orchid_core.JSONVoid;
214
233
  array: <Type_1 extends orchid_core.JSONTypeAny>(element: Type_1) => orchid_core.JSONArray<Type_1, "many">;
215
234
  discriminatedUnion: <Discriminator extends string, DiscriminatorValue extends orchid_core.Primitive, Types extends [orchid_core.JSONDiscriminatedObject<Discriminator, DiscriminatorValue>, orchid_core.JSONDiscriminatedObject<Discriminator, DiscriminatorValue>, ...orchid_core.JSONDiscriminatedObject<Discriminator, DiscriminatorValue>[]]>(discriminator: Discriminator, options: Types) => orchid_core.JSONDiscriminatedUnion<Discriminator, DiscriminatorValue, Types[number]>;
216
- enum: <U_1 extends string, T_3 extends [U_1, ...U_1[]]>(options: T_3) => orchid_core.JSONEnum<U_1, T_3>;
217
- instanceOf: <T_4 extends new (...args: any[]) => any>(cls: T_4) => orchid_core.JSONInstanceOf<T_4>;
235
+ enum: <U_1 extends string, T_5 extends [U_1, ...U_1[]]>(options: T_5) => orchid_core.JSONEnum<U_1, T_5>;
236
+ instanceOf: <T_6 extends new (...args: any[]) => any>(cls: T_6) => orchid_core.JSONInstanceOf<T_6>;
218
237
  intersection: <Left extends orchid_core.JSONTypeAny, Right extends orchid_core.JSONTypeAny>(left: Left, right: Right) => orchid_core.JSONIntersection<Left, Right>;
219
- lazy: <T_5 extends orchid_core.JSONTypeAny>(fn: () => T_5) => orchid_core.JSONLazy<T_5>;
220
- literal: <T_6 extends orchid_core.Primitive>(value: T_6) => orchid_core.JSONLiteral<T_6>;
238
+ lazy: <T_7 extends orchid_core.JSONTypeAny>(fn: () => T_7) => orchid_core.JSONLazy<T_7>;
239
+ literal: <T_8 extends orchid_core.Primitive>(value: T_8) => orchid_core.JSONLiteral<T_8>;
221
240
  map: <Key extends orchid_core.JSONTypeAny, Value_1 extends orchid_core.JSONTypeAny>(keyType: Key, valueType: Value_1) => orchid_core.JSONMap<Key, Value_1>;
222
- nativeEnum: <T_7 extends orchid_core.EnumLike>(givenEnum: T_7) => orchid_core.JSONNativeEnum<T_7>;
223
- nullable: <T_8 extends orchid_core.JSONTypeAny>(type: T_8) => orchid_core.JSONNullable<T_8>;
224
- nullish: <T_9 extends orchid_core.JSONTypeAny>(type: T_9) => orchid_core.JSONNullish<T_9>;
225
- object: <T_10 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_10) => orchid_core.JSONObject<T_10, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }> extends infer T_11 extends object ? { [k in keyof T_11]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }> extends infer T_11 extends object ? { [k in keyof T_11]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }>[k]; } : never) & {
241
+ nativeEnum: <T_9 extends orchid_core.EnumLike>(givenEnum: T_9) => orchid_core.JSONNativeEnum<T_9>;
242
+ nullable: <T_10 extends orchid_core.JSONTypeAny>(type: T_10) => orchid_core.JSONNullable<T_10>;
243
+ nullish: <T_11 extends orchid_core.JSONTypeAny>(type: T_11) => orchid_core.JSONNullish<T_11>;
244
+ object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
226
245
  [k: string]: Catchall["type"];
227
- } extends infer T_12 extends object ? { [k_2 in keyof T_12]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }> extends infer T_11 extends object ? { [k in keyof T_11]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }>[k]; } : never) & {
246
+ } extends infer T_14 extends object ? { [k_2 in keyof T_14]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
228
247
  [k: string]: Catchall["type"];
229
248
  })[k_2]; } : never>;
230
- optional: <T_13 extends orchid_core.JSONTypeAny>(type: T_13) => orchid_core.JSONOptional<T_13>;
249
+ optional: <T_15 extends orchid_core.JSONTypeAny>(type: T_15) => orchid_core.JSONOptional<T_15>;
231
250
  record: typeof orchid_core.record;
232
251
  }) => Type)): pqb.JSONColumn<Type>;
233
252
  jsonText(this: ColumnTypesBase): pqb.JSONTextColumn;
234
253
  array<Item extends pqb.ColumnType<unknown, orchid_core.BaseOperators, unknown>>(this: ColumnTypesBase, item: Item): pqb.ArrayColumn<Item>;
235
- timestamps: <T_14 extends pqb.ColumnType<unknown, orchid_core.BaseOperators, unknown>>(this: {
236
- timestamp(): T_14;
237
- }) => {
238
- createdAt: orchid_core.ColumnWithDefault<T_14, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
239
- updatedAt: orchid_core.ColumnWithDefault<T_14, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
240
- };
241
254
  primaryKey(columns: string[], options?: {
242
255
  name?: string | undefined;
243
256
  } | undefined): {};
@@ -249,7 +262,25 @@ declare const createBaseTable: <CT extends ColumnTypesBase>(options?: {
249
262
  };
250
263
  } : CT;
251
264
  noPrimaryKey?: boolean | undefined;
252
- setColumns: <T_15 extends ColumnsShape>(fn: (t: ColumnTypesBase extends CT ? {
265
+ setColumns: <T_16 extends ColumnsShape>(fn: (t: ColumnTypesBase extends CT ? {
266
+ timestamps: <T extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
267
+ name(name: string): {
268
+ timestamp(): T;
269
+ };
270
+ timestamp(): T;
271
+ }) => {
272
+ createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
273
+ updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
274
+ };
275
+ timestampsSnakeCase: <T_1 extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>(this: {
276
+ name(name: string): {
277
+ timestamp(): T_1;
278
+ };
279
+ timestamp(): T_1;
280
+ }) => {
281
+ createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
282
+ updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
283
+ };
253
284
  name: typeof orchid_core.name;
254
285
  raw: (sql: string, values?: false | Record<string, unknown> | undefined) => orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>;
255
286
  smallint(this: ColumnTypesBase): pqb.SmallIntColumn;
@@ -275,7 +306,7 @@ declare const createBaseTable: <CT extends ColumnTypesBase>(options?: {
275
306
  timeWithTimeZone<Precision_5 extends number | undefined = undefined>(this: ColumnTypesBase, precision?: Precision_5 | undefined): pqb.TimeWithTimeZoneColumn<Precision_5>;
276
307
  interval<Fields extends string | undefined = undefined, Precision_6 extends number | undefined = undefined>(this: ColumnTypesBase, fields?: Fields | undefined, precision?: Precision_6 | undefined): pqb.IntervalColumn<Fields, Precision_6>;
277
308
  boolean(this: ColumnTypesBase): pqb.BooleanColumn;
278
- enum<U extends string, T extends [U, ...U[]]>(this: ColumnTypesBase, dataType: string, type: T): pqb.EnumColumn<U, T>;
309
+ enum<U extends string, T_2 extends [U, ...U[]]>(this: ColumnTypesBase, dataType: string, type: T_2): pqb.EnumColumn<U, T_2>;
279
310
  point(this: ColumnTypesBase): pqb.PointColumn;
280
311
  line(this: ColumnTypesBase): pqb.LineColumn;
281
312
  lseg(this: ColumnTypesBase): pqb.LsegColumn;
@@ -295,8 +326,8 @@ declare const createBaseTable: <CT extends ColumnTypesBase>(options?: {
295
326
  xml(this: ColumnTypesBase): pqb.XMLColumn;
296
327
  json<Type extends orchid_core.JSONTypeAny>(this: ColumnTypesBase, schemaOrFn: Type | ((j: {
297
328
  set: <Value extends orchid_core.JSONTypeAny>(valueType: Value) => orchid_core.JSONSet<Value>;
298
- tuple: <T_1 extends [] | orchid_core.JSONTupleItems, Rest extends orchid_core.JSONTypeAny | null = null>(items: T_1, rest?: Rest) => orchid_core.JSONTuple<T_1, Rest>;
299
- union: <T_2 extends [orchid_core.JSONTypeAny, orchid_core.JSONTypeAny, ...orchid_core.JSONTypeAny[]]>(types: T_2) => orchid_core.JSONUnion<T_2>;
329
+ tuple: <T_3 extends [] | orchid_core.JSONTupleItems, Rest extends orchid_core.JSONTypeAny | null = null>(items: T_3, rest?: Rest) => orchid_core.JSONTuple<T_3, Rest>;
330
+ union: <T_4 extends [orchid_core.JSONTypeAny, orchid_core.JSONTypeAny, ...orchid_core.JSONTypeAny[]]>(types: T_4) => orchid_core.JSONUnion<T_4>;
300
331
  any: () => orchid_core.JSONAny;
301
332
  bigint: () => orchid_core.JSONBigInt;
302
333
  boolean: () => orchid_core.JSONBoolean;
@@ -311,31 +342,25 @@ declare const createBaseTable: <CT extends ColumnTypesBase>(options?: {
311
342
  void: () => orchid_core.JSONVoid;
312
343
  array: <Type_1 extends orchid_core.JSONTypeAny>(element: Type_1) => orchid_core.JSONArray<Type_1, "many">;
313
344
  discriminatedUnion: <Discriminator extends string, DiscriminatorValue extends orchid_core.Primitive, Types extends [orchid_core.JSONDiscriminatedObject<Discriminator, DiscriminatorValue>, orchid_core.JSONDiscriminatedObject<Discriminator, DiscriminatorValue>, ...orchid_core.JSONDiscriminatedObject<Discriminator, DiscriminatorValue>[]]>(discriminator: Discriminator, options: Types) => orchid_core.JSONDiscriminatedUnion<Discriminator, DiscriminatorValue, Types[number]>;
314
- enum: <U_1 extends string, T_3 extends [U_1, ...U_1[]]>(options: T_3) => orchid_core.JSONEnum<U_1, T_3>;
315
- instanceOf: <T_4 extends new (...args: any[]) => any>(cls: T_4) => orchid_core.JSONInstanceOf<T_4>;
345
+ enum: <U_1 extends string, T_5 extends [U_1, ...U_1[]]>(options: T_5) => orchid_core.JSONEnum<U_1, T_5>;
346
+ instanceOf: <T_6 extends new (...args: any[]) => any>(cls: T_6) => orchid_core.JSONInstanceOf<T_6>;
316
347
  intersection: <Left extends orchid_core.JSONTypeAny, Right extends orchid_core.JSONTypeAny>(left: Left, right: Right) => orchid_core.JSONIntersection<Left, Right>;
317
- lazy: <T_5 extends orchid_core.JSONTypeAny>(fn: () => T_5) => orchid_core.JSONLazy<T_5>;
318
- literal: <T_6 extends orchid_core.Primitive>(value: T_6) => orchid_core.JSONLiteral<T_6>;
348
+ lazy: <T_7 extends orchid_core.JSONTypeAny>(fn: () => T_7) => orchid_core.JSONLazy<T_7>;
349
+ literal: <T_8 extends orchid_core.Primitive>(value: T_8) => orchid_core.JSONLiteral<T_8>;
319
350
  map: <Key extends orchid_core.JSONTypeAny, Value_1 extends orchid_core.JSONTypeAny>(keyType: Key, valueType: Value_1) => orchid_core.JSONMap<Key, Value_1>;
320
- nativeEnum: <T_7 extends orchid_core.EnumLike>(givenEnum: T_7) => orchid_core.JSONNativeEnum<T_7>;
321
- nullable: <T_8 extends orchid_core.JSONTypeAny>(type: T_8) => orchid_core.JSONNullable<T_8>;
322
- nullish: <T_9 extends orchid_core.JSONTypeAny>(type: T_9) => orchid_core.JSONNullish<T_9>;
323
- object: <T_10 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_10) => orchid_core.JSONObject<T_10, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }> extends infer T_11 extends object ? { [k in keyof T_11]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }> extends infer T_11 extends object ? { [k in keyof T_11]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }>[k]; } : never) & {
351
+ nativeEnum: <T_9 extends orchid_core.EnumLike>(givenEnum: T_9) => orchid_core.JSONNativeEnum<T_9>;
352
+ nullable: <T_10 extends orchid_core.JSONTypeAny>(type: T_10) => orchid_core.JSONNullable<T_10>;
353
+ nullish: <T_11 extends orchid_core.JSONTypeAny>(type: T_11) => orchid_core.JSONNullish<T_11>;
354
+ object: <T_12 extends orchid_core.JSONObjectShape, UnknownKeys extends orchid_core.UnknownKeysParam = "strip", Catchall extends orchid_core.JSONTypeAny = orchid_core.JSONTypeAny>(shape: T_12) => orchid_core.JSONObject<T_12, UnknownKeys, Catchall, orchid_core.JSONTypeAny extends Catchall ? orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never : (orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
324
355
  [k: string]: Catchall["type"];
325
- } extends infer T_12 extends object ? { [k_2 in keyof T_12]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }> extends infer T_11 extends object ? { [k in keyof T_11]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_10]: T_10[k_1]["type"]; }>[k]; } : never) & {
356
+ } extends infer T_14 extends object ? { [k_2 in keyof T_14]: ((orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }> extends infer T_13 extends object ? { [k in keyof T_13]: orchid_core.addQuestionMarks<{ [k_1 in keyof T_12]: T_12[k_1]["type"]; }>[k]; } : never) & {
326
357
  [k: string]: Catchall["type"];
327
358
  })[k_2]; } : never>;
328
- optional: <T_13 extends orchid_core.JSONTypeAny>(type: T_13) => orchid_core.JSONOptional<T_13>;
359
+ optional: <T_15 extends orchid_core.JSONTypeAny>(type: T_15) => orchid_core.JSONOptional<T_15>;
329
360
  record: typeof orchid_core.record;
330
361
  }) => Type)): pqb.JSONColumn<Type>;
331
362
  jsonText(this: ColumnTypesBase): pqb.JSONTextColumn;
332
363
  array<Item extends pqb.ColumnType<unknown, orchid_core.BaseOperators, unknown>>(this: ColumnTypesBase, item: Item): pqb.ArrayColumn<Item>;
333
- timestamps: <T_14 extends pqb.ColumnType<unknown, orchid_core.BaseOperators, unknown>>(this: {
334
- timestamp(): T_14;
335
- }) => {
336
- createdAt: orchid_core.ColumnWithDefault<T_14, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
337
- updatedAt: orchid_core.ColumnWithDefault<T_14, orchid_core.RawExpression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, orchid_core.ColumnDataBase>>>;
338
- };
339
364
  primaryKey(columns: string[], options?: {
340
365
  name?: string | undefined;
341
366
  } | undefined): {};
@@ -345,9 +370,9 @@ declare const createBaseTable: <CT extends ColumnTypesBase>(options?: {
345
370
  <Table_1 extends pqb.ForeignKeyTableWithColumns, Columns extends [Exclude<keyof InstanceType<Table_1>["columns"]["shape"], number | symbol>, ...Exclude<keyof InstanceType<Table_1>["columns"]["shape"], number | symbol>[]]>(columns: string[], fn: () => Table_1, foreignColumns: Columns, options?: pqb.ForeignKeyOptions | undefined): {};
346
371
  <Table_2 extends string, Columns_1 extends [string, ...string[]]>(columns: string[], table: Table_2, foreignColumns: Columns_1, options?: pqb.ForeignKeyOptions | undefined): {};
347
372
  };
348
- } : CT) => T_15) => {
349
- shape: T_15;
350
- type: ColumnShapeOutput<T_15>;
373
+ } : CT) => T_16) => {
374
+ shape: T_16;
375
+ type: ColumnShapeOutput<T_16>;
351
376
  };
352
377
  belongsTo<Self extends any, Related extends TableClass<Table>, Scope extends Query, Options extends {
353
378
  primaryKey: keyof InstanceType<Related>["columns"]["shape"];
@@ -433,6 +458,7 @@ declare type AppCodeUpdaterConfig = {
433
458
  baseTablePath: string;
434
459
  baseTableName: string;
435
460
  mainFilePath: string;
461
+ logger?: QueryLogOptions['logger'];
436
462
  };
437
463
  declare const appCodeUpdater: ({ tablePath, baseTablePath, baseTableName, mainFilePath, }: SetOptional<AppCodeUpdaterConfig, 'baseTableName'>) => AppCodeUpdater;
438
464
 
package/dist/index.js CHANGED
@@ -34,7 +34,10 @@ var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
34
34
  var typescript__default = /*#__PURE__*/_interopDefaultLegacy(typescript);
35
35
 
36
36
  const createBaseTable = (options = { columnTypes: pqb.columnTypes }) => {
37
- const ct = typeof options.columnTypes === "function" ? options.columnTypes(pqb.columnTypes) : options.columnTypes;
37
+ const ct = typeof options.columnTypes === "function" ? options.columnTypes(pqb.columnTypes) : options.columnTypes || pqb.columnTypes;
38
+ if (options.snakeCase) {
39
+ ct[orchidCore.snakeCaseKey] = true;
40
+ }
38
41
  return create(ct);
39
42
  };
40
43
  const create = (columnTypes2) => {
@@ -1235,8 +1238,11 @@ const makeRelationQuery = (table, definedAs, relationName, data) => {
1235
1238
  toTable._take();
1236
1239
  }
1237
1240
  const query = this.isSubQuery ? toTable : toTable._whereExists(
1238
- this.baseQuery,
1239
- (q) => data.reverseJoin(this, toTable)
1241
+ this,
1242
+ (q) => data.reverseJoin(
1243
+ q,
1244
+ toTable
1245
+ )
1240
1246
  );
1241
1247
  query.query[pqb.relationQueryKey] = {
1242
1248
  relationName,
@@ -1624,7 +1630,7 @@ const optionsToString = (options) => {
1624
1630
  }
1625
1631
  return lines.join("\n ");
1626
1632
  };
1627
- const updateMainFile = async (filePath, tablePath, ast, options) => {
1633
+ const updateMainFile = async (filePath, tablePath, ast, options, logger) => {
1628
1634
  const result = await fs__default["default"].readFile(filePath, "utf-8").then(
1629
1635
  (content2) => ({ error: void 0, content: content2 }),
1630
1636
  (error) => {
@@ -1671,6 +1677,9 @@ const updateMainFile = async (filePath, tablePath, ast, options) => {
1671
1677
  await fs__default["default"].mkdir(path__default["default"].dirname(filePath), { recursive: true });
1672
1678
  }
1673
1679
  await fs__default["default"].writeFile(filePath, write);
1680
+ logger == null ? void 0 : logger.log(
1681
+ `${result.content ? "Updated" : "Created"} ${orchidCore.pathToLog(filePath)}`
1682
+ );
1674
1683
  }
1675
1684
  };
1676
1685
  const createTable$1 = ({ filePath, tablePath, statements, object, content, spaces }, ast) => {
@@ -1766,9 +1775,11 @@ var __objRest$2 = (source, exclude) => {
1766
1775
  };
1767
1776
  const createTable = async (_a) => {
1768
1777
  var _b = _a, {
1769
- ast
1778
+ ast,
1779
+ logger
1770
1780
  } = _b, params = __objRest$2(_b, [
1771
- "ast"
1781
+ "ast",
1782
+ "logger"
1772
1783
  ]);
1773
1784
  const tablePath = params.tablePath(ast.name);
1774
1785
  const baseTablePath = getImportPath(tablePath, params.baseTablePath);
@@ -1795,6 +1806,7 @@ const createTable = async (_a) => {
1795
1806
  await fs__default["default"].mkdir(path__default["default"].dirname(tablePath), { recursive: true });
1796
1807
  try {
1797
1808
  await fs__default["default"].writeFile(tablePath, pqb.codeToString(code, "", " "), { flag: "wx" });
1809
+ logger == null ? void 0 : logger.log(`Created ${orchidCore.pathToLog(tablePath)}`);
1798
1810
  } catch (err) {
1799
1811
  if (err.code !== "EEXIST") {
1800
1812
  throw err;
@@ -1819,9 +1831,11 @@ var __objRest$1 = (source, exclude) => {
1819
1831
  };
1820
1832
  const changeTable = async (_a) => {
1821
1833
  var _b = _a, {
1822
- ast
1834
+ ast,
1835
+ logger
1823
1836
  } = _b, params = __objRest$1(_b, [
1824
- "ast"
1837
+ "ast",
1838
+ "logger"
1825
1839
  ]);
1826
1840
  const tablePath = params.tablePath(ast.name);
1827
1841
  const content = await fs__default["default"].readFile(tablePath, "utf-8").catch(() => void 0);
@@ -1839,6 +1853,7 @@ const changeTable = async (_a) => {
1839
1853
  addTableData(context);
1840
1854
  }
1841
1855
  await fs__default["default"].writeFile(tablePath, changes.apply());
1856
+ logger == null ? void 0 : logger.log(`Updated ${orchidCore.pathToLog(tablePath)}`);
1842
1857
  };
1843
1858
  function* iterateColumnsShapes(statements, className) {
1844
1859
  var _a, _b;
@@ -2009,7 +2024,7 @@ const changeColumn = ({ changes, t, spaces }, changeItem, prop) => {
2009
2024
  continue;
2010
2025
  let remove = true;
2011
2026
  if (!replaced[key]) {
2012
- const code = getColumnMethodArgs(to, key);
2027
+ const code = getColumnMethodArgs(t, to, key);
2013
2028
  if (code) {
2014
2029
  changes.replace(
2015
2030
  item.expression.expression.end,
@@ -2029,7 +2044,7 @@ const changeColumn = ({ changes, t, spaces }, changeItem, prop) => {
2029
2044
  for (const key in propsToChange) {
2030
2045
  if (changedProps[key])
2031
2046
  continue;
2032
- const code = getColumnMethodArgs(to, key);
2047
+ const code = getColumnMethodArgs(t, to, key);
2033
2048
  if (code) {
2034
2049
  append += pqb.codeToString(code, spaces + " ", " ").trim();
2035
2050
  }
@@ -2082,7 +2097,7 @@ ${spaces}`);
2082
2097
  ${spaces}`);
2083
2098
  }
2084
2099
  };
2085
- const getColumnMethodArgs = (to, key) => {
2100
+ const getColumnMethodArgs = (t, to, key) => {
2086
2101
  const value = to[key];
2087
2102
  if (!value)
2088
2103
  return;
@@ -2096,7 +2111,7 @@ const getColumnMethodArgs = (to, key) => {
2096
2111
  if (key === "collate" || key === "compression") {
2097
2112
  orchidCore.addCode(code, orchidCore.singleQuote(value));
2098
2113
  } else if (key === "default") {
2099
- orchidCore.addCode(code, pqb.columnDefaultArgumentToCode(value));
2114
+ orchidCore.addCode(code, pqb.columnDefaultArgumentToCode(t, value));
2100
2115
  } else if (key !== "nullable" && key !== "primaryKey") {
2101
2116
  return;
2102
2117
  }
@@ -2229,9 +2244,11 @@ var __objRest = (source, exclude) => {
2229
2244
  };
2230
2245
  const renameTable = async (_a) => {
2231
2246
  var _b = _a, {
2232
- ast
2247
+ ast,
2248
+ logger
2233
2249
  } = _b, params = __objRest(_b, [
2234
- "ast"
2250
+ "ast",
2251
+ "logger"
2235
2252
  ]);
2236
2253
  var _a2;
2237
2254
  const tablePath = params.tablePath(ast.from);
@@ -2276,6 +2293,7 @@ const renameTable = async (_a) => {
2276
2293
  }
2277
2294
  }
2278
2295
  await fs__default["default"].writeFile(tablePath, changes.apply());
2296
+ logger == null ? void 0 : logger.log(`Updated ${orchidCore.pathToLog(tablePath)}`);
2279
2297
  };
2280
2298
 
2281
2299
  var __defProp$1 = Object.defineProperty;
@@ -2310,7 +2328,8 @@ const updateTableFile = async (params) => {
2310
2328
 
2311
2329
  const createBaseTableFile = async ({
2312
2330
  baseTableName,
2313
- baseTablePath
2331
+ baseTablePath,
2332
+ logger
2314
2333
  }) => {
2315
2334
  await fs__default["default"].mkdir(path__default["default"].dirname(baseTablePath), { recursive: true });
2316
2335
  await fs__default["default"].writeFile(
@@ -2322,7 +2341,9 @@ export const ${baseTableName} = createBaseTable();
2322
2341
  {
2323
2342
  flag: "wx"
2324
2343
  }
2325
- ).catch((err) => {
2344
+ ).then(() => {
2345
+ logger == null ? void 0 : logger.log(`Created ${orchidCore.pathToLog(baseTablePath)}`);
2346
+ }).catch((err) => {
2326
2347
  if (err.code === "EEXIST")
2327
2348
  return;
2328
2349
  throw err;
@@ -2356,7 +2377,7 @@ const appCodeUpdater = ({
2356
2377
  baseTableName,
2357
2378
  mainFilePath
2358
2379
  }) => {
2359
- return async ({ ast, options, basePath, cache: cacheObject }) => {
2380
+ return async ({ ast, options, basePath, cache: cacheObject, logger }) => {
2360
2381
  const params = {
2361
2382
  tablePath(name) {
2362
2383
  const file = tablePath(name);
@@ -2364,10 +2385,17 @@ const appCodeUpdater = ({
2364
2385
  },
2365
2386
  baseTablePath: resolvePath(basePath, baseTablePath),
2366
2387
  baseTableName: baseTableName || "BaseTable",
2367
- mainFilePath: resolvePath(basePath, mainFilePath)
2388
+ mainFilePath: resolvePath(basePath, mainFilePath),
2389
+ logger
2368
2390
  };
2369
2391
  const promises = [
2370
- updateMainFile(params.mainFilePath, params.tablePath, ast, options),
2392
+ updateMainFile(
2393
+ params.mainFilePath,
2394
+ params.tablePath,
2395
+ ast,
2396
+ options,
2397
+ logger
2398
+ ),
2371
2399
  updateTableFile(__spreadProps(__spreadValues({}, params), { ast }))
2372
2400
  ];
2373
2401
  const cache = cacheObject;