cogsbox-shape 0.5.21 → 0.5.22

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.
Files changed (2) hide show
  1. package/dist/schema.d.ts +3 -2
  2. package/package.json +1 -1
package/dist/schema.d.ts CHANGED
@@ -1440,10 +1440,11 @@ export declare function createSchema<T extends Schema<any>>(schema: T): {
1440
1440
  __schemaId: string;
1441
1441
  };
1442
1442
  };
1443
+ type IsOptionalKey<T, K extends keyof T> = {} extends Pick<T, K> ? true : false;
1443
1444
  type DeepConversionType<ClientType, DbType> = ClientType extends Date | string | number | boolean | null | undefined ? ClientType | DbType : DbType extends Date | string | number | boolean | null | undefined ? ClientType | DbType : ClientType extends Array<infer ClientItem> ? DbType extends Array<infer DbItem> ? Array<DeepConversionType<ClientItem, DbItem>> : ClientType | DbType : ClientType extends object ? DbType extends object ? {
1444
- [K in keyof ClientType & keyof DbType as undefined extends ClientType[K] ? never : undefined extends DbType[K] ? never : K]: DeepConversionType<ClientType[K], DbType[K]>;
1445
+ [K in keyof ClientType & keyof DbType as IsOptionalKey<ClientType, K> extends true ? never : IsOptionalKey<DbType, K> extends true ? never : K]: DeepConversionType<ClientType[K], DbType[K]>;
1445
1446
  } & {
1446
- [K in keyof (ClientType | DbType) as K extends keyof ClientType & keyof DbType ? undefined extends ClientType[K] ? K : undefined extends DbType[K] ? K : never : K]?: K extends keyof ClientType ? K extends keyof DbType ? DeepConversionType<NonNullable<ClientType[K]>, NonNullable<DbType[K]>> : ClientType[K] : K extends keyof DbType ? DbType[K] : never;
1447
+ [K in keyof (ClientType | DbType) as K extends keyof ClientType & keyof DbType ? IsOptionalKey<ClientType, K> extends true ? K : IsOptionalKey<DbType, K> extends true ? K : never : K]?: K extends keyof ClientType ? K extends keyof DbType ? DeepConversionType<ClientType[K], DbType[K]> : ClientType[K] : K extends keyof DbType ? DbType[K] : never;
1447
1448
  } : ClientType | DbType : ClientType | DbType;
1448
1449
  type ConversionType<T extends Schema<any>> = DeepConversionType<SchemaTypes<T>["client"], SchemaTypes<T>["db"]>;
1449
1450
  type OmitNever<T> = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cogsbox-shape",
3
- "version": "0.5.21",
3
+ "version": "0.5.22",
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",