cogsbox-shape 0.5.172 → 0.5.173
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 +20 -7
- package/dist/schema.js +2 -2
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -142,7 +142,7 @@ interface ShapeAPI {
|
|
|
142
142
|
uuid: () => string;
|
|
143
143
|
}) => TValue)) => Builder<"new", null, z.ZodUndefined, // No SQL schema
|
|
144
144
|
ZodTypeFromPrimitive<TValue extends () => infer R ? R : TValue>, TValue extends () => infer R ? R : TValue, ZodTypeFromPrimitive<TValue extends () => infer R ? R : TValue>, ZodTypeFromPrimitive<TValue extends () => infer R ? R : TValue>>;
|
|
145
|
-
sql: <T extends SQLType>(sqlConfig: T) => Builder<"sql", T, SQLToZodType<T, false>, SQLToZodType<T, false>, z.infer<SQLToZodType<T, false>>, SQLToZodType<T, false>, SQLToZodType<T, false>>;
|
|
145
|
+
sql: <const T extends SQLType>(sqlConfig: T) => Builder<"sql", T, SQLToZodType<T, false>, SQLToZodType<T, false>, z.infer<SQLToZodType<T, false>>, SQLToZodType<T, false>, SQLToZodType<T, false>>;
|
|
146
146
|
reference: <TGetter extends () => any>(getter: TGetter) => Reference<TGetter>;
|
|
147
147
|
hasMany: <T extends HasManyDefault>(config?: T) => PlaceholderRelation<"hasMany">;
|
|
148
148
|
hasOne: (config?: HasOneDefault) => PlaceholderRelation<"hasOne">;
|
|
@@ -222,8 +222,8 @@ export declare function createSchema<T extends {
|
|
|
222
222
|
defaultValues: Prettify<DeriveDefaults<TActualSchema>>;
|
|
223
223
|
stateType: Prettify<DeriveStateType<TActualSchema>>;
|
|
224
224
|
generateDefaults: () => Prettify<DeriveDefaults<TActualSchema>>;
|
|
225
|
-
toClient: (dbObject:
|
|
226
|
-
toDb: (clientObject:
|
|
225
|
+
toClient: (dbObject: Partial<z.infer<z.ZodObject<Prettify<DeriveSchemaByKey<TActualSchema, "zodSqlSchema">>>>>) => z.infer<z.ZodObject<Prettify<DeriveSchemaByKey<TActualSchema, "zodClientSchema">>>>;
|
|
226
|
+
toDb: (clientObject: Partial<z.infer<z.ZodObject<Prettify<DeriveSchemaByKey<TActualSchema, "zodClientSchema">>>>>) => z.infer<z.ZodObject<Prettify<DeriveSchemaByKey<TActualSchema, "zodSqlSchema">>>>;
|
|
227
227
|
parseForDb: (appData: z.input<z.ZodObject<Prettify<DeriveSchemaByKey<TActualSchema, "zodValidationSchema">>>>) => z.infer<z.ZodObject<Prettify<DeriveSchemaByKey<TActualSchema, "zodSqlSchema">>>>;
|
|
228
228
|
parseFromDb: (dbData: Partial<z.infer<z.ZodObject<Prettify<DeriveSchemaByKey<TActualSchema, "zodSqlSchema">>>>>) => z.infer<z.ZodObject<Prettify<DeriveSchemaByKey<TActualSchema, "zodClientSchema">>>>;
|
|
229
229
|
};
|
|
@@ -428,8 +428,8 @@ type CreateSchemaBoxReturn<S extends Record<string, SchemaWithPlaceholders>, R e
|
|
|
428
428
|
server: Resolved[K]["zodSchemas"]["serverSchema"];
|
|
429
429
|
};
|
|
430
430
|
transforms: {
|
|
431
|
-
toClient: Resolved[K]["zodSchemas"]["
|
|
432
|
-
toDb: Resolved[K]["zodSchemas"]["
|
|
431
|
+
toClient: (dbData: z.infer<Resolved[K]["zodSchemas"]["sqlSchema"]>) => z.infer<Resolved[K]["zodSchemas"]["clientSchema"]>;
|
|
432
|
+
toDb: (clientData: z.infer<Resolved[K]["zodSchemas"]["clientSchema"]>) => z.infer<Resolved[K]["zodSchemas"]["sqlSchema"]>;
|
|
433
433
|
};
|
|
434
434
|
parseForDb: (appData: z.input<Resolved[K]["zodSchemas"]["serverSchema"]>) => z.infer<Resolved[K]["zodSchemas"]["sqlSchema"]>;
|
|
435
435
|
parseFromDb: (dbData: Partial<z.infer<Resolved[K]["zodSchemas"]["sqlSchema"]>>) => z.infer<Resolved[K]["zodSchemas"]["clientSchema"]>;
|
|
@@ -462,14 +462,27 @@ type SchemaProxy<S extends Record<string, SchemaWithPlaceholders>> = {
|
|
|
462
462
|
type Prettify<T> = {
|
|
463
463
|
[K in keyof T]: T[K];
|
|
464
464
|
} & {};
|
|
465
|
+
type GetDbKey<K, Field> = Field extends Reference<infer TGetter> ? ReturnType<TGetter> extends {
|
|
466
|
+
config: {
|
|
467
|
+
sql: {
|
|
468
|
+
field: infer F extends string;
|
|
469
|
+
};
|
|
470
|
+
};
|
|
471
|
+
} ? string extends F ? K : F : K : Field extends {
|
|
472
|
+
config: {
|
|
473
|
+
sql: {
|
|
474
|
+
field: infer F extends string;
|
|
475
|
+
};
|
|
476
|
+
};
|
|
477
|
+
} ? string extends F ? K : F : K;
|
|
465
478
|
type DeriveSchemaByKey<T, Key extends "zodSqlSchema" | "zodClientSchema" | "zodValidationSchema", Depth extends any[] = []> = Depth["length"] extends 10 ? any : {
|
|
466
|
-
[K in keyof T as K extends "_tableName" | typeof SchemaWrapperBrand | "__primaryKeySQL" | "__isClientChecker" | "primaryKeySQL" | "isClient" ? never : K extends keyof T ? T[K] extends Reference<any> ? K : T[K] extends {
|
|
479
|
+
[K in keyof T as K extends "_tableName" | typeof SchemaWrapperBrand | "__primaryKeySQL" | "__isClientChecker" | "primaryKeySQL" | "isClient" ? never : K extends keyof T ? T[K] extends Reference<any> ? Key extends "zodSqlSchema" ? GetDbKey<K, T[K]> : K : T[K] extends {
|
|
467
480
|
config: {
|
|
468
481
|
sql: {
|
|
469
482
|
type: "hasMany" | "manyToMany" | "hasOne" | "belongsTo";
|
|
470
483
|
};
|
|
471
484
|
};
|
|
472
|
-
} ? never : K : never]: T[K] extends Reference<infer TGetter> ? ReturnType<TGetter> extends {
|
|
485
|
+
} ? never : Key extends "zodSqlSchema" ? GetDbKey<K, T[K]> : K : never]: T[K] extends Reference<infer TGetter> ? ReturnType<TGetter> extends {
|
|
473
486
|
config: {
|
|
474
487
|
[P in Key]: infer ZodSchema extends z.ZodTypeAny;
|
|
475
488
|
};
|
package/dist/schema.js
CHANGED
|
@@ -417,7 +417,7 @@ export function createSchema(schema, relations) {
|
|
|
417
417
|
clientToDbKeys[key] = dbFieldName;
|
|
418
418
|
dbToClientKeys[dbFieldName] = key;
|
|
419
419
|
// ALL SCHEMAS STRICTLY USE THE JS KEY
|
|
420
|
-
sqlFields[
|
|
420
|
+
sqlFields[dbFieldName] = config.zodSqlSchema;
|
|
421
421
|
clientFields[key] = config.zodClientSchema;
|
|
422
422
|
serverFields[key] = config.zodValidationSchema;
|
|
423
423
|
const initialValueOrFn = config.initialValue;
|
|
@@ -450,7 +450,7 @@ export function createSchema(schema, relations) {
|
|
|
450
450
|
clientToDbKeys[key] = dbFieldName;
|
|
451
451
|
dbToClientKeys[dbFieldName] = key;
|
|
452
452
|
// ALL SCHEMAS STRICTLY USE THE JS KEY
|
|
453
|
-
sqlFields[
|
|
453
|
+
sqlFields[dbFieldName] = config.zodSqlSchema;
|
|
454
454
|
clientFields[key] = config.zodClientSchema;
|
|
455
455
|
serverFields[key] = config.zodValidationSchema;
|
|
456
456
|
if (config.transforms) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cogsbox-shape",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.173",
|
|
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",
|