diff --git a/.gitignore b/.gitignore index c36cdd9..61c9e6e 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,5 @@ package-lock.json # Build output bundle/ dist/ + +.idea diff --git a/lib/entity/entity-field.config.ts b/lib/entity/entity-field.config.ts index a9f6fcf..1bdab2e 100644 --- a/lib/entity/entity-field.config.ts +++ b/lib/entity/entity-field.config.ts @@ -22,8 +22,10 @@ export interface FieldConfig{ * * If an entity has the following property definition: * + * ```typescript * @EntityField() * name:string; + * ``` * * Then when creating the model, if the raw data contains a `name` property with value 'Anna', the resulting model will have a `name` property with value 'Anna'. * @@ -47,7 +49,7 @@ export interface FieldConfig{ * * Then the model's `date` property will have a value of Date(1532422166428), since both creation_date and init_date have no value in the data. * - * @example Using '__self' for data to pass the whole raw data + * @example Using '\_\_self' for data to pass the whole raw data * In the case when we want to separate some properties of the raw data to a sub-model, it's possible to use the special value '__self' for the `data` field configuration. * This passes the whole raw data object to the field's creation, rather than just the value of a property. e.g: * ```typescript @@ -61,6 +63,7 @@ export interface FieldConfig{ * ``` * In case we want to separate all address properties from a user into an encapsulated object, for the following raw data: * + * ```json * { * "name": "Anna", * "street": "Prinsengracht 263-267", @@ -68,6 +71,7 @@ export interface FieldConfig{ * "city": "Amsterdam", * "country": "Holland" * } + * ``` */ data?:"__self" | string | Array, diff --git a/lib/services/paris.ts b/lib/services/paris.ts index d5b1c4b..ecf09b5 100644 --- a/lib/services/paris.ts +++ b/lib/services/paris.ts @@ -27,6 +27,8 @@ import {catchError, map, mergeMap, switchMap, tap} from "rxjs/operators"; import {DataTransformersService} from "./data-transformers.service"; import {DataCache, DataCacheSettings} from "./cache"; import * as _ from "lodash"; +import {EntityModelBase} from "../models/entity-model.base"; +import {EntityId} from "../models/entity-id.type"; export class Paris{ private repositories:Map> = new Map; @@ -379,7 +381,7 @@ export class Paris{ * @param {{[p: string]: any}} params * @returns {Observable} */ - getItemById(entityConstructor:DataEntityConstructor, itemId: string | number, options?:DataOptions, params?:{ [index:string]:any }): Observable{ + getItemById(entityConstructor:DataEntityConstructor, itemId: TId, options?:DataOptions, params?:{ [index:string]:any }): Observable{ options = options || defaultDataOptions; let repository:Repository = this.getRepository(entityConstructor);