cogsbox-shape 0.5.141 → 0.5.143
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/schema.d.ts +8 -4
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -361,11 +361,15 @@ export type DeriveViewFromSchema<TSchema extends {
|
|
|
361
361
|
schemaKey: infer TKey;
|
|
362
362
|
__registry: infer TRegistry;
|
|
363
363
|
} ? TKey extends keyof TRegistry ? TRegistry extends RegistryShape ? DeriveViewResult<TKey, TSelection, TRegistry> : never : never : never;
|
|
364
|
-
type
|
|
365
|
-
[K in keyof
|
|
364
|
+
type RelationKeysOf<Cur extends string, Reg extends RegistryShape> = Cur extends keyof Reg ? {
|
|
365
|
+
[K in keyof Reg[Cur]["rawSchema"]]: IsRelationField<Reg[Cur]["rawSchema"][K]> extends true ? K : never;
|
|
366
|
+
}[keyof Reg[Cur]["rawSchema"]] : never;
|
|
367
|
+
type NavigationProxy<CurrentTable extends string, Registry extends RegistryShape> = CurrentTable extends keyof Registry ? RelationKeysOf<CurrentTable, Registry> extends never ? never : {
|
|
368
|
+
[K in RelationKeysOf<CurrentTable, Registry>]: GetRelationRegistryKey<Registry[CurrentTable]["rawSchema"][K], Registry> extends infer TargetKey ? TargetKey extends keyof Registry ? NavigationProxy<TargetKey & string, Registry> : never : never;
|
|
366
369
|
} : never;
|
|
367
|
-
type
|
|
368
|
-
|
|
370
|
+
type IsEffectivelyEmpty<T> = [T] extends [never] ? true : [keyof T] extends [never] ? true : string extends keyof T ? true : number extends keyof T ? true : symbol extends keyof T ? true : false;
|
|
371
|
+
type NavigationToSelection<T> = IsEffectivelyEmpty<T> extends true ? never : {
|
|
372
|
+
[K in keyof T]?: boolean | NavigationToSelection<T[K]>;
|
|
369
373
|
};
|
|
370
374
|
export type OmitRelations<Shape, RawSchema> = Omit<Shape, {
|
|
371
375
|
[K in keyof Shape]: K extends keyof RawSchema ? RawSchema[K] extends {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cogsbox-shape",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.143",
|
|
4
4
|
"description": "A TypeScript library for creating type-safe database schemas with Zod validation, SQL type definitions, and automatic client/server transformations. Unifies client, server, and database types through a single schema definition, with built-in support for relationships and serialization.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|