(
declaration: Declaration,
recur: (representation: Representation) => Schema.Top
): Schema.Top | undefinedDefault Reviver for toSchema that handles built-in Effect types, including Option, Result, Redacted, Cause, Exit, ReadonlyMap, HashMap, ReadonlySet, Date, Duration, URL, and RegExp.
When to use
Use when you need the default options.reviver for toSchema to
reconstruct runtime schemas for built-in Effect declarations.
Details
The reviver returns undefined for unrecognized declarations, causing
fallback to encodedSchema.
export const const toSchemaDefaultReviver: Reviver<Schema.Top>Default
Reviver
for
toSchema
that handles built-in Effect
types, including Option, Result, Redacted, Cause, Exit, ReadonlyMap, HashMap,
ReadonlySet, Date, Duration, URL, and RegExp.
When to use
Use when you need the default options.reviver for
toSchema
to
reconstruct runtime schemas for built-in Effect declarations.
Details
The reviver returns undefined for unrecognized declarations, causing
fallback to encodedSchema.
toSchemaDefaultReviver: type Reviver<T> = (
declaration: Declaration,
recur: (representation: Representation) => T
) => T | undefined
A callback that handles
Declaration
nodes during reconstruction
(
toSchema
) or code generation (
toCodeDocument
).
Details
Return a value to handle the declaration. Return undefined to fall back to
default behavior, which uses encodedSchema for toSchema or the
generation annotation for toCodeDocument. recur processes child
representations recursively.
Reviver<import SchemaSchema.type Schema.Top = /*unresolved*/ anyTop> = (s: Declaration(parameter) s: {
_tag: "Declaration";
annotations: Schema.Annotations.Annotations | undefined;
typeParameters: ReadonlyArray<Representation>;
checks: ReadonlyArray<Check<DeclarationMeta>>;
encodedSchema: Representation;
}
s, recur: (
representation: Representation
) => Schema.Top
recur) => {
const const typeConstructor: anytypeConstructor = s: Declaration(parameter) s: {
_tag: "Declaration";
annotations: Schema.Annotations.Annotations | undefined;
typeParameters: ReadonlyArray<Representation>;
checks: ReadonlyArray<Check<DeclarationMeta>>;
encodedSchema: Representation;
}
s.Declaration.annotations?: anyannotations?.typeConstructor
if (import PredicatePredicate.isObject(const typeConstructor: anytypeConstructor) && typeof const typeConstructor: anytypeConstructor._tag === "string") {
const const typeParameters: Array<Schema.Top>typeParameters = s: Declaration(parameter) s: {
_tag: "Declaration";
annotations: Schema.Annotations.Annotations | undefined;
typeParameters: ReadonlyArray<Representation>;
checks: ReadonlyArray<Check<DeclarationMeta>>;
encodedSchema: Representation;
}
s.Declaration.typeParameters: ReadonlyArray<Representation>typeParameters.ReadonlyArray<Representation>.map<Schema.Top>(callbackfn: (value: Representation, index: number, array: readonly Representation[]) => Schema.Top, thisArg?: any): Schema.Top[]Calls a defined callback function on each element of an array, and returns an array that contains the results.
map(recur: (
representation: Representation
) => Schema.Top
recur)
switch (const typeConstructor: anytypeConstructor._tag) {
// built-in types
case "Date":
return import SchemaSchema.Date
case "Error":
return import SchemaSchema.Error(const typeConstructor: anytypeConstructor.options as import SchemaSchema.type Schema.ErrorOptions = /*unresolved*/ anyErrorOptions | undefined)
case "File":
return import SchemaSchema.File
case "FormData":
return import SchemaSchema.FormData
case "ReadonlyMap":
return import SchemaSchema.ReadonlyMap(const typeParameters: Array<Schema.Top>typeParameters[0], const typeParameters: Array<Schema.Top>typeParameters[1])
case "ReadonlySet":
return import SchemaSchema.ReadonlySet(const typeParameters: Array<Schema.Top>typeParameters[0])
case "RegExp":
return import SchemaSchema.RegExp
case "Uint8Array":
return import SchemaSchema.Uint8Array
case "URL":
return import SchemaSchema.URL
case "URLSearchParams":
return import SchemaSchema.URLSearchParams
// effect types
case "effect/Option":
return import SchemaSchema.Option(const typeParameters: Array<Schema.Top>typeParameters[0])
case "effect/Result":
return import SchemaSchema.Result(const typeParameters: Array<Schema.Top>typeParameters[0], const typeParameters: Array<Schema.Top>typeParameters[1])
case "effect/Redacted":
return import SchemaSchema.Redacted(const typeParameters: Array<Schema.Top>typeParameters[0], const typeConstructor: anytypeConstructor.options as any)
case "effect/DateTime.TimeZone":
return import SchemaSchema.TimeZone
case "effect/DateTime.TimeZone.Named":
return import SchemaSchema.TimeZoneNamed
case "effect/DateTime.TimeZone.Offset":
return import SchemaSchema.TimeZoneOffset
case "effect/DateTime.Utc":
return import SchemaSchema.DateTimeUtc
case "effect/DateTime.Zoned":
return import SchemaSchema.DateTimeZoned
case "effect/BigDecimal":
return import SchemaSchema.BigDecimal
case "effect/Chunk":
return import SchemaSchema.Chunk(const typeParameters: Array<Schema.Top>typeParameters[0])
case "effect/Cause":
return import SchemaSchema.Cause(const typeParameters: Array<Schema.Top>typeParameters[0], const typeParameters: Array<Schema.Top>typeParameters[1])
case "effect/Cause/Failure":
return import SchemaSchema.CauseReason(const typeParameters: Array<Schema.Top>typeParameters[0], const typeParameters: Array<Schema.Top>typeParameters[1])
case "effect/Duration":
return import SchemaSchema.Duration
case "effect/Exit":
return import SchemaSchema.Exit(const typeParameters: Array<Schema.Top>typeParameters[0], const typeParameters: Array<Schema.Top>typeParameters[1], const typeParameters: Array<Schema.Top>typeParameters[2])
case "effect/Json":
return import SchemaSchema.Json
case "effect/MutableJson":
return import SchemaSchema.MutableJson
case "effect/HashMap":
return import SchemaSchema.HashMap(const typeParameters: Array<Schema.Top>typeParameters[0], const typeParameters: Array<Schema.Top>typeParameters[1])
case "effect/HashSet":
return import SchemaSchema.HashSet(const typeParameters: Array<Schema.Top>typeParameters[0])
}
}
}