@dxos/client
    Preparing search index...

    Class RuntimeType<A, I>

    Represents a schema that is persisted in the ECHO database. Schema can me mutable or readonly (specified by the EchoSchema.readonly field).

    Schema that can be modified at runtime via the API. Is an instance of effect-schema (Schema.Schema.AnyNoContext) so it can be used in the same way as a regular schema. IMPORTANT: The schema AST will change reactively when the schema is updated, including synced updates from remote peers.

    The class constructor is a schema instance itself, and can be used in the echo object definitions:

    export class TableType extends Schema.Struct({...}).pipe(Type.Obj({ typename: 'example.org/type/Table', version: '0.1.0' })){
    title: Schema.String,
    schema: Schema.optional(ref(EchoSchema)),
    props: Schema.mutable(S.Array(TablePropSchema)),
    }) {}

    The ECHO API will translate any references to PersistentSchema objects to be resolved as EchoSchema objects.

    Type Parameters

    • A = any
    • I = any

    Hierarchy

    • EchoSchema_base
      • RuntimeType

    Implements

    • BaseSchema<A, I>

    Indexable

    • [key: string]: any
    Index

    Constructors

    • Type Parameters

      • A = any
      • I = any

      Parameters

      • _persistentSchema: PersistentSchema

      Returns RuntimeType<A, I>

    Properties

    "[TypeId]": { _A: Invariant<any>; _I: Invariant<any>; _R: Covariant<never> }
    ast: AST
    Context: never
    Encoded: any
    Type: any
    typename: string
    version: string

    Accessors

    • get "[SchemaMetaSymbol]"(): SchemaMeta

      Returns SchemaMeta

    • get "[TypeId]"(): {
          _A: (_: any) => any;
          _I: (_: any) => any;
          _R: (_: never) => never;
      }

      Returns { _A: (_: any) => any; _I: (_: any) => any; _R: (_: never) => never }

    • get annotations(): (annotations: GenericSchema<any>) => Schema<any, any, never>

      Merges a set of new annotations with existing ones, potentially overwriting any duplicates.

      Returns (annotations: GenericSchema<any>) => Schema<any, any, never>

    • get ast(): AST

      Returns AST

    • get Context(): never

      Returns never

    • get Encoded(): I

      Returns I

    • get id(): string

      Id of the ECHO object containing the schema.

      Returns string

    • get jsonSchema(): JsonSchemaType

      Returns JsonSchemaType

    • get mutable(): RuntimeType

      Returns a mutable schema.

      Returns RuntimeType

    • get name(): undefined | string

      Short name of the schema.

      Returns undefined | string

    • get persistentSchema(): PersistentSchema

      Reference to the underlying persistent schema object.

      Returns PersistentSchema

    • get pipe(): {
          <A>(this: A): A;
          <A, B = never>(this: A, ab: (_: A) => B): B;
          <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C;
          <A, B = never, C = never, D = never>(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
          ): D;
          <A, B = never, C = never, D = never, E = never>(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
          ): E;
          <A, B = never, C = never, D = never, E = never, F = never>(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
          ): F;
          <A, B = never, C = never, D = never, E = never, F = never, G = never>(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
          ): G;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
          ): H;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
          ): I;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
          ): J;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
          ): K;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
          ): L;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
          ): M;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
          ): N;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
          ): O;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
          ): P;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
          ): Q;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
          ): R;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
              S = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
              rs: (_: R) => S,
          ): S;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
              S = never,
              T = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
              rs: (_: R) => S,
              st: (_: S) => T,
          ): T;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
              S = never,
              T = never,
              U = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
              rs: (_: R) => S,
              st: (_: S) => T,
              tu: (_: T) => U,
          ): U;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
              S = never,
              T = never,
              U = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
              rs: (_: R) => S,
              st: (_: S) => T,
              tu: (_: T) => U,
          ): U;
      }

      Returns {
          <A>(this: A): A;
          <A, B = never>(this: A, ab: (_: A) => B): B;
          <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C;
          <A, B = never, C = never, D = never>(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
          ): D;
          <A, B = never, C = never, D = never, E = never>(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
          ): E;
          <A, B = never, C = never, D = never, E = never, F = never>(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
          ): F;
          <A, B = never, C = never, D = never, E = never, F = never, G = never>(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
          ): G;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
          ): H;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
          ): I;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
          ): J;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
          ): K;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
          ): L;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
          ): M;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
          ): N;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
          ): O;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
          ): P;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
          ): Q;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
          ): R;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
              S = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
              rs: (_: R) => S,
          ): S;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
              S = never,
              T = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
              rs: (_: R) => S,
              st: (_: S) => T,
          ): T;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
              S = never,
              T = never,
              U = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
              rs: (_: R) => S,
              st: (_: S) => T,
              tu: (_: T) => U,
          ): U;
          <
              A,
              B = never,
              C = never,
              D = never,
              E = never,
              F = never,
              G = never,
              H = never,
              I = never,
              J = never,
              K = never,
              L = never,
              M = never,
              N = never,
              O = never,
              P = never,
              Q = never,
              R = never,
              S = never,
              T = never,
              U = never,
          >(
              this: A,
              ab: (_: A) => B,
              bc: (_: B) => C,
              cd: (_: C) => D,
              de: (_: D) => E,
              ef: (_: E) => F,
              fg: (_: F) => G,
              gh: (_: G) => H,
              hi: (_: H) => I,
              ij: (_: I) => J,
              jk: (_: J) => K,
              kl: (_: K) => L,
              lm: (_: L) => M,
              mn: (_: M) => N,
              no: (_: N) => O,
              op: (_: O) => P,
              pq: (_: P) => Q,
              qr: (_: Q) => R,
              rs: (_: R) => S,
              st: (_: S) => T,
              tu: (_: T) => U,
          ): U;
      }

    • get readonly(): boolean

      Returns boolean

    • get snapshot(): AnyNoContext

      Returns an immutable schema snapshot of the current state of the schema.

      Returns AnyNoContext

    • get Type(): A

      Returns A

    • get typename(): string

      Returns string

    • get version(): string

      Returns string

    Methods

    • Returns AnyNoContext

    • Called by DatabaseSchemaRegistry on update.

      Returns void

    • Rebuilds this schema if it is dirty.

      Returns void

    • Parameters

      • fields: Fields

      Returns void

      Error if the schema is readonly.

    • Returns PropertySignature[]

    • Parameters

      • fieldNames: string[]

      Returns void

      Error if the schema is readonly.

    • Parameters

      • __namedParameters: { after: PropertyKey; before: PropertyKey }

      Returns void

      Error if the schema is readonly.

    • Parameters

      • fields: Fields

      Returns void

      Error if the schema is readonly.

    • Parameters

      • typename: string

      Returns void

      Error if the schema is readonly.

    • Merges a set of new annotations with existing ones, potentially overwriting any duplicates.

      Parameters

      • annotations: GenericSchema<any>

      Returns Schema<any, any, never>

    • Type Parameters

      • A

      Parameters

      • this: A

      Returns A

    • Type Parameters

      • A
      • B = never

      Parameters

      • this: A
      • ab: (_: A) => B

      Returns B

    • Type Parameters

      • A
      • B = never
      • C = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C

      Returns C

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D

      Returns D

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E

      Returns E

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F

      Returns F

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G

      Returns G

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H

      Returns H

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I

      Returns I

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J

      Returns J

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K

      Returns K

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L

      Returns L

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M

      Returns M

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never
      • N = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M
      • mn: (_: M) => N

      Returns N

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never
      • N = never
      • O = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M
      • mn: (_: M) => N
      • no: (_: N) => O

      Returns O

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never
      • N = never
      • O = never
      • P = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M
      • mn: (_: M) => N
      • no: (_: N) => O
      • op: (_: O) => P

      Returns P

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never
      • N = never
      • O = never
      • P = never
      • Q = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M
      • mn: (_: M) => N
      • no: (_: N) => O
      • op: (_: O) => P
      • pq: (_: P) => Q

      Returns Q

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never
      • N = never
      • O = never
      • P = never
      • Q = never
      • R = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M
      • mn: (_: M) => N
      • no: (_: N) => O
      • op: (_: O) => P
      • pq: (_: P) => Q
      • qr: (_: Q) => R

      Returns R

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never
      • N = never
      • O = never
      • P = never
      • Q = never
      • R = never
      • S = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M
      • mn: (_: M) => N
      • no: (_: N) => O
      • op: (_: O) => P
      • pq: (_: P) => Q
      • qr: (_: Q) => R
      • rs: (_: R) => S

      Returns S

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never
      • N = never
      • O = never
      • P = never
      • Q = never
      • R = never
      • S = never
      • T = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M
      • mn: (_: M) => N
      • no: (_: N) => O
      • op: (_: O) => P
      • pq: (_: P) => Q
      • qr: (_: Q) => R
      • rs: (_: R) => S
      • st: (_: S) => T

      Returns T

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never
      • N = never
      • O = never
      • P = never
      • Q = never
      • R = never
      • S = never
      • T = never
      • U = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M
      • mn: (_: M) => N
      • no: (_: N) => O
      • op: (_: O) => P
      • pq: (_: P) => Q
      • qr: (_: Q) => R
      • rs: (_: R) => S
      • st: (_: S) => T
      • tu: (_: T) => U

      Returns U

    • Type Parameters

      • A
      • B = never
      • C = never
      • D = never
      • E = never
      • F = never
      • G = never
      • H = never
      • I = never
      • J = never
      • K = never
      • L = never
      • M = never
      • N = never
      • O = never
      • P = never
      • Q = never
      • R = never
      • S = never
      • T = never
      • U = never

      Parameters

      • this: A
      • ab: (_: A) => B
      • bc: (_: B) => C
      • cd: (_: C) => D
      • de: (_: D) => E
      • ef: (_: E) => F
      • fg: (_: F) => G
      • gh: (_: G) => H
      • hi: (_: H) => I
      • ij: (_: I) => J
      • jk: (_: J) => K
      • kl: (_: K) => L
      • lm: (_: L) => M
      • mn: (_: M) => N
      • no: (_: N) => O
      • op: (_: O) => P
      • pq: (_: P) => Q
      • qr: (_: Q) => R
      • rs: (_: R) => S
      • st: (_: S) => T
      • tu: (_: T) => U

      Returns U