UNPKG

@loopback/repository

Version:

Define and implement a common set of interfaces for interacting with databases

41 lines (40 loc) 1.81 kB
import { MetadataAccessor, MetadataMap } from '@loopback/core'; import { ModelDefinition, ModelDefinitionSyntax, PropertyDefinition, PropertyType } from '../model'; export declare const MODEL_KEY: MetadataAccessor<Partial<ModelDefinitionSyntax>, ClassDecorator>; export declare const MODEL_PROPERTIES_KEY: MetadataAccessor<PropertyDefinition, PropertyDecorator>; export declare const MODEL_WITH_PROPERTIES_KEY: MetadataAccessor<ModelDefinition, ClassDecorator>; export type PropertyMap = MetadataMap<Partial<PropertyDefinition>>; /** * Decorator for model definitions * @param definition * @returns A class decorator for `model` */ export declare function model(definition?: Partial<ModelDefinitionSyntax>): (target: Function & { definition?: ModelDefinition; }) => void; /** * Build model definition from decorations * @param target - Target model class * @param def - Model definition spec */ export declare function buildModelDefinition(target: Function & { definition?: ModelDefinition | undefined; }, def?: ModelDefinitionSyntax): ModelDefinition; /** * Decorator for model properties * @param definition * @returns A property decorator */ export declare function property(definition?: Partial<PropertyDefinition>): PropertyDecorator; export declare namespace property { const ERR_PROP_NOT_ARRAY = "@property.array can only decorate array properties!"; const ERR_NO_ARGS = "decorator received less than two parameters"; /** * * @param itemType - The type of array items. * Examples: `number`, `Product`, `() => Order`. * @param definition - Optional PropertyDefinition object for additional * metadata */ function array(itemType: PropertyType, definition?: Partial<PropertyDefinition>): (target: object, propertyName: string) => void; }