@n0safe/indirectus
Version:
Directus Tools CLI.
44 lines • 1.52 kB
TypeScript
import type { DirectusField, DirectusRelation } from "./schema";
export type RelationshipReference = {
collection: string;
pk: string;
};
export type OneToMany = {
type: "o2m";
collection: string;
field: string;
many: true;
ref: RelationshipReference;
};
export type ManyToOne = {
type: "m2o";
collection: string;
field: string;
many: false;
ref: RelationshipReference;
};
export type AnyToOne = {
type: "a2o";
collection: string;
field: string;
refs: RelationshipReference[];
};
export type Unmapped = {
type: "unmapped";
collection: string;
};
export type Relationship = Unmapped | OneToMany | ManyToOne | AnyToOne | null;
export declare class UnmappedRelationship extends Error {
readonly collection: string;
constructor(collection: string);
}
export declare function isRelationship(relationship?: Relationship): relationship is Exclude<Relationship, null>;
export declare function isOneToMany(relationship?: Relationship): relationship is OneToMany;
export declare function isUnmapped(relationship?: Relationship): relationship is Unmapped;
export declare function isManyToOne(relationship?: Relationship): relationship is ManyToOne;
export declare function isAnyToOne(relationship?: Relationship): relationship is AnyToOne;
export declare function getRelationship(fields: DirectusField[], relations: DirectusRelation[], context: {
collection: string;
field: string;
}): Relationship;
//# sourceMappingURL=relationships.d.ts.map