Class SObject

Serializable record where fields are defined via @field().

Hierarchy (view full)

Constructors

Methods

  • Assign properties to this object from a JSON object.

    Conceptually equivalent to Object.assign(), but recursively hydrates SObjects / SArrays / SerializableWrappers etc and invokes their assignJSON() to process JSON values. For example:

    class A extends SObject {
    @field(SUInt8) prop1: number;
    }
    class B extends SObject {
    @field() a = new A();
    }
    const b1 = new B();
    b1.assignJSON({a: {prop1: 300}});

    Parameters

    • jsonObject: {
          [key: string | symbol]: unknown;
      }
      • [key: string | symbol]: unknown

    Returns void

  • Assign properties to this object from a map of Serializables.

    Conceptually equivalent to Object.assign(), but automatically unwraps wrapped properties. Fields defined with @field() are directly assigned, and fields defined with @field(wrapper) are assigned by unwrapping the corresponding SerializableWrapper. Unknown fields are considered an error.

    Parameters

    Returns void

  • Returns {
        [key: string | symbol]: any;
    }

    • [key: string | symbol]: any
  • Map values of this object to Serializable.

    Fields defined with @field() are preserved as-is, and field defined with @field(wrapper) are wrapped in their respective wrapper types.

    Returns {
        [propertyKey: string]: Serializable;
    }

  • Create a new instance with the provided initial properties.

    Type Parameters

    Parameters

    • this: (new () => T)
        • new (): T
        • Returns T

    • props: Partial<T> = {}

    Returns T

  • Similar to with(), but uses assignJSON() instead of Object.assign().

    Type Parameters

    Parameters

    • this: (new () => T)
        • new (): T
        • Returns T

    • json: {
          [key: string | symbol]: unknown;
      }
      • [key: string | symbol]: unknown

    Returns T

Generated using TypeDoc