FuncType - v0.60.3
    Preparing search index...

    Variable Obj

    Obj: <T extends Record<string, unknown>>(data: T) => Obj<T> & {
        empty: <T extends Record<string, unknown>>() => Obj<T>;
        fromBinary: <T extends Record<string, unknown>>(binary: string) => Obj<T>;
        fromJSON: <T extends Record<string, unknown>>(json: string) => Obj<T>;
        of: <T extends Record<string, unknown>>(data: T) => Obj<T>;
    }

    Obj - Immutable object wrapper with fluent operations.

    Wraps plain JavaScript objects and provides chainable, immutable operations for building and transforming them. Implements the full Functype interface (Functor, Foldable, Serializable, Matchable, etc.).

    Type Declaration

      • <T extends Record<string, unknown>>(data: T): Obj<T>
      • Creates an Obj wrapping a plain object. Returns an immutable wrapper with fluent chainable operations.

        Type Parameters

        • T extends Record<string, unknown>

        Parameters

        • data: T

          The plain object to wrap

        Returns Obj<T>

        A new Obj instance

        const obj = Obj({ name: "John", age: 30 })
        obj.get("name") // Some("John")
        obj.set("age", 31).value() // { name: "John", age: 31 }
    • empty: <T extends Record<string, unknown>>() => Obj<T>

      Creates an empty Obj.

    • fromBinary: <T extends Record<string, unknown>>(binary: string) => Obj<T>

      Deserializes an Obj from a base64-encoded binary string.

    • fromJSON: <T extends Record<string, unknown>>(json: string) => Obj<T>

      Deserializes an Obj from a JSON string.

    • of: <T extends Record<string, unknown>>(data: T) => Obj<T>

      Creates an Obj from a plain object. Alias for Obj().

    // Build headers with conditional auth
    const headers = Obj({ "User-Agent": "MyApp/1.0" })
    .assign(options.headers)
    .when(requiresAuth, { Authorization: `Bearer ${token}` })
    .value()

    // Object manipulation
    const user = Obj({ name: "John", age: 30, role: "admin" })
    user.pick("name", "role").value() // { name: "John", role: "admin" }
    user.omit("role").value() // { name: "John", age: 30 }
    user.get("name") // Some("John")