functional-models 2.1.4 → 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 +4 -2
- package/properties.d.ts +1822 -284
- package/properties.js +64 -8
- 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":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "functional-models",
|
|
3
|
-
"version": "2.1.
|
|
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",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "mocha -r ts-node/register test/**/*.test.ts",
|
|
9
|
-
"test:coverage": "nyc npm run test",
|
|
9
|
+
"test:coverage": "NODE_OPTIONS='--max-old-space-size=8192' nyc npm run test",
|
|
10
10
|
"test:watch": "nodemon -e '*' --watch test --watch src --exec npm run test:coverage",
|
|
11
11
|
"commit": "cz",
|
|
12
12
|
"feature-tests": "./node_modules/.bin/cucumber-js -p default",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
68
|
"@cucumber/cucumber": "^8.0.0-rc.1",
|
|
69
|
+
"@date-fns/utc": "^1.2.0",
|
|
69
70
|
"@istanbuljs/nyc-config-typescript": "^1.0.2",
|
|
70
71
|
"@types/async-lock": "^1.1.3",
|
|
71
72
|
"@types/chai": "^4.2.22",
|
|
@@ -95,6 +96,7 @@
|
|
|
95
96
|
},
|
|
96
97
|
"dependencies": {
|
|
97
98
|
"async-lock": "^1.3.0",
|
|
99
|
+
"date-fns": "^3.6.0",
|
|
98
100
|
"get-random-values": "^1.2.2",
|
|
99
101
|
"lodash": "^4.17.21"
|
|
100
102
|
}
|