@terabits/grapi
Version:
Grapi Schema Generator For GraphQL Server
44 lines (43 loc) • 1.74 kB
TypeScript
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>;
}