Libraries v5.0.0
    Preparing search index...

    Class PolymorphicQueryBuilder<S, B, P, Connected>

    Immutable polymorphic read graph. Branches are combined in one PostgreSQL statement; rowSchema is a real discriminated union and variantRowSchemas supplies object schemas for separately configured mappers. Framework does not choose application DTO mappings.

    Type Parameters

    Hierarchy

    Index
    "[PARAMETER_READER]": PolymorphicParameterReader

    Type-only fluent return constructor.

    "[PARAMETER_STATE]": P

    Type-only ordered argument contract.

    "[READ_QUERY]": true

    Nominal identity for typed child-query customizers.

    Runtime union matching decoded results, including selected variant bodies.

    variantRowSchemas: Readonly<B>

    Stable object schemas keyed by discriminator, suitable for mapper.configure().

    • Internal

      Compile one UNION ALL statement; JSON preserves distinct branch shapes.

      Parameters

      • Optionalcorrelate: ReadCorrelation
      • Optionalmode: typeof COMPILE_PARAMETERS

      Returns QueryBuilder

    • Internal

      Decode using exactly the selected branch's schema and codecs.

      Parameters

      • row: any
      • path: string = 'row'

      Returns InferType<B[keyof B]> extends undefined ? never : InferType<B[keyof B]>

    • Execute and decode one statement containing every requested branch.

      Returns Promise<
          (
              InferType<B[keyof B]> extends undefined ? never : InferType<B[keyof B]>
          )[],
      >

    • Return the first globally ordered row, or undefined.

      Returns Promise<
          | (
              InferType<B[keyof B]> extends undefined ? never : InferType<B[keyof B]>
          )
          | undefined,
      >

    • Customize a relation on one discriminator branch.

      Type Parameters

      Parameters

      Returns QueryView<
          PolymorphicQueryBuilder<
              S,
              R extends keyof ReadRelations<S>
              | keyof ReadRelations<VariantBody<S, K>>
                  ? Omit<B, K> & Record<
                      K,
                      ObjectSchemaBuilder<
                          SchemaProps<B[K]> & {
                              -readonly [F in string]-?: RelationField<
                                  ((...) & (...))[F],
                                  Child["rowSchema"],
                              >
                          },
                          true,
                          false,
                          undefined,
                          false,
                          {},
                          [],
                      >,
                  >
                  : B,
              AttachParameters<
                  P,
                  MergeParameters<ScopedParameters<P, `variant:${K}`>, ParametersOf<Child>>,
                  `variant:${K}`,
              >,
              Connected,
          >,
          Connected,
      >

    • Globally paginate the discriminated union, leaving the source and its metadata unchanged.

      Parameters

      • __namedParameters: { page: number; pageSize: number }

      Returns Promise<
          PaginationResult<
              InferType<B[keyof B]> extends undefined ? never : InferType<B[keyof B]>,
          >,
      >

    • Read a property common to the selected variants; returned scalar values are detached.

      Type Parameters

      • K extends string | number | symbol

      Parameters

      • key: K

      Returns Promise<
          (
              InferType<B[keyof B]> extends undefined ? never : InferType<B[keyof B]>
          )[K][],
      >

    • Awaiting deliberately executes the query each time.

      Type Parameters

      • T = (InferType<B[keyof B]> extends undefined ? never : InferType<B[keyof B]>)[]
      • E = never

      Parameters

      • Optionalresolve:
            | (
                (
                    rows: (
                        InferType<B[keyof B]> extends undefined
                            ? never
                            : InferType<B[keyof B]>
                    )[],
                ) => T | PromiseLike<T>
            )
            | null
      • Optionalreject: ((error: any) => E | PromiseLike<E>) | null

      Returns Promise<T | E>

    • Type Parameters

      Parameters

      • column: S
      • value: A & (
            A extends QueryParameter<string>
                ? CheckParameterValue<
                    P,
                    NoInfer<A>,
                    PredicateValue<ReadColumns<S, keyof ReadRelations<S>>, S>,
                >
                : string
        )

      Returns QueryView<
          PolymorphicQueryBuilder<
              S,
              B,
              ValueParameters<
                  P,
                  A,
                  PredicateValue<ReadColumns<S, keyof ReadRelations<S>>, S>,
              > extends ParameterState
                  ? ParameterState & ValueParameters<
                      P,
                      A,
                      PredicateValue<ReadColumns<S, keyof ReadRelations<S>>, S>,
                  >
                  : never,
              Connected extends true ? true : false,
          >,
          Connected extends true ? true : false,
      >

    • Type Parameters

      Parameters

      • column: S
      • value: A & (
            A extends QueryParameter<string>
                ? CheckParameterValue<
                    P,
                    NoInfer<A>,
                    PredicateValue<ReadColumns<S, keyof ReadRelations<S>>, S>,
                >
                : string
        )

      Returns QueryView<
          PolymorphicQueryBuilder<
              S,
              B,
              ValueParameters<
                  P,
                  A,
                  PredicateValue<ReadColumns<S, keyof ReadRelations<S>>, S>,
              > extends ParameterState
                  ? ParameterState & ValueParameters<
                      P,
                      A,
                      PredicateValue<ReadColumns<S, keyof ReadRelations<S>>, S>,
                  >
                  : never,
              Connected extends true ? true : false,
          >,
          Connected extends true ? true : false,
      >

    • Filter one branch using schema property names; other variants remain unaffected.

      Type Parameters

      • K extends string
      • Sel extends string | ((columns: C) => AliasedColumn<any>)
      • const A

      Parameters

      • key: K
      • selector: Sel
      • operator: string
      • value: A & CheckParameterValue<
            P,
            NoInfer<A>,
            PredicateValue<ReadColumns<BranchSource<S, K>>, Sel>,
        >

      Returns QueryView<
          PolymorphicQueryBuilder<
              S,
              B,
              AttachParameters<
                  P,
                  ValueParameters<
                      ScopedParameters<P, `variant:${K}`>,
                      A,
                      PredicateValue<ReadColumns<BranchSource<S, K>>, Sel>,
                  >,
                  `variant:${K}`,
              >,
              Connected,
          >,
          Connected,
      >