diff --git a/.changeset/big-hounds-sin.md b/.changeset/big-hounds-sin.md new file mode 100644 index 0000000000..1f0e01ae21 --- /dev/null +++ b/.changeset/big-hounds-sin.md @@ -0,0 +1,5 @@ +--- +"@effect/schema": patch +--- + +Rename transform type parameters and de/en-coder param names to be more helpful in IDE hints. diff --git a/packages/schema/src/Schema.ts b/packages/schema/src/Schema.ts index 0b052d51e0..83d78cd785 100644 --- a/packages/schema/src/Schema.ts +++ b/packages/schema/src/Schema.ts @@ -1501,36 +1501,44 @@ export function filter( * @since 1.0.0 */ export const transformOrFail: { - ( - to: Schema, - decode: (b: B, options: ParseOptions, ast: AST.Transform) => Effect.Effect, - encode: (c: C, options: ParseOptions, ast: AST.Transform) => Effect.Effect - ): (self: Schema) => Schema - ( - to: Schema, - decode: (b: B, options: ParseOptions, ast: AST.Transform) => Effect.Effect, - encode: (c: C, options: ParseOptions, ast: AST.Transform) => Effect.Effect, + ( + to: Schema, + decode: (fromA: FromA, options: ParseOptions, ast: AST.Transform) => Effect.Effect, + encode: (toI: ToI, options: ParseOptions, ast: AST.Transform) => Effect.Effect + ): (self: Schema) => Schema + ( + to: Schema, + decode: ( + fromA: FromA, + options: ParseOptions, + ast: AST.Transform + ) => Effect.Effect, + encode: (toI: ToI, options: ParseOptions, ast: AST.Transform) => Effect.Effect, options: { strict: false } - ): (self: Schema) => Schema - ( - from: Schema, - to: Schema, - decode: (b: B, options: ParseOptions, ast: AST.Transform) => Effect.Effect, - encode: (c: C, options: ParseOptions, ast: AST.Transform) => Effect.Effect - ): Schema - ( - from: Schema, - to: Schema, - decode: (b: B, options: ParseOptions, ast: AST.Transform) => Effect.Effect, - encode: (c: C, options: ParseOptions, ast: AST.Transform) => Effect.Effect, + ): (self: Schema) => Schema + ( + from: Schema, + to: Schema, + decode: (fromA: FromA, options: ParseOptions, ast: AST.Transform) => Effect.Effect, + encode: (toI: ToI, options: ParseOptions, ast: AST.Transform) => Effect.Effect + ): Schema + ( + from: Schema, + to: Schema, + decode: ( + fromA: FromA, + options: ParseOptions, + ast: AST.Transform + ) => Effect.Effect, + encode: (toI: ToI, options: ParseOptions, ast: AST.Transform) => Effect.Effect, options: { strict: false } - ): Schema -} = dual((args) => isSchema(args[0]) && isSchema(args[1]), ( - from: Schema, - to: Schema, - decode: (b: B, options: ParseOptions, ast: AST.Transform) => Effect.Effect, - encode: (c: C, options: ParseOptions, ast: AST.Transform) => Effect.Effect -): Schema => + ): Schema +} = dual((args) => isSchema(args[0]) && isSchema(args[1]), ( + from: Schema, + to: Schema, + decode: (fromA: FromA, options: ParseOptions, ast: AST.Transform) => Effect.Effect, + encode: (toI: ToI, options: ParseOptions, ast: AST.Transform) => Effect.Effect +): Schema => make( AST.createTransform( from.ast, @@ -1547,39 +1555,39 @@ export const transformOrFail: { * @since 1.0.0 */ export const transform: { - ( - to: Schema, - decode: (b: B) => C, - encode: (c: C) => B - ): (from: Schema) => Schema - ( - to: Schema, - decode: (b: B) => unknown, - encode: (c: C) => unknown, + ( + to: Schema, + decode: (fromA: FromA) => ToI, + encode: (toI: ToI) => FromA + ): (from: Schema) => Schema + ( + to: Schema, + decode: (fromA: FromA) => unknown, + encode: (toI: ToI) => unknown, options: { strict: false } - ): (from: Schema) => Schema - ( - from: Schema, - to: Schema, - decode: (b: B) => C, - encode: (c: C) => B - ): Schema - ( - from: Schema, - to: Schema, - decode: (b: B) => unknown, - encode: (c: C) => unknown, + ): (from: Schema) => Schema + ( + from: Schema, + to: Schema, + decode: (fromA: FromA) => ToI, + encode: (toI: ToI) => FromA + ): Schema + ( + from: Schema, + to: Schema, + decode: (fromA: FromA) => unknown, + encode: (toI: ToI) => unknown, options: { strict: false } - ): Schema + ): Schema } = dual( (args) => isSchema(args[0]) && isSchema(args[1]), - ( - from: Schema, - to: Schema, - decode: (a: A) => D, - encode: (d: D) => A - ): Schema => - transformOrFail(from, to, (a) => ParseResult.succeed(decode(a)), (b) => ParseResult.succeed(encode(b))) + ( + from: Schema, + to: Schema, + decode: (fromA: FromA) => ToI, + encode: (toI: ToI) => FromA + ): Schema => + transformOrFail(from, to, (fromA) => ParseResult.succeed(decode(fromA)), (toI) => ParseResult.succeed(encode(toI))) ) /**