bun-query-builder 0.1.26 → 0.1.28
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/bin/cli.js +159 -88
- package/dist/browser.d.ts +5 -2
- package/dist/client.d.ts +44 -7
- package/dist/orm.d.ts +44 -31
- package/dist/schema.d.ts +65 -3
- package/dist/src/index.js +153 -82
- package/dist/type-inference.d.ts +34 -64
- package/package.json +1 -1
package/dist/type-inference.d.ts
CHANGED
|
@@ -302,72 +302,42 @@ export type InferPivotColumns<TModel, R extends string> = ResolveDefinition<TMod
|
|
|
302
302
|
: Record<string, unknown>
|
|
303
303
|
: Record<string, unknown>
|
|
304
304
|
: Record<string, unknown>;
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
declare type
|
|
313
|
-
?
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
declare type
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
declare type
|
|
325
|
-
? R extends string ? Lowercase<R> : R extends { model: infer M extends string } ? Lowercase<M> : never : never)
|
|
326
|
-
| (TDef extends { hasOneThrough: Readonly<Record<infer K, unknown>> }
|
|
327
|
-
? K extends string ? K : never : never);
|
|
328
|
-
declare type InferHasManyThroughNames<TDef> = (TDef extends { hasManyThrough: readonly (infer R)[] }
|
|
329
|
-
? R extends string ? Lowercase<R> : R extends { model: infer M extends string } ? Lowercase<M> : never : never)
|
|
330
|
-
| (TDef extends { hasManyThrough: Readonly<Record<infer K, unknown>> }
|
|
331
|
-
? K extends string ? K : never : never);
|
|
305
|
+
/**
|
|
306
|
+
* Relation names of one relation declaration. Array form lowercases the
|
|
307
|
+
* (unwrapped) model name; record form uses the keys. The array case MUST be
|
|
308
|
+
* checked first: a tuple also structurally matches `Readonly<Record<...>>`
|
|
309
|
+
* and would otherwise leak its own keys ('length', indices, ...) into the
|
|
310
|
+
* relation-name union.
|
|
311
|
+
*/
|
|
312
|
+
declare type RelationKeyOf<V> = V extends readonly (infer E)[]
|
|
313
|
+
? E extends string ? Lowercase<E>
|
|
314
|
+
: E extends { model: infer M extends string } ? Lowercase<M>
|
|
315
|
+
: never
|
|
316
|
+
: V extends Readonly<Record<infer K, unknown>>
|
|
317
|
+
? K & string
|
|
318
|
+
: never;
|
|
319
|
+
declare type InferBelongsToNames<TDef> = TDef extends { belongsTo: infer V } ? RelationKeyOf<V> : never;
|
|
320
|
+
declare type InferHasManyNames<TDef> = TDef extends { hasMany: infer V } ? RelationKeyOf<V> : never;
|
|
321
|
+
declare type InferHasOneNames<TDef> = TDef extends { hasOne: infer V } ? RelationKeyOf<V> : never;
|
|
322
|
+
declare type InferBelongsToManyNames<TDef> = TDef extends { belongsToMany: infer V } ? RelationKeyOf<V> : never;
|
|
323
|
+
declare type InferHasOneThroughNames<TDef> = TDef extends { hasOneThrough: infer V } ? RelationKeyOf<V> : never;
|
|
324
|
+
declare type InferHasManyThroughNames<TDef> = TDef extends { hasManyThrough: infer V } ? RelationKeyOf<V> : never;
|
|
332
325
|
/**
|
|
333
326
|
* Determine the cardinality of a relation on a model.
|
|
334
|
-
* hasMany
|
|
327
|
+
* hasMany / belongsToMany / hasManyThrough / morphMany / morphToMany /
|
|
328
|
+
* morphedByMany → 'many'; hasOne / belongsTo / hasOneThrough / morphOne →
|
|
329
|
+
* 'one'. Both array and record declaration forms are supported via
|
|
330
|
+
* `RelationKeyOf` (array-first, so tuple keys never leak in).
|
|
335
331
|
*/
|
|
336
332
|
export type RelationCardinality<TModel, R extends string> = ResolveDefinition<TModel> extends infer TDef
|
|
337
|
-
?
|
|
338
|
-
(TDef extends {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
| (TDef extends {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
| (TDef extends {
|
|
347
|
-
? Lowercase<M & string> extends R ? 'one' : never
|
|
348
|
-
: never)
|
|
349
|
-
// hasOne object syntax
|
|
350
|
-
| (TDef extends { hasOne: Readonly<Record<infer K, unknown>> }
|
|
351
|
-
? K extends string ? K extends R ? 'one' : never : never
|
|
352
|
-
: never)
|
|
353
|
-
// belongsTo array syntax
|
|
354
|
-
| (TDef extends { belongsTo: readonly (infer M)[] }
|
|
355
|
-
? Lowercase<M & string> extends R ? 'one' : never
|
|
356
|
-
: never)
|
|
357
|
-
// belongsTo object syntax
|
|
358
|
-
| (TDef extends { belongsTo: Readonly<Record<infer K, unknown>> }
|
|
359
|
-
? K extends string ? K extends R ? 'one' : never : never
|
|
360
|
-
: never)
|
|
361
|
-
// belongsToMany array syntax
|
|
362
|
-
| (TDef extends { belongsToMany: readonly (infer M)[] }
|
|
363
|
-
? M extends string
|
|
364
|
-
? Lowercase<M> extends R ? 'many' : never
|
|
365
|
-
: M extends { model: infer N extends string }
|
|
366
|
-
? Lowercase<N> extends R ? 'many' : never
|
|
367
|
-
: never
|
|
368
|
-
: never)
|
|
369
|
-
// belongsToMany object syntax
|
|
370
|
-
| (TDef extends { belongsToMany: Readonly<Record<infer K, unknown>> }
|
|
371
|
-
? K extends string ? K extends R ? 'many' : never : never
|
|
372
|
-
: never)
|
|
333
|
+
? (TDef extends { hasMany: infer V } ? (R extends RelationKeyOf<V> ? 'many' : never) : never)
|
|
334
|
+
| (TDef extends { hasOne: infer V } ? (R extends RelationKeyOf<V> ? 'one' : never) : never)
|
|
335
|
+
| (TDef extends { belongsTo: infer V } ? (R extends RelationKeyOf<V> ? 'one' : never) : never)
|
|
336
|
+
| (TDef extends { belongsToMany: infer V } ? (R extends RelationKeyOf<V> ? 'many' : never) : never)
|
|
337
|
+
| (TDef extends { hasOneThrough: infer V } ? (R extends RelationKeyOf<V> ? 'one' : never) : never)
|
|
338
|
+
| (TDef extends { hasManyThrough: infer V } ? (R extends RelationKeyOf<V> ? 'many' : never) : never)
|
|
339
|
+
| (TDef extends { morphOne: infer V } ? (R extends RelationKeyOf<V> ? 'one' : never) : never)
|
|
340
|
+
| (TDef extends { morphMany: infer V } ? (R extends RelationKeyOf<V> ? 'many' : never) : never)
|
|
341
|
+
| (TDef extends { morphToMany: infer V } ? (R extends RelationKeyOf<V> ? 'many' : never) : never)
|
|
342
|
+
| (TDef extends { morphedByMany: infer V } ? (R extends RelationKeyOf<V> ? 'many' : never) : never)
|
|
373
343
|
: never;
|
package/package.json
CHANGED