diff --git a/src/schema/jsonified/bigint.ts b/src/schema/bigint.ts similarity index 54% rename from src/schema/jsonified/bigint.ts rename to src/schema/bigint.ts index 635e234..079f598 100644 --- a/src/schema/jsonified/bigint.ts +++ b/src/schema/bigint.ts @@ -1,16 +1,16 @@ import { z } from "zod" -export type JsonifiedBigIntBrand = "@thilawyn/zod-schema-class/JsonifiedBigInt" +type JsonifiedBigIntBrand = "@thilawyn/zod-schema-class/JsonifiedBigInt" -export function jsonifyBigIntSchema>(schema: S) { +export function jsonify>(schema: S) { return schema .transform(v => v.toString()) .brand() } -export function dejsonifyBigIntSchema>(schema: S) { +export function dejsonify>(schema: S) { return z .custom>() .pipe(z.string()) diff --git a/src/schema/jsonified/date.ts b/src/schema/date.ts similarity index 54% rename from src/schema/jsonified/date.ts rename to src/schema/date.ts index 8af03cd..287121e 100644 --- a/src/schema/jsonified/date.ts +++ b/src/schema/date.ts @@ -1,16 +1,16 @@ import { z } from "zod" -export type JsonifiedDateBrand = "@thilawyn/zod-schema-class/JsonifiedDate" +type JsonifiedDateBrand = "@thilawyn/zod-schema-class/JsonifiedDate" -export function jsonifyDateSchema>(schema: S) { +export function jsonify>(schema: S) { return schema .transform(v => v.toString()) .brand() } -export function dejsonifyDateSchema>(schema: S) { +export function dejsonify>(schema: S) { return z .custom>() .pipe(z.string()) diff --git a/src/schema/jsonified/index.ts b/src/schema/jsonified/index.ts deleted file mode 100644 index d307697..0000000 --- a/src/schema/jsonified/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { dejsonifyBigIntSchema, jsonifyBigIntSchema } from "./bigint" -import { dejsonifyDateSchema, jsonifyDateSchema } from "./date" - - -export const jsonify = { - bigint: jsonifyBigIntSchema, - date: jsonifyDateSchema, -} as const - -export const dejsonify = { - bigint: dejsonifyBigIntSchema, - date: dejsonifyDateSchema, -} as const diff --git a/src/schema/lib.ts b/src/schema/lib.ts index 1323289..1208dd9 100644 --- a/src/schema/lib.ts +++ b/src/schema/lib.ts @@ -1,11 +1,12 @@ +import * as bigint from "./bigint" +import * as date from "./date" import { decimal } from "./decimal" import * as effect from "./effect" -import { dejsonify, jsonify } from "./jsonified" export const s = { + bigint, + date, decimal, effect, - jsonify, - dejsonify, } as const diff --git a/src/tests.ts b/src/tests.ts index 8feea0f..57a5ddc 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -31,11 +31,11 @@ const userInstEffect = User.createEffect({ id: Option.some(1n), name: "User" }) const jsonifiedUserExp = JsonifiedZodSchemaClass(User, { jsonifySchema: schema => schema.extend({ - id: s.effect.option.jsonify(schema.shape.id, s.jsonify.bigint) + id: s.effect.option.jsonify(schema.shape.id, s.bigint.jsonify) }), dejsonifySchema: schema => schema.extend({ - id: s.effect.option.dejsonify(schema.shape.id, s.dejsonify.bigint) + id: s.effect.option.dejsonify(schema.shape.id, s.bigint.dejsonify) }), }).build()