remix/data-table · Type

View Source

Relation

Summary

Relation descriptor used by query loading.

Signature

type Relation<source, target, cardinality, loaded> = {
  cardinality: cardinality
  kind: 'relation'
  modifiers: RelationModifiers<target>
  relationKind: RelationKind
  sourceKey: string[]
  sourceTable: source
  targetKey: string[]
  targetTable: target
  through?: ThroughRelationMetadata
  limit(value: number): Relation<source, target, cardinality, loaded>
  offset(value: number): Relation<source, target, cardinality, loaded>
  orderBy(
    column: TableColumnInput<target>,
    direction: OrderDirection,
  ): Relation<source, target, cardinality, loaded>
  where(
    input: WhereInput<TableColumnName<target> | `${TableName<target>}.${TableColumnName<target>}`>,
  ): Relation<source, target, cardinality, loaded>
  with<relations extends RelationMapForTable<target>>(
    relations: relations,
  ): Relation<
    source,
    target,
    cardinality,
    loaded & {
      [key in string | number | symbol]: {
        [name in string | number | symbol]: RelationResult<relations[name]>
      }[key]
    }
  >
}