UNPKG

1.82 kBTypeScriptView Raw
1import { MetadataAccessor, MetadataMap } from '@loopback/core';
2import { ModelDefinition, ModelDefinitionSyntax, PropertyDefinition, PropertyType } from '../model';
3export declare const MODEL_KEY: MetadataAccessor<Partial<ModelDefinitionSyntax>, ClassDecorator>;
4export declare const MODEL_PROPERTIES_KEY: MetadataAccessor<PropertyDefinition, PropertyDecorator>;
5export declare const MODEL_WITH_PROPERTIES_KEY: MetadataAccessor<ModelDefinition, ClassDecorator>;
6export declare type PropertyMap = MetadataMap<Partial<PropertyDefinition>>;
7/**
8 * Decorator for model definitions
9 * @param definition
10 * @returns A class decorator for `model`
11 */
12export declare function model(definition?: Partial<ModelDefinitionSyntax>): (target: Function & {
13 definition?: ModelDefinition;
14}) => void;
15/**
16 * Build model definition from decorations
17 * @param target - Target model class
18 * @param def - Model definition spec
19 */
20export declare function buildModelDefinition(target: Function & {
21 definition?: ModelDefinition | undefined;
22}, def?: ModelDefinitionSyntax): ModelDefinition;
23/**
24 * Decorator for model properties
25 * @param definition
26 * @returns A property decorator
27 */
28export declare function property(definition?: Partial<PropertyDefinition>): PropertyDecorator;
29export declare namespace property {
30 const ERR_PROP_NOT_ARRAY = "@property.array can only decorate array properties!";
31 const ERR_NO_ARGS = "decorator received less than two parameters";
32 /**
33 *
34 * @param itemType - The type of array items.
35 * Examples: `number`, `Product`, `() => Order`.
36 * @param definition - Optional PropertyDefinition object for additional
37 * metadata
38 */
39 function array(itemType: PropertyType, definition?: Partial<PropertyDefinition>): (target: object, propertyName: string) => void;
40}