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 CHANGED
@@ -320,4 +320,71 @@ A property that references another property. (Think Foreign Key)
320
320
 
321
321
  #### AdvancedModelReferenceProperty
322
322
 
323
- A more fuller/advanced property for referencing other properties. Useful for typescripting.
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
- 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, };
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":";;AAgYA,kCAAkC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;AAuYA,kCAAkC"}
package/models.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- import { ModelFactory } from './interfaces';
1
+ import { Model, ModelFactory } from './interfaces';
2
2
  declare const BaseModel: ModelFactory;
3
- export { BaseModel };
3
+ declare const Model: ModelFactory;
4
+ export { BaseModel, Model };
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "functional-models",
3
- "version": "2.1.5",
3
+ "version": "2.1.6",
4
4
  "description": "A library for creating JavaScript function based models.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
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> = PropertyConfig<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 value = getConstantValue();
47
- if (value !== undefined) {
48
- return () => value;
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":"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"}
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"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"}