Package: effect
Module: SchemaGetter
Flattens a nested object into bracket-path entries, filtering leaf values by a type guard.
When to use
Use when you need a schema getter to serialize structured objects to flat key-value entries.
FormData or URLSearchParams encoders.Details
[bracketPath, value] pairs suitable for
FormData or URLSearchParams.tags=a&tags=b). Otherwise uses indexed bracket paths (e.g. items[0], items[1]).Example (Flattening an object to bracket paths)
import { Predicate, SchemaGetter } from "effect"
const collectStrings = SchemaGetter.collectBracketPathEntries(Predicate.isString)
const entries = collectStrings({ user: { name: "Alice", tags: ["admin", "editor"] } })
// [["user[name]", "Alice"], ["user[tags]", "admin"], ["user[tags]", "editor"]]
See
makeTreeRecord for building trees from bracket-path entriesencodeFormData for a higher-level FormData encoderencodeURLSearchParams for a higher-level URLSearchParams encoderSignature
declare const collectBracketPathEntries: <A>(isLeaf: (value: unknown) => value is A) => (input: object) => Array<[bracketPath: string, value: A]>
Since v4.0.0