diff --git a/src/schema/decimal.ts b/src/schema/decimal.ts new file mode 100644 index 0000000..cb16e42 --- /dev/null +++ b/src/schema/decimal.ts @@ -0,0 +1,5 @@ +import Decimal from "decimal.js" +import { z } from "zod" + + +export const decimal = z.custom(v => Decimal.isDecimal(v)) diff --git a/src/schema/jsonified/bigint.ts b/src/schema/jsonified/bigint.ts index 4627b45..6266dd5 100644 --- a/src/schema/jsonified/bigint.ts +++ b/src/schema/jsonified/bigint.ts @@ -6,11 +6,11 @@ import { z } from "zod" export type JsonifiedBigInt = Opaque -export function jsonifyBigIntSchema(schema: S) { +export function jsonifyBigIntSchema>(schema: S) { return schema.transform(v => v.toString() as JsonifiedBigInt) } -export function dejsonifyBigIntSchema(schema: S) { +export function dejsonifyBigIntSchema>(schema: S) { return z .custom(identity) .pipe( diff --git a/src/schema/jsonified/date.ts b/src/schema/jsonified/date.ts index 1524456..ff4d0a1 100644 --- a/src/schema/jsonified/date.ts +++ b/src/schema/jsonified/date.ts @@ -6,11 +6,11 @@ import { z } from "zod" export type JsonifiedDate = Opaque -export function jsonifyDateSchema(schema: S) { +export function jsonifyDateSchema>(schema: S) { return schema.transform(v => v.toString() as JsonifiedDate) } -export function dejsonifyDateSchema(schema: S) { +export function dejsonifyDateSchema>(schema: S) { return z .custom(identity) .pipe( diff --git a/src/schema/jsonified/decimal.ts b/src/schema/jsonified/decimal.ts index 2aacd7a..eb500a6 100644 --- a/src/schema/jsonified/decimal.ts +++ b/src/schema/jsonified/decimal.ts @@ -7,15 +7,11 @@ import { z } from "zod" export type JsonifiedDecimal = Opaque -export function jsonifyDecimalSchema< - S extends z.ZodType ->(schema: S) { +export function jsonifyDecimalSchema>(schema: S) { return schema.transform(v => v.toJSON() as JsonifiedDecimal) } -export function dejsonifyDecimalSchema< - S extends z.ZodType ->(schema: S) { +export function dejsonifyDecimalSchema>(schema: S) { return z .custom(identity) .pipe( diff --git a/src/schema/lib.ts b/src/schema/lib.ts index b7c00ae..0ab38cb 100644 --- a/src/schema/lib.ts +++ b/src/schema/lib.ts @@ -1,2 +1,3 @@ +export * from "./decimal" export * from "./effect" export * from "./jsonified"