Codec.ts
Codec overview
Simple codec factory for creating encoding utilities from schema records
Added in v2.0.0
Table of contents
constructors
createEncoders
Creates encoding and decoding utilities with custom error mapping
Signature
export declare const createEncoders: <
T extends Record<string, Schema.Schema<any, any, any>>,
ErrorClass extends { new (options: { message?: string; cause?: unknown }): unknown }
>(
schemas: T,
ErrorClass: ErrorClass
) => {
Encode: { [K in keyof T]: T[K] extends Schema.Schema<infer A, infer I, any> ? (input: A) => I : never }
Decode: { [K in keyof T]: T[K] extends Schema.Schema<infer A, infer I, any> ? (input: I) => A : never }
EncodeEffect: {
[K in keyof T]: T[K] extends Schema.Schema<infer A, infer I, any>
? (input: A) => Effect.Effect<I, InstanceType<ErrorClass>>
: never
}
DecodeEffect: {
[K in keyof T]: T[K] extends Schema.Schema<infer A, infer I, any>
? (input: I) => Effect.Effect<A, InstanceType<ErrorClass>>
: never
}
EncodeEither: {
[K in keyof T]: T[K] extends Schema.Schema<infer A, infer I, any>
? (input: A) => Either.Either<I, InstanceType<ErrorClass>>
: never
}
DecodeEither: {
[K in keyof T]: T[K] extends Schema.Schema<infer A, infer I, any>
? (input: I) => Either.Either<A, InstanceType<ErrorClass>>
: never
}
}Added in v2.0.0