UNPKG

@terabits/grapi

Version:

Grapi Schema Generator For GraphQL Server

44 lines (43 loc) 1.74 kB
import { Model, RelationType } from '../dataModel'; import { Relation, WithForeignKey } from './interface'; export default class BiOneToOne implements Relation, WithForeignKey { private owningSideModel; private owningSideField; private refSideModel; private refSideField; private foreignKey; constructor({ modelA, modelB, modelAField, modelBField, foreignKey, owningSideModelName, }: { modelA: Model; modelB: Model; modelAField: string; modelBField: string; foreignKey?: string; owningSideModelName?: string; }); getType(): RelationType; getForeignKey(): string; getForeignKeyConfig(): { model: Model; foreignKey: string; }[]; getOwningSide(): Model; getOwningSideField(): string; getRefSide(): Model; getRefSideField(): string; setForeignKeyOnOwningSide(targetId: string): { [x: string]: string; }; createAndSetForeignKeyOnOwningSide(targetData: Record<string, any>, context: any): Promise<any>; unsetForeignKeyOnOwningSide(): { [x: string]: any; }; deleteAndUnsetForeignKeyOnOwningSide(data: Record<string, any>, context: any): Promise<{ [x: string]: any; }>; connectOnRefSide(refSideId: string, owningSideId: string, context: any): Promise<void>; createAndConnectOnRefSide(refSideId: string, data: Record<string, any>, context: any): Promise<void>; disconnectOnRefSide(refSideId: string, context: any): Promise<void>; deleteAndDisconnectOnRefSide(refSideId: string, context: any): Promise<any>; joinOnOwningSide(data: Record<string, any>, context: any): Promise<any>; joinOnRefSide(data: Record<string, any>, context: any): Promise<any>; }