tspace-mysql
Version:
Tspace MySQL is a promise-based ORM for Node.js, designed with modern TypeScript and providing type safety for schema databases.
32 lines (31 loc) • 2.1 kB
TypeScript
import { Model } from "./Model";
import type { TRelationOptions, TRelationQueryOptions } from "../types";
declare class RelationManager {
private $model;
constructor(model: Model);
load(parents: Record<string, any>[], relation: TRelationOptions): Promise<any[]>;
loadExists(): string;
getSqlExists(name: string, cb: Function): string | null;
apply(nameRelations: any[], type: 'all' | 'exists' | 'notExists' | 'trashed' | 'count' | 'default'): TRelationOptions[];
callback(nameRelation: string, cb: Function): void;
callbackPivot(nameRelation: string, cb: Function): void;
returnCallback(nameRelation: string): any;
hasOne({ name, as, model, localKey, foreignKey, freezeTable }: TRelationOptions): void;
hasMany({ name, as, model, localKey, foreignKey, freezeTable }: TRelationOptions): void;
belongsTo({ name, as, model, localKey, foreignKey, freezeTable }: TRelationOptions): void;
belongsToMany({ name, as, model, localKey, foreignKey, freezeTable, pivot, oldVersion, modelPivot }: TRelationOptions): void;
belongsToManySingle({ name, as, model, localKey, foreignKey, freezeTable, pivot, oldVersion, modelPivot }: TRelationOptions): void;
hasOneBuilder({ name, as, model, localKey, foreignKey, freezeTable, }: TRelationQueryOptions, callback?: Function): this | undefined;
hasManyBuilder({ name, as, model, localKey, foreignKey, freezeTable, }: TRelationQueryOptions, callback?: Function): this | undefined;
belongsToBuilder({ name, as, model, localKey, foreignKey, freezeTable, }: TRelationQueryOptions, callback?: Function): this | undefined;
belongsToManyBuilder({ name, as, model, localKey, foreignKey, freezeTable, pivot }: TRelationQueryOptions, callback?: Function): this | undefined;
protected _handleRelationExists(relation: TRelationOptions): string;
private _relationBuilder;
private _relationMapData;
private _belongsToMany;
private _valueInRelation;
protected _valuePattern(value: string): string;
private _assertError;
}
export { RelationManager };
export default RelationManager;