UNPKG

blow-data

Version:
50 lines (41 loc) 1.31 kB
'use strict'; import {isFunction, isString} from 'util'; import {BaseModel} from './BaseModel'; import {manager} from './manager'; import { IModelMetadata, IBaseModel, IBaseModelConstructor } from './interfaces'; export function isInstnace(model): boolean { return model instanceof BaseModel; } export function isConstructor(model): boolean { return (<any>model).prototype instanceof BaseModel; } export function getMetadata(model: IBaseModel | IBaseModelConstructor): IModelMetadata { if(isInstnace(model)) { return (<IBaseModelConstructor>model.constructor).metadata; } else { return (<IBaseModelConstructor>model).metadata; } } export function getCtor(model: IBaseModel): IBaseModelConstructor { return <IBaseModelConstructor>model.constructor; } export function getIdName(model: IBaseModel | IBaseModelConstructor): string { return getMetadata(model).idProperty.name; } export function getIdValue(model: IBaseModel): any { return model[getIdName(model)]; } export function setIdValue(model: IBaseModel, id: any): void { model[getIdName(model)] = id; } export function getModel(model: IBaseModelConstructor | string): IBaseModelConstructor { if(isString(model)) { return manager.getModel(<string>model); } else { return <IBaseModelConstructor>model; } }