cogsbox-shape 0.5.7 → 0.5.8
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 +11 -14
- package/dist/schema.js +1 -6
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -1216,17 +1216,12 @@ type BaseSchemaField<T extends SQLType = SQLType> = {
|
|
|
1216
1216
|
toClient?: (dbValue: any) => any;
|
|
1217
1217
|
toDb?: (clientValue: any) => any;
|
|
1218
1218
|
};
|
|
1219
|
-
type
|
|
1219
|
+
type AnyFieldDefinition = ReturnType<typeof shape.sql>;
|
|
1220
|
+
type ReferenceField<TField extends AnyFieldDefinition, TTo extends SchemaField> = TField & {
|
|
1220
1221
|
type: "reference";
|
|
1221
|
-
to: () =>
|
|
1222
|
-
sql: SQLType;
|
|
1223
|
-
zodDbSchema: z.ZodType<any>;
|
|
1224
|
-
zodClientSchema: z.ZodType<any>;
|
|
1225
|
-
defaultValue?: any;
|
|
1226
|
-
toClient?: (dbValue: any) => any;
|
|
1227
|
-
toDb?: (clientValue: any) => any;
|
|
1222
|
+
to: () => TTo;
|
|
1228
1223
|
};
|
|
1229
|
-
type SchemaField<T extends SQLType = SQLType> = BaseSchemaField<T> | ReferenceField
|
|
1224
|
+
type SchemaField<T extends SQLType = SQLType> = BaseSchemaField<T> | ReferenceField<AnyFieldDefinition, any>;
|
|
1230
1225
|
export type Schema<T extends Record<string, SchemaField | (() => Relation<any>)>> = {
|
|
1231
1226
|
_tableName: string;
|
|
1232
1227
|
__schemaId?: string;
|
|
@@ -1414,11 +1409,13 @@ type InferSerializedSchema<T> = {
|
|
|
1414
1409
|
};
|
|
1415
1410
|
} : never;
|
|
1416
1411
|
};
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1412
|
+
export declare function reference<TTargetField extends SchemaField, TField extends object>(config: {
|
|
1413
|
+
to: () => TTargetField;
|
|
1414
|
+
field: TField;
|
|
1415
|
+
}): TField & {
|
|
1416
|
+
type: "reference";
|
|
1417
|
+
to: () => TTargetField;
|
|
1418
|
+
};
|
|
1422
1419
|
export declare function createSchema<T extends Schema<any>>(schema: T): {
|
|
1423
1420
|
dbSchema: z.ZodObject<Prettify<InferDBSchema<T>>>;
|
|
1424
1421
|
clientSchema: z.ZodObject<Prettify<OmitNever<InferSchema<T>>>>;
|
package/dist/schema.js
CHANGED
|
@@ -307,14 +307,9 @@ function inferDefaultFromZod(zodType, sqlConfig) {
|
|
|
307
307
|
}
|
|
308
308
|
export function reference(config) {
|
|
309
309
|
return {
|
|
310
|
+
...config.field,
|
|
310
311
|
type: "reference",
|
|
311
312
|
to: config.to,
|
|
312
|
-
sql: config.field.sql,
|
|
313
|
-
zodDbSchema: config.field.zodDbSchema,
|
|
314
|
-
zodClientSchema: config.field.zodClientSchema,
|
|
315
|
-
defaultValue: config.field.defaultValue,
|
|
316
|
-
toClient: config.field.toClient,
|
|
317
|
-
toDb: config.field.toDb,
|
|
318
313
|
};
|
|
319
314
|
}
|
|
320
315
|
function createSerializableSchema(schema) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cogsbox-shape",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.8",
|
|
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",
|