functional-models 2.1.5 → 2.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -1
- package/interfaces.d.ts +3 -1
- package/interfaces.js.map +1 -1
- package/models.d.ts +3 -2
- package/models.js +3 -1
- package/models.js.map +1 -1
- package/package.json +1 -1
- package/properties.d.ts +482 -3
- package/properties.js +29 -4
- package/properties.js.map +1 -1
package/README.md
CHANGED
|
@@ -320,4 +320,71 @@ A property that references another property. (Think Foreign Key)
|
|
|
320
320
|
|
|
321
321
|
#### AdvancedModelReferenceProperty
|
|
322
322
|
|
|
323
|
-
A more
|
|
323
|
+
A fuller more advanced property for referencing other properties. Useful for typescripting.
|
|
324
|
+
|
|
325
|
+
#### DenormalizedProperty
|
|
326
|
+
|
|
327
|
+
A value that is calculated and save if it doesn't exist, using other values for a model instance. This property adds a `isDenormalized:true` to the property's config, as well as a `calculate()` function to the property itself.
|
|
328
|
+
|
|
329
|
+
NOTE: If the value is provided as part of the instance, it is not re-calculated. If you want to re-calculate it, you must use either the property's method `calculate()` method to get the value and replace the existing OR pass in undefined for the property.
|
|
330
|
+
|
|
331
|
+
<strong>A Strong Word of Caution</strong>
|
|
332
|
+
Generally, we would recommend not using this as a primary key in a database. However, if you want to use a DenormalizedProperty as primary key in a database and you want to make changes to an instance, you need to delete the previous entry and then recreate it for every update. A dynamic primary key is not tracked between changes.
|
|
333
|
+
|
|
334
|
+
<strong>Example</strong>
|
|
335
|
+
|
|
336
|
+
```typescript
|
|
337
|
+
import { DenormalizedProperty } from 'functional-models/src/properties'
|
|
338
|
+
import { TypedJsonObj } from 'functional-models/interfaces'
|
|
339
|
+
|
|
340
|
+
// Your base data
|
|
341
|
+
type Greeting = {
|
|
342
|
+
name: 'Dolly',
|
|
343
|
+
greeting: 'Hello',
|
|
344
|
+
displayName?: string
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Create your model
|
|
348
|
+
const Greetings = Model<Greeting>('Greetings', {
|
|
349
|
+
properties: {
|
|
350
|
+
name: TextProperty(),
|
|
351
|
+
greeting: TextProperty(),
|
|
352
|
+
displayName: DenormalizedProperty<string>("TextProperty", (modelData: TypedJsonObj<Greeting>) => {
|
|
353
|
+
return `${modelData.greeting} ${modelData.name}`
|
|
354
|
+
}),
|
|
355
|
+
}
|
|
356
|
+
})
|
|
357
|
+
|
|
358
|
+
// Create Your Instance
|
|
359
|
+
const instance = Model<Greeting>.create({
|
|
360
|
+
name: 'Dolly',
|
|
361
|
+
greeting: 'Hello',
|
|
362
|
+
})
|
|
363
|
+
|
|
364
|
+
// Let's look at the displayName property
|
|
365
|
+
const value = await instance.get.displayName()
|
|
366
|
+
console.info(value) // Hello Dolly
|
|
367
|
+
|
|
368
|
+
// Here is the object as a whole
|
|
369
|
+
const data = await instance.toObj()
|
|
370
|
+
console.info(data) // { name: 'Dolly', greeting: 'Hello', displayName: 'Hello Dolly' }
|
|
371
|
+
|
|
372
|
+
// DON"T TRY TO CHANGE THE MODEL THIS WAY. It doesn't work.
|
|
373
|
+
const newData = {
|
|
374
|
+
...data,
|
|
375
|
+
name: 'Fred',
|
|
376
|
+
}
|
|
377
|
+
const instanceBad = Model<Greeting>.create(newData)
|
|
378
|
+
const badValue = await instance.get.displayName()
|
|
379
|
+
console.info(badValue) // Hello Dolly - this does not change!!!
|
|
380
|
+
|
|
381
|
+
// "A better way"
|
|
382
|
+
const newDataGood = {
|
|
383
|
+
...data,
|
|
384
|
+
name: 'Fred',
|
|
385
|
+
displayName: undefined
|
|
386
|
+
}
|
|
387
|
+
const instanceGood = Model<Greeting>.create(newDataGood)
|
|
388
|
+
const goodValue = await instance.get.displayName()
|
|
389
|
+
console.info(goodValue) // Hello Fred - Expected
|
|
390
|
+
```
|
package/interfaces.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ declare type DefaultPropertyValidators = Readonly<{
|
|
|
69
69
|
declare type PropertyConfigContents<T extends Arrayable<FunctionalValue>> = Readonly<{
|
|
70
70
|
type?: string;
|
|
71
71
|
defaultValue?: T;
|
|
72
|
+
isDenormalized?: boolean;
|
|
72
73
|
value?: T;
|
|
73
74
|
choices?: readonly VeryPrimitivesTypes[];
|
|
74
75
|
lazyLoadMethod?: <TData extends FunctionalModel>(value: T, modelData: TData) => MaybeLazy<T>;
|
|
@@ -142,4 +143,5 @@ declare type OptionalModelOptions<T extends FunctionalModel, TModel extends Mode
|
|
|
142
143
|
instanceCreatedCallback?: Nullable<Arrayable<(instance: TModelInstance) => void>>;
|
|
143
144
|
[s: string]: any;
|
|
144
145
|
}> | undefined;
|
|
145
|
-
|
|
146
|
+
declare type CalculateDenormalization<T extends FunctionalValue, TModel extends FunctionalModel> = (modelData: TypedJsonObj<TModel>) => MaybePromise<T>;
|
|
147
|
+
export { MaybeFunction, Maybe, MaybePromise, Nullable, Arrayable, MaybeLazy, JsonAble, toObj, ModelInstance, Model, PropertyValidatorComponent, PropertyValidatorComponentSync, PropertyValidatorComponentAsync, PropertyValidator, ModelValidatorComponent, PropertyInstance, PropertyConfig, FunctionalValue, ValueGetter, ModelReference, ModelDefinition, ModelOptions, OptionalModelOptions, ModelReferencePropertyInstance, PropertyGetters, PropertyValidators, PropertyValidatorComponentTypeAdvanced, FunctionalModel, ModelReferenceFunctions, ModelErrors, PrimaryKeyType, ModelFactory, ModelFetcher, CreateParams, ValidatorConfiguration, ValuePropertyValidatorComponent, ValueRequired, ValueOptional, PropertyModifier, ValidationErrors, ModelError, IsAsync, TypedJsonObj, JsonObj, ValueRequiredR, ValueOptionalR, CalculateDenormalization, };
|
package/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;AAuYA,kCAAkC"}
|
package/models.d.ts
CHANGED
package/models.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.BaseModel = void 0;
|
|
6
|
+
exports.Model = exports.BaseModel = void 0;
|
|
7
7
|
const merge_1 = __importDefault(require("lodash/merge"));
|
|
8
8
|
const serialization_1 = require("./serialization");
|
|
9
9
|
const validation_1 = require("./validation");
|
|
@@ -115,4 +115,6 @@ const BaseModel = (pluralName, modelDefinition, options) => {
|
|
|
115
115
|
return model;
|
|
116
116
|
};
|
|
117
117
|
exports.BaseModel = BaseModel;
|
|
118
|
+
const Model = BaseModel;
|
|
119
|
+
exports.Model = Model;
|
|
118
120
|
//# sourceMappingURL=models.js.map
|
package/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAgC;AAChC,mDAA4C;AAC5C,6CAAmD;AACnD,6CAAuC;AAiBvC,mCAAkD;AAElD,MAAM,eAAe,GAAG,GAGK,EAAE,CAAC,CAAC;IAC/B,uBAAuB,EAAE,IAAI;CAC9B,CAAC,CAAA;AAEF,MAAM,eAAe,GAAG,CAKtB,OAAyD,EACzD,EAAE;IACF,MAAM,CAAC,GAA4C,IAAA,eAAK,EACtD,EAAE,EACF,eAAe,EAAE,EACjB,OAAO,CACR,CAAA;IACD,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,6BAA6B,GAAG,CAIpC,eAA2C,EACf,EAAE;IAC9B,MAAM,UAAU,GAAG,IAAA,eAAK,EACtB;QACE,EAAE,EAAE,IAAA,qBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KACjC,EACD,eAAe,CAAC,UAAU,CAC3B,CAAA;IACD,uCACK,eAAe,KAClB,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,EAC7B,UAAU,IACX;AACH,CAAC,CAAA;AAED,MAAM,SAAS,GAAiB,CAK9B,UAAkB,EAClB,eAA2C,EAC3C,OAAyD,EACjD,EAAE;IACV;;;;;;OAMG;IACH,6CAA6C;IAC7C,IAAI,KAAK,GAAqB,IAAI,CAAA;IAClC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAC3C,eAAe,GAAG,CAAC,eAAe,CAAC,iBAAiB;QAClD,CAAC,CAAC,6BAA6B,CAAY,eAAe,CAAC;QAC3D,CAAC,CAAC,eAAe,CAAA;IAEnB,aAAa;IACb,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAA;IACnE,MAAM,aAAa,GAAG,CAAC,eAAoB,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAA;QACzD,OAAO,QAAQ,EAAE,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,CAAC,cAA+B,EAAE,EAAE;QACjD,6CAA6C;QAC7C,IAAI,QAAQ,GAA6B,IAAI,CAAA;QAC7C,MAAM,iBAAiB,GAIlB;YACH,GAAG,EAAE,EAAyD;YAC9D,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;SACf,CAAA;QACD,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CACvE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE;YACvB,MAAM,cAAc,GAAG,GAAG,EAAE;gBAC1B,OAAO,QAAQ,CAAC,YAAY;gBAC1B,aAAa;gBACb,cAAc,CAAC,GAAG,CAAC,EACnB,cAAc,EACd,QAAQ,CACT,EAAE,CAAA;YACL,CAAC,CAAA;YACD,aAAa;YACb,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;YAC/D,MAAM,4BAA4B,GAAG;gBACnC,GAAG,EAAE;oBACH,CAAC,GAAG,CAAC,EAAE,cAAc;iBACtB;gBACD,UAAU,EAAE;oBACV,CAAC,GAAG,CAAC,EAAE,iBAAiB;iBACzB;aACF,CAAA;YACD,MAAM,YAAY,GAAG,QAGpB,CAAA;YACD,MAAM,kBAAkB,GAAG,YAAY,CAAC,eAAe;gBACrD,CAAC,CAAC;oBACE,UAAU,EAAE;wBACV,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CACV,YAAY,CAAC,eAAe;wBAC1B,aAAa;wBACb,cAAc,CAAC,GAAG,CAAwB,CAC3C;qBACJ;iBACF;gBACH,CAAC,CAAC,EAAE,CAAA;YAEN,OAAO,IAAA,eAAK,EAAC,GAAG,EAAE,4BAA4B,EAAE,kBAAkB,CAAC,CAAA;QACrE,CAAC,EACD,iBAAiB,CAClB,CAAA;QAED,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,KAAe,CAAA;QACtC,MAAM,KAAK,GAAG,IAAA,0BAAU,EAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE;YAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjC,OAAO,IAAA,iCAAoB,EACzB,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,eAAe,IAAI,EAAE,CACtC,CAAC,QAA0B,EAAE,OAAO,CAAC,CAAA;YACxC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,QAAQ,GAAG,IAAA,eAAK,EAAC,eAAe,EAAE;YAChC,QAAQ;YACR,KAAK;YACL,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC;YACnD,iBAAiB;YACjB,QAAQ;SACT,CAAmB,CAAA;QAEpB,IAAI,UAAU,CAAC,uBAAuB,EAAE;YACtC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC;gBAC9D,CAAC,CAAC,UAAU,CAAC,uBAAuB;gBACpC,CAAC,CAAC,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAA;YACxC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAA0B,CAAC,CAAC,CAAA;SACrD;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IAED,2DAA2D;IAC3D,aAAa;IACb,KAAK,GAAG,IAAA,eAAK,EACX,EAAE,EACF;QACE,MAAM;QACN,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU;QACzB,eAAe,EAAE,GAAG,EAAE,CACpB,eAAe,CAAC,YAAY,IAAI,IAAA,mBAAW,EAAC,UAAU,CAAC;QACzD,cAAc,EAAE,GAAG,EAAE,CACnB,eAAe,CAAC,WAAW,IAAI,IAAA,mBAAW,EAAC,UAAU,CAAC;QACxD,kBAAkB,EAAE,GAAG,EAAE,CAAC,eAAe;QACzC,iBAAiB;QACjB,aAAa;QACb,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU;KAC7B,CACF,CAAA;IACD,OAAO,KAAe,CAAA;AACxB,CAAC,CAAA;AAIQ,8BAAS;AAFlB,MAAM,KAAK,GAAG,SAAS,CAAA;AAEH,sBAAK"}
|
package/package.json
CHANGED
package/properties.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ModelReference, Maybe, PrimaryKeyType, Model, PropertyInstance, FunctionalValue, PropertyConfig, ValueGetter, MaybeFunction, Arrayable, PropertyValidator, ModelReferencePropertyInstance, FunctionalModel, JsonAble, PropertyModifier, TypedJsonObj } from './interfaces';
|
|
1
|
+
import { ModelReference, Maybe, PrimaryKeyType, Model, PropertyInstance, FunctionalValue, PropertyConfig, ValueGetter, MaybeFunction, Arrayable, PropertyValidator, ModelReferencePropertyInstance, FunctionalModel, JsonAble, PropertyModifier, TypedJsonObj, CalculateDenormalization } from './interfaces';
|
|
2
2
|
declare const Property: <TValue extends Arrayable<FunctionalValue>, T extends FunctionalModel = FunctionalModel, TModel extends Readonly<{
|
|
3
3
|
getName: () => string;
|
|
4
4
|
getSingularName: () => string;
|
|
@@ -2039,7 +2039,7 @@ declare const Property: <TValue extends Arrayable<FunctionalValue>, T extends Fu
|
|
|
2039
2039
|
/**
|
|
2040
2040
|
* Config object for a date property
|
|
2041
2041
|
*/
|
|
2042
|
-
declare type DatePropertyConfig<T
|
|
2042
|
+
declare type DatePropertyConfig<T extends Arrayable<FunctionalValue>> = PropertyConfig<T> & {
|
|
2043
2043
|
/**
|
|
2044
2044
|
* A date-fns format.
|
|
2045
2045
|
*/
|
|
@@ -2055,6 +2055,7 @@ declare type DatePropertyConfig<T> = PropertyConfig<T> & {
|
|
|
2055
2055
|
declare const DateProperty: <TModifier extends PropertyModifier<string | Date>>(config?: Readonly<{
|
|
2056
2056
|
type?: string | undefined;
|
|
2057
2057
|
defaultValue?: TModifier | undefined;
|
|
2058
|
+
isDenormalized?: boolean | undefined;
|
|
2058
2059
|
value?: TModifier | undefined;
|
|
2059
2060
|
choices?: readonly (string | number | boolean | null)[] | undefined;
|
|
2060
2061
|
lazyLoadMethod?: (<TData extends FunctionalModel>(value: TModifier, modelData: TData) => import("./interfaces").MaybeLazy<TModifier>) | undefined;
|
|
@@ -20883,6 +20884,484 @@ declare const AdvancedModelReferenceProperty: <T extends FunctionalModel, TModel
|
|
|
20883
20884
|
validate: (options?: object | undefined) => Promise<import("./interfaces").ModelErrors<T>>;
|
|
20884
20885
|
getModel: () => Readonly<any>;
|
|
20885
20886
|
}>>>>(model: MaybeFunction<TModel>, config?: PropertyConfig<TModifier>, additionalMetadata?: {}) => ModelReferencePropertyInstance<T, TModifier, TModel, TModelInstance>;
|
|
20887
|
+
/**
|
|
20888
|
+
* A property for denormalizing values.
|
|
20889
|
+
* @param propertyType
|
|
20890
|
+
* @param calculate
|
|
20891
|
+
* @param config
|
|
20892
|
+
* @param additionalMetadata
|
|
20893
|
+
* @constructor
|
|
20894
|
+
*/
|
|
20895
|
+
declare const DenormalizedProperty: <T extends FunctionalValue, TModel extends FunctionalModel>(propertyType: string, calculate: CalculateDenormalization<T, TModel>, config?: PropertyConfig<T>, additionalMetadata?: {}) => Readonly<{
|
|
20896
|
+
getConfig: () => object;
|
|
20897
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
20898
|
+
getDefaultValue: () => T;
|
|
20899
|
+
getConstantValue: () => T;
|
|
20900
|
+
getPropertyType: () => string;
|
|
20901
|
+
createGetter: (value: T, modelData: FunctionalModel, modelInstance: Readonly<{
|
|
20902
|
+
get: import("./interfaces").PropertyGetters<FunctionalModel> & {
|
|
20903
|
+
id?: (() => import("./interfaces").MaybePromise<PrimaryKeyType>) | undefined;
|
|
20904
|
+
};
|
|
20905
|
+
references: Readonly<{
|
|
20906
|
+
[s: string]: () => Maybe<PrimaryKeyType>;
|
|
20907
|
+
}>;
|
|
20908
|
+
toObj: import("./interfaces").toObj<FunctionalModel>;
|
|
20909
|
+
getPrimaryKeyName: () => string;
|
|
20910
|
+
getPrimaryKey: () => PrimaryKeyType;
|
|
20911
|
+
validators: import("./interfaces").PropertyValidators<FunctionalModel, Readonly<{
|
|
20912
|
+
getName: () => string;
|
|
20913
|
+
getSingularName: () => string;
|
|
20914
|
+
getDisplayName: () => string;
|
|
20915
|
+
getPrimaryKeyName: () => string;
|
|
20916
|
+
getModelDefinition: () => Readonly<{
|
|
20917
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
20918
|
+
properties: any & {
|
|
20919
|
+
readonly [x: string]: Readonly<{
|
|
20920
|
+
getConfig: () => object;
|
|
20921
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
20922
|
+
getDefaultValue: () => any;
|
|
20923
|
+
getConstantValue: () => any;
|
|
20924
|
+
getPropertyType: () => string;
|
|
20925
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
20926
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
20927
|
+
}>;
|
|
20928
|
+
readonly id?: Readonly<{
|
|
20929
|
+
getConfig: () => object;
|
|
20930
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
20931
|
+
getDefaultValue: () => any;
|
|
20932
|
+
getConstantValue: () => any;
|
|
20933
|
+
getPropertyType: () => string;
|
|
20934
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
20935
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
20936
|
+
}> | undefined;
|
|
20937
|
+
};
|
|
20938
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
20939
|
+
singularName?: string | undefined;
|
|
20940
|
+
displayName?: string | undefined;
|
|
20941
|
+
}>;
|
|
20942
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
20943
|
+
getOptions: () => object & Readonly<{
|
|
20944
|
+
[s: string]: any;
|
|
20945
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
20946
|
+
}>;
|
|
20947
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
20948
|
+
}>>;
|
|
20949
|
+
validate: (options?: object | undefined) => Promise<import("./interfaces").ModelErrors<FunctionalModel>>;
|
|
20950
|
+
getModel: () => Readonly<{
|
|
20951
|
+
getName: () => string;
|
|
20952
|
+
getSingularName: () => string;
|
|
20953
|
+
getDisplayName: () => string;
|
|
20954
|
+
getPrimaryKeyName: () => string;
|
|
20955
|
+
getModelDefinition: () => Readonly<{
|
|
20956
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
20957
|
+
properties: any & {
|
|
20958
|
+
readonly [x: string]: Readonly<{
|
|
20959
|
+
getConfig: () => object;
|
|
20960
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
20961
|
+
getDefaultValue: () => any;
|
|
20962
|
+
getConstantValue: () => any;
|
|
20963
|
+
getPropertyType: () => string;
|
|
20964
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
20965
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
20966
|
+
}>;
|
|
20967
|
+
readonly id?: Readonly<{
|
|
20968
|
+
getConfig: () => object;
|
|
20969
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
20970
|
+
getDefaultValue: () => any;
|
|
20971
|
+
getConstantValue: () => any;
|
|
20972
|
+
getPropertyType: () => string;
|
|
20973
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
20974
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
20975
|
+
}> | undefined;
|
|
20976
|
+
};
|
|
20977
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
20978
|
+
singularName?: string | undefined;
|
|
20979
|
+
displayName?: string | undefined;
|
|
20980
|
+
}>;
|
|
20981
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
20982
|
+
getOptions: () => object & Readonly<{
|
|
20983
|
+
[s: string]: any;
|
|
20984
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
20985
|
+
}>;
|
|
20986
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
20987
|
+
}>;
|
|
20988
|
+
}>) => ValueGetter<T, FunctionalModel, Readonly<{
|
|
20989
|
+
getName: () => string;
|
|
20990
|
+
getSingularName: () => string;
|
|
20991
|
+
getDisplayName: () => string;
|
|
20992
|
+
getPrimaryKeyName: () => string;
|
|
20993
|
+
getModelDefinition: () => Readonly<{
|
|
20994
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
20995
|
+
properties: any & {
|
|
20996
|
+
readonly [x: string]: Readonly<{
|
|
20997
|
+
getConfig: () => object;
|
|
20998
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
20999
|
+
getDefaultValue: () => any;
|
|
21000
|
+
getConstantValue: () => any;
|
|
21001
|
+
getPropertyType: () => string;
|
|
21002
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21003
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21004
|
+
}>;
|
|
21005
|
+
readonly id?: Readonly<{
|
|
21006
|
+
getConfig: () => object;
|
|
21007
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21008
|
+
getDefaultValue: () => any;
|
|
21009
|
+
getConstantValue: () => any;
|
|
21010
|
+
getPropertyType: () => string;
|
|
21011
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21012
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21013
|
+
}> | undefined;
|
|
21014
|
+
};
|
|
21015
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
21016
|
+
singularName?: string | undefined;
|
|
21017
|
+
displayName?: string | undefined;
|
|
21018
|
+
}>;
|
|
21019
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
21020
|
+
getOptions: () => object & Readonly<{
|
|
21021
|
+
[s: string]: any;
|
|
21022
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
21023
|
+
}>;
|
|
21024
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
21025
|
+
}>, Readonly<{
|
|
21026
|
+
get: import("./interfaces").PropertyGetters<FunctionalModel> & {
|
|
21027
|
+
id?: (() => import("./interfaces").MaybePromise<PrimaryKeyType>) | undefined;
|
|
21028
|
+
};
|
|
21029
|
+
references: Readonly<{
|
|
21030
|
+
[s: string]: () => Maybe<PrimaryKeyType>;
|
|
21031
|
+
}>;
|
|
21032
|
+
toObj: import("./interfaces").toObj<FunctionalModel>;
|
|
21033
|
+
getPrimaryKeyName: () => string;
|
|
21034
|
+
getPrimaryKey: () => PrimaryKeyType;
|
|
21035
|
+
validators: import("./interfaces").PropertyValidators<FunctionalModel, Readonly<{
|
|
21036
|
+
getName: () => string;
|
|
21037
|
+
getSingularName: () => string;
|
|
21038
|
+
getDisplayName: () => string;
|
|
21039
|
+
getPrimaryKeyName: () => string;
|
|
21040
|
+
getModelDefinition: () => Readonly<{
|
|
21041
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
21042
|
+
properties: any & {
|
|
21043
|
+
readonly [x: string]: Readonly<{
|
|
21044
|
+
getConfig: () => object;
|
|
21045
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21046
|
+
getDefaultValue: () => any;
|
|
21047
|
+
getConstantValue: () => any;
|
|
21048
|
+
getPropertyType: () => string;
|
|
21049
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21050
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21051
|
+
}>;
|
|
21052
|
+
readonly id?: Readonly<{
|
|
21053
|
+
getConfig: () => object;
|
|
21054
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21055
|
+
getDefaultValue: () => any;
|
|
21056
|
+
getConstantValue: () => any;
|
|
21057
|
+
getPropertyType: () => string;
|
|
21058
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21059
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21060
|
+
}> | undefined;
|
|
21061
|
+
};
|
|
21062
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
21063
|
+
singularName?: string | undefined;
|
|
21064
|
+
displayName?: string | undefined;
|
|
21065
|
+
}>;
|
|
21066
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
21067
|
+
getOptions: () => object & Readonly<{
|
|
21068
|
+
[s: string]: any;
|
|
21069
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
21070
|
+
}>;
|
|
21071
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
21072
|
+
}>>;
|
|
21073
|
+
validate: (options?: object | undefined) => Promise<import("./interfaces").ModelErrors<FunctionalModel>>;
|
|
21074
|
+
getModel: () => Readonly<{
|
|
21075
|
+
getName: () => string;
|
|
21076
|
+
getSingularName: () => string;
|
|
21077
|
+
getDisplayName: () => string;
|
|
21078
|
+
getPrimaryKeyName: () => string;
|
|
21079
|
+
getModelDefinition: () => Readonly<{
|
|
21080
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
21081
|
+
properties: any & {
|
|
21082
|
+
readonly [x: string]: Readonly<{
|
|
21083
|
+
getConfig: () => object;
|
|
21084
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21085
|
+
getDefaultValue: () => any;
|
|
21086
|
+
getConstantValue: () => any;
|
|
21087
|
+
getPropertyType: () => string;
|
|
21088
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21089
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21090
|
+
}>;
|
|
21091
|
+
readonly id?: Readonly<{
|
|
21092
|
+
getConfig: () => object;
|
|
21093
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21094
|
+
getDefaultValue: () => any;
|
|
21095
|
+
getConstantValue: () => any;
|
|
21096
|
+
getPropertyType: () => string;
|
|
21097
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21098
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21099
|
+
}> | undefined;
|
|
21100
|
+
};
|
|
21101
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
21102
|
+
singularName?: string | undefined;
|
|
21103
|
+
displayName?: string | undefined;
|
|
21104
|
+
}>;
|
|
21105
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
21106
|
+
getOptions: () => object & Readonly<{
|
|
21107
|
+
[s: string]: any;
|
|
21108
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
21109
|
+
}>;
|
|
21110
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
21111
|
+
}>;
|
|
21112
|
+
}>>;
|
|
21113
|
+
getValidator: (valueGetter: ValueGetter<T, FunctionalModel, Readonly<{
|
|
21114
|
+
getName: () => string;
|
|
21115
|
+
getSingularName: () => string;
|
|
21116
|
+
getDisplayName: () => string;
|
|
21117
|
+
getPrimaryKeyName: () => string;
|
|
21118
|
+
getModelDefinition: () => Readonly<{
|
|
21119
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
21120
|
+
properties: any & {
|
|
21121
|
+
readonly [x: string]: Readonly<{
|
|
21122
|
+
getConfig: () => object;
|
|
21123
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21124
|
+
getDefaultValue: () => any;
|
|
21125
|
+
getConstantValue: () => any;
|
|
21126
|
+
getPropertyType: () => string;
|
|
21127
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21128
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21129
|
+
}>;
|
|
21130
|
+
readonly id?: Readonly<{
|
|
21131
|
+
getConfig: () => object;
|
|
21132
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21133
|
+
getDefaultValue: () => any;
|
|
21134
|
+
getConstantValue: () => any;
|
|
21135
|
+
getPropertyType: () => string;
|
|
21136
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21137
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21138
|
+
}> | undefined;
|
|
21139
|
+
};
|
|
21140
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
21141
|
+
singularName?: string | undefined;
|
|
21142
|
+
displayName?: string | undefined;
|
|
21143
|
+
}>;
|
|
21144
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
21145
|
+
getOptions: () => object & Readonly<{
|
|
21146
|
+
[s: string]: any;
|
|
21147
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
21148
|
+
}>;
|
|
21149
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
21150
|
+
}>, Readonly<{
|
|
21151
|
+
get: import("./interfaces").PropertyGetters<FunctionalModel> & {
|
|
21152
|
+
id?: (() => import("./interfaces").MaybePromise<PrimaryKeyType>) | undefined;
|
|
21153
|
+
};
|
|
21154
|
+
references: Readonly<{
|
|
21155
|
+
[s: string]: () => Maybe<PrimaryKeyType>;
|
|
21156
|
+
}>;
|
|
21157
|
+
toObj: import("./interfaces").toObj<FunctionalModel>;
|
|
21158
|
+
getPrimaryKeyName: () => string;
|
|
21159
|
+
getPrimaryKey: () => PrimaryKeyType;
|
|
21160
|
+
validators: import("./interfaces").PropertyValidators<FunctionalModel, Readonly<{
|
|
21161
|
+
getName: () => string;
|
|
21162
|
+
getSingularName: () => string;
|
|
21163
|
+
getDisplayName: () => string;
|
|
21164
|
+
getPrimaryKeyName: () => string;
|
|
21165
|
+
getModelDefinition: () => Readonly<{
|
|
21166
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
21167
|
+
properties: any & {
|
|
21168
|
+
readonly [x: string]: Readonly<{
|
|
21169
|
+
getConfig: () => object;
|
|
21170
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21171
|
+
getDefaultValue: () => any;
|
|
21172
|
+
getConstantValue: () => any;
|
|
21173
|
+
getPropertyType: () => string;
|
|
21174
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21175
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21176
|
+
}>;
|
|
21177
|
+
readonly id?: Readonly<{
|
|
21178
|
+
getConfig: () => object;
|
|
21179
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21180
|
+
getDefaultValue: () => any;
|
|
21181
|
+
getConstantValue: () => any;
|
|
21182
|
+
getPropertyType: () => string;
|
|
21183
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21184
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21185
|
+
}> | undefined;
|
|
21186
|
+
};
|
|
21187
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
21188
|
+
singularName?: string | undefined;
|
|
21189
|
+
displayName?: string | undefined;
|
|
21190
|
+
}>;
|
|
21191
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
21192
|
+
getOptions: () => object & Readonly<{
|
|
21193
|
+
[s: string]: any;
|
|
21194
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
21195
|
+
}>;
|
|
21196
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
21197
|
+
}>>;
|
|
21198
|
+
validate: (options?: object | undefined) => Promise<import("./interfaces").ModelErrors<FunctionalModel>>;
|
|
21199
|
+
getModel: () => Readonly<{
|
|
21200
|
+
getName: () => string;
|
|
21201
|
+
getSingularName: () => string;
|
|
21202
|
+
getDisplayName: () => string;
|
|
21203
|
+
getPrimaryKeyName: () => string;
|
|
21204
|
+
getModelDefinition: () => Readonly<{
|
|
21205
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
21206
|
+
properties: any & {
|
|
21207
|
+
readonly [x: string]: Readonly<{
|
|
21208
|
+
getConfig: () => object;
|
|
21209
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21210
|
+
getDefaultValue: () => any;
|
|
21211
|
+
getConstantValue: () => any;
|
|
21212
|
+
getPropertyType: () => string;
|
|
21213
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21214
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21215
|
+
}>;
|
|
21216
|
+
readonly id?: Readonly<{
|
|
21217
|
+
getConfig: () => object;
|
|
21218
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21219
|
+
getDefaultValue: () => any;
|
|
21220
|
+
getConstantValue: () => any;
|
|
21221
|
+
getPropertyType: () => string;
|
|
21222
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21223
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21224
|
+
}> | undefined;
|
|
21225
|
+
};
|
|
21226
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
21227
|
+
singularName?: string | undefined;
|
|
21228
|
+
displayName?: string | undefined;
|
|
21229
|
+
}>;
|
|
21230
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
21231
|
+
getOptions: () => object & Readonly<{
|
|
21232
|
+
[s: string]: any;
|
|
21233
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
21234
|
+
}>;
|
|
21235
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
21236
|
+
}>;
|
|
21237
|
+
}>>) => PropertyValidator<FunctionalModel, Readonly<{
|
|
21238
|
+
getName: () => string;
|
|
21239
|
+
getSingularName: () => string;
|
|
21240
|
+
getDisplayName: () => string;
|
|
21241
|
+
getPrimaryKeyName: () => string;
|
|
21242
|
+
getModelDefinition: () => Readonly<{
|
|
21243
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
21244
|
+
properties: any & {
|
|
21245
|
+
readonly [x: string]: Readonly<{
|
|
21246
|
+
getConfig: () => object;
|
|
21247
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21248
|
+
getDefaultValue: () => any;
|
|
21249
|
+
getConstantValue: () => any;
|
|
21250
|
+
getPropertyType: () => string;
|
|
21251
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21252
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21253
|
+
}>;
|
|
21254
|
+
readonly id?: Readonly<{
|
|
21255
|
+
getConfig: () => object;
|
|
21256
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21257
|
+
getDefaultValue: () => any;
|
|
21258
|
+
getConstantValue: () => any;
|
|
21259
|
+
getPropertyType: () => string;
|
|
21260
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21261
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21262
|
+
}> | undefined;
|
|
21263
|
+
};
|
|
21264
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
21265
|
+
singularName?: string | undefined;
|
|
21266
|
+
displayName?: string | undefined;
|
|
21267
|
+
}>;
|
|
21268
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
21269
|
+
getOptions: () => object & Readonly<{
|
|
21270
|
+
[s: string]: any;
|
|
21271
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
21272
|
+
}>;
|
|
21273
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
21274
|
+
}>, Readonly<{
|
|
21275
|
+
get: import("./interfaces").PropertyGetters<FunctionalModel> & {
|
|
21276
|
+
id?: (() => import("./interfaces").MaybePromise<PrimaryKeyType>) | undefined;
|
|
21277
|
+
};
|
|
21278
|
+
references: Readonly<{
|
|
21279
|
+
[s: string]: () => Maybe<PrimaryKeyType>;
|
|
21280
|
+
}>;
|
|
21281
|
+
toObj: import("./interfaces").toObj<FunctionalModel>;
|
|
21282
|
+
getPrimaryKeyName: () => string;
|
|
21283
|
+
getPrimaryKey: () => PrimaryKeyType;
|
|
21284
|
+
validators: import("./interfaces").PropertyValidators<FunctionalModel, Readonly<{
|
|
21285
|
+
getName: () => string;
|
|
21286
|
+
getSingularName: () => string;
|
|
21287
|
+
getDisplayName: () => string;
|
|
21288
|
+
getPrimaryKeyName: () => string;
|
|
21289
|
+
getModelDefinition: () => Readonly<{
|
|
21290
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
21291
|
+
properties: any & {
|
|
21292
|
+
readonly [x: string]: Readonly<{
|
|
21293
|
+
getConfig: () => object;
|
|
21294
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21295
|
+
getDefaultValue: () => any;
|
|
21296
|
+
getConstantValue: () => any;
|
|
21297
|
+
getPropertyType: () => string;
|
|
21298
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21299
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21300
|
+
}>;
|
|
21301
|
+
readonly id?: Readonly<{
|
|
21302
|
+
getConfig: () => object;
|
|
21303
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21304
|
+
getDefaultValue: () => any;
|
|
21305
|
+
getConstantValue: () => any;
|
|
21306
|
+
getPropertyType: () => string;
|
|
21307
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21308
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21309
|
+
}> | undefined;
|
|
21310
|
+
};
|
|
21311
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
21312
|
+
singularName?: string | undefined;
|
|
21313
|
+
displayName?: string | undefined;
|
|
21314
|
+
}>;
|
|
21315
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
21316
|
+
getOptions: () => object & Readonly<{
|
|
21317
|
+
[s: string]: any;
|
|
21318
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
21319
|
+
}>;
|
|
21320
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
21321
|
+
}>>;
|
|
21322
|
+
validate: (options?: object | undefined) => Promise<import("./interfaces").ModelErrors<FunctionalModel>>;
|
|
21323
|
+
getModel: () => Readonly<{
|
|
21324
|
+
getName: () => string;
|
|
21325
|
+
getSingularName: () => string;
|
|
21326
|
+
getDisplayName: () => string;
|
|
21327
|
+
getPrimaryKeyName: () => string;
|
|
21328
|
+
getModelDefinition: () => Readonly<{
|
|
21329
|
+
getPrimaryKeyName?: (() => string) | undefined;
|
|
21330
|
+
properties: any & {
|
|
21331
|
+
readonly [x: string]: Readonly<{
|
|
21332
|
+
getConfig: () => object;
|
|
21333
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21334
|
+
getDefaultValue: () => any;
|
|
21335
|
+
getConstantValue: () => any;
|
|
21336
|
+
getPropertyType: () => string;
|
|
21337
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21338
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21339
|
+
}>;
|
|
21340
|
+
readonly id?: Readonly<{
|
|
21341
|
+
getConfig: () => object;
|
|
21342
|
+
getChoices: () => readonly (string | number | boolean | null)[];
|
|
21343
|
+
getDefaultValue: () => any;
|
|
21344
|
+
getConstantValue: () => any;
|
|
21345
|
+
getPropertyType: () => string;
|
|
21346
|
+
createGetter: (value: any, modelData: FunctionalModel, modelInstance: Readonly<any>) => ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21347
|
+
getValidator: (valueGetter: ValueGetter<any, FunctionalModel, Readonly<any>, Readonly<any>>) => PropertyValidator<FunctionalModel, Readonly<any>, Readonly<any>>;
|
|
21348
|
+
}> | undefined;
|
|
21349
|
+
};
|
|
21350
|
+
modelValidators?: readonly import("./interfaces").ModelValidatorComponent<FunctionalModel, Readonly<any>, Readonly<any>>[] | undefined;
|
|
21351
|
+
singularName?: string | undefined;
|
|
21352
|
+
displayName?: string | undefined;
|
|
21353
|
+
}>;
|
|
21354
|
+
getPrimaryKey: (t: FunctionalModel | TypedJsonObj<FunctionalModel>) => PrimaryKeyType;
|
|
21355
|
+
getOptions: () => object & Readonly<{
|
|
21356
|
+
[s: string]: any;
|
|
21357
|
+
instanceCreatedCallback: import("./interfaces").Nullable<Arrayable<(instance: Readonly<any>) => void>>;
|
|
21358
|
+
}>;
|
|
21359
|
+
create: (data: import("./interfaces").CreateParams<FunctionalModel>) => Readonly<any>;
|
|
21360
|
+
}>;
|
|
21361
|
+
}>>;
|
|
21362
|
+
}> & {
|
|
21363
|
+
calculate: CalculateDenormalization<T, TModel>;
|
|
21364
|
+
};
|
|
20886
21365
|
/**
|
|
20887
21366
|
* An Id that is naturally formed by the other properties within a model.
|
|
20888
21367
|
* Instead of having a "globally unique" id the model is unique because
|
|
@@ -21835,4 +22314,4 @@ declare const UniqueIdProperty: <TModifier extends PropertyModifier<string>>(con
|
|
|
21835
22314
|
}>;
|
|
21836
22315
|
}>>;
|
|
21837
22316
|
}>;
|
|
21838
|
-
export { Property, NaturalIdProperty, UniqueId, UniqueIdProperty, DateProperty, ArrayProperty, ModelReferenceProperty, AdvancedModelReferenceProperty, IntegerProperty, TextProperty, ConstantValueProperty, NumberProperty, ObjectProperty, EmailProperty, BooleanProperty, };
|
|
22317
|
+
export { Property, NaturalIdProperty, UniqueId, UniqueIdProperty, DateProperty, ArrayProperty, ModelReferenceProperty, AdvancedModelReferenceProperty, IntegerProperty, TextProperty, ConstantValueProperty, NumberProperty, ObjectProperty, EmailProperty, BooleanProperty, DenormalizedProperty, };
|
package/properties.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.BooleanProperty = exports.EmailProperty = exports.ObjectProperty = exports.NumberProperty = exports.ConstantValueProperty = exports.TextProperty = exports.IntegerProperty = exports.AdvancedModelReferenceProperty = exports.ModelReferenceProperty = exports.ArrayProperty = exports.DateProperty = exports.UniqueIdProperty = exports.UniqueId = exports.NaturalIdProperty = exports.Property = void 0;
|
|
15
|
+
exports.DenormalizedProperty = exports.BooleanProperty = exports.EmailProperty = exports.ObjectProperty = exports.NumberProperty = exports.ConstantValueProperty = exports.TextProperty = exports.IntegerProperty = exports.AdvancedModelReferenceProperty = exports.ModelReferenceProperty = exports.ArrayProperty = exports.DateProperty = exports.UniqueIdProperty = exports.UniqueId = exports.NaturalIdProperty = exports.Property = void 0;
|
|
16
16
|
const merge_1 = __importDefault(require("lodash/merge"));
|
|
17
17
|
const get_1 = __importDefault(require("lodash/get"));
|
|
18
18
|
const format_1 = require("date-fns/format");
|
|
@@ -43,9 +43,9 @@ const Property = (type, config = {}, additionalMetadata = {}) => {
|
|
|
43
43
|
const r = Object.assign(Object.assign({}, additionalMetadata), { getConfig: () => config || {}, getChoices,
|
|
44
44
|
getDefaultValue,
|
|
45
45
|
getConstantValue, getPropertyType: () => type, createGetter: (instanceValue, modelData, instance) => {
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
48
|
-
return () =>
|
|
46
|
+
const constantValue = getConstantValue();
|
|
47
|
+
if (constantValue !== undefined) {
|
|
48
|
+
return () => constantValue;
|
|
49
49
|
}
|
|
50
50
|
const defaultValue = getDefaultValue();
|
|
51
51
|
if (defaultValue !== undefined &&
|
|
@@ -237,6 +237,31 @@ const AdvancedModelReferenceProperty = (model, config = {}, additionalMetadata =
|
|
|
237
237
|
return p;
|
|
238
238
|
};
|
|
239
239
|
exports.AdvancedModelReferenceProperty = AdvancedModelReferenceProperty;
|
|
240
|
+
/**
|
|
241
|
+
* A property for denormalizing values.
|
|
242
|
+
* @param propertyType
|
|
243
|
+
* @param calculate
|
|
244
|
+
* @param config
|
|
245
|
+
* @param additionalMetadata
|
|
246
|
+
* @constructor
|
|
247
|
+
*/
|
|
248
|
+
const DenormalizedProperty = (propertyType, calculate, config = {}, additionalMetadata = {}) => {
|
|
249
|
+
const property = Property(propertyType, (0, merge_1.default)(config, {
|
|
250
|
+
isDenormalized: true,
|
|
251
|
+
lazyLoadMethod: (value, modelData, modelInstance) => __awaiter(void 0, void 0, void 0, function* () {
|
|
252
|
+
console.log('I AM HERE');
|
|
253
|
+
console.log(value);
|
|
254
|
+
if (value !== undefined) {
|
|
255
|
+
return value;
|
|
256
|
+
}
|
|
257
|
+
return calculate(modelData);
|
|
258
|
+
}),
|
|
259
|
+
}), additionalMetadata);
|
|
260
|
+
return (0, merge_1.default)(property, {
|
|
261
|
+
calculate,
|
|
262
|
+
});
|
|
263
|
+
};
|
|
264
|
+
exports.DenormalizedProperty = DenormalizedProperty;
|
|
240
265
|
/**
|
|
241
266
|
* An Id that is naturally formed by the other properties within a model.
|
|
242
267
|
* Instead of having a "globally unique" id the model is unique because
|
package/properties.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAAgC;AAChC,qDAA4B;AAC5B,4CAA4C;AAC5C,6CAKqB;AACrB,2CAA4C;AAC5C,iCAAkC;AAClC,mCAAuD;
|
|
1
|
+
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"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"}
|