Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(package): update @effect/schema to 0.68.26
- [#3287](Effect-TS/effect#3287) [`f0285d3`](Effect-TS/effect@f0285d3) Thanks @gcanti! - JSON Schema: change default behavior for property signatures containing `undefined` Changed the default behavior when encountering a required property signature whose type contains `undefined`. Instead of raising an exception, `undefined` is now pruned and **the field is set as optional**. Before ```ts import { JSONSchema, Schema } from "@effect/schema" const schema = Schema.Struct({ a: Schema.NullishOr(Schema.Number) }) const jsonSchema = JSONSchema.make(schema) console.log(JSON.stringify(jsonSchema, null, 2)) /* throws Error: Missing annotation at path: ["a"] details: Generating a JSON Schema for this schema requires a "jsonSchema" annotation schema (UndefinedKeyword): undefined */ ``` Now ```ts import { JSONSchema, Schema } from "@effect/schema" const schema = Schema.Struct({ a: Schema.NullishOr(Schema.Number) }) const jsonSchema = JSONSchema.make(schema) console.log(JSON.stringify(jsonSchema, null, 2)) /* { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "required": [], // <=== empty "properties": { "a": { "anyOf": [ { "type": "number" }, { "$ref": "#/$defs/null" } ] } }, "additionalProperties": false, "$defs": { "null": { "const": null } } } */ ``` - [#3291](Effect-TS/effect#3291) [`8ec4955`](Effect-TS/effect@8ec4955) Thanks @gcanti! - remove type-level error message from `optional` signature, closes #3290 This fix eliminates the type-level error message from the `optional` function signature, which was causing issues in generic contexts. - [#3284](Effect-TS/effect#3284) [`3ac2d76`](Effect-TS/effect@3ac2d76) Thanks @gcanti! - Fix: Correct Handling of JSON Schema Annotations in Refinements Fixes an issue where the JSON schema annotation set by a refinement after a transformation was mistakenly interpreted as an override annotation. This caused the output to be incorrect, as the annotations were not applied as intended. Before ```ts import { JSONSchema, Schema } from "@effect/schema" const schema = Schema.Trim.pipe(Schema.nonEmpty()) const jsonSchema = JSONSchema.make(schema) console.log(JSON.stringify(jsonSchema, null, 2)) /* { "$schema": "http://json-schema.org/draft-07/schema#", "minLength": 1 } */ ``` Now ```ts import { JSONSchema, Schema } from "@effect/schema" const schema = Schema.Trim.pipe(Schema.nonEmpty()) const jsonSchema = JSONSchema.make(schema) console.log(JSON.stringify(jsonSchema, null, 2)) /* { "$schema": "http://json-schema.org/draft-07/schema#", "type": "string" } */ ``` - Updated dependencies [[`cc327a1`](Effect-TS/effect@cc327a1), [`4bfe4fb`](Effect-TS/effect@4bfe4fb), [`2b14d18`](Effect-TS/effect@2b14d18)]: - [email protected] Signed-off-by: Giovanni Ravalico <[email protected]>
- Loading branch information