diff --git a/src/decorators/json-api-model-config.decorator.ts b/src/decorators/json-api-model-config.decorator.ts index 30c41458..25464d23 100644 --- a/src/decorators/json-api-model-config.decorator.ts +++ b/src/decorators/json-api-model-config.decorator.ts @@ -1,9 +1,10 @@ import { JsonApiMetaModel } from '../models/json-api-meta.model'; +import { ModelConfig } from '../interfaces/model-config.interface'; -export function JsonApiModelConfig(config: any = {}) { +export function JsonApiModelConfig(config: ModelConfig) { return function (target: any) { - if (typeof config['meta'] === 'undefined' || config['meta'] == null) { - config['meta'] = JsonApiMetaModel; + if (typeof config.meta === 'undefined' || config.meta == null) { + config.meta = JsonApiMetaModel; } Reflect.defineMetadata('JsonApiModelConfig', config, target); diff --git a/src/interfaces/model-config.interface.ts b/src/interfaces/model-config.interface.ts index d71c823d..cae5710e 100644 --- a/src/interfaces/model-config.interface.ts +++ b/src/interfaces/model-config.interface.ts @@ -1,9 +1,9 @@ -import { JsonApiMetaModel } from '../models/json-api-meta.model'; +import { JsonApiMetaModel, MetaModelType } from '../models/json-api-meta.model'; -export interface ModelConfig { +export interface ModelConfig { type: string; apiVersion?: string; baseUrl?: string; modelEndpointUrl?: string; - meta?: JsonApiMetaModel; + meta?: MetaModelType; } diff --git a/src/models/json-api-meta.model.ts b/src/models/json-api-meta.model.ts index 63fd6b4e..c5b37600 100644 --- a/src/models/json-api-meta.model.ts +++ b/src/models/json-api-meta.model.ts @@ -1,3 +1,5 @@ +export type MetaModelType = { new(response: any): T; }; + export class JsonApiMetaModel { public links: Array; public meta: any;