@avonjs/avonjs
Version:
A fluent Node.js API generator.
37 lines (36 loc) • 1.16 kB
TypeScript
import type AvonRequest from '../Http/Requests/AvonRequest';
import { type AnyValue, type Model } from '../Contracts';
import type { Filter } from '../Filters';
import Relation from './Relation';
export default abstract class HasManyOrOne extends Relation {
/**
* Indicates related resources have to load.
*/
loaded: boolean;
constructor(resource: string, relation?: string);
filterableAttribute(request: AvonRequest): string;
/**
* Make the field filter.
*/
makeFilter(request: AvonRequest): Filter;
/**
* Get attribute that hold the related model key.
*/
foreignKeyName(request: AvonRequest): string;
/**
* Get attribute that hold the related model key.
*/
ownerKeyName(request: AvonRequest): string;
/**
* Resolve related value for given resources.
*/
resolveRelatables(request: AvonRequest, resources: Model[]): Promise<AnyValue>;
/**
* Get related models for given resources.
*/
searchRelatables(request: AvonRequest, resources: Model[]): Promise<Model[]>;
/**
* Determine field is fillable or not.
*/
fillable(): boolean;
}