UNPKG

@avonjs/avonjs

Version:

A fluent Node.js API generator.

37 lines (36 loc) 1.16 kB
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; }