functional-models 2.0.13 → 2.1.0
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 +58 -12
- package/errors.d.ts +5 -5
- package/errors.js +2 -2
- package/errors.js.map +1 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/interfaces.d.ts +109 -134
- package/interfaces.js.map +1 -1
- package/lazy.d.ts +1 -1
- package/lazy.js.map +1 -1
- package/lib.d.ts +4039 -0
- package/lib.js +70 -0
- package/lib.js.map +1 -0
- package/methods.d.ts +2 -2
- package/models.js +21 -32
- package/models.js.map +1 -1
- package/package.json +28 -10
- package/properties.d.ts +12680 -1073
- package/properties.js +52 -53
- package/properties.js.map +1 -1
- package/serialization.d.ts +2 -26
- package/serialization.js.map +1 -1
- package/utils.d.ts +4 -2
- package/utils.js +25 -3
- package/utils.js.map +1 -1
- package/validation.d.ts +10112 -180
- package/validation.js +14 -26
- package/validation.js.map +1 -1
package/lib.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.mergeValidators = exports.getCommonNumberValidators = exports.getValidatorFromConfigElseEmpty = exports.getCommonTextValidators = exports.getValueForReferencedModel = exports.getValueForModelInstance = exports.isReferencedProperty = void 0;
|
|
16
|
+
const get_1 = __importDefault(require("lodash/get"));
|
|
17
|
+
const utils_1 = require("./utils");
|
|
18
|
+
const validation_1 = require("./validation");
|
|
19
|
+
const getValueForReferencedModel = (modelInstance, path) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
const [head, tail] = (0, utils_1.createHeadAndTail)(path.split('.'), '.');
|
|
21
|
+
// If there are no nested keys, just return the reference id.
|
|
22
|
+
if (!tail) {
|
|
23
|
+
return modelInstance.references[head]();
|
|
24
|
+
}
|
|
25
|
+
const modelReference = yield modelInstance.get[head]();
|
|
26
|
+
if (typeof modelReference !== 'object') {
|
|
27
|
+
throw new Error(`Value was not an object type. Likely fetcher was not provided to get referenced model instance.`);
|
|
28
|
+
}
|
|
29
|
+
return (0, get_1.default)(modelReference, tail);
|
|
30
|
+
});
|
|
31
|
+
exports.getValueForReferencedModel = getValueForReferencedModel;
|
|
32
|
+
const getValueForModelInstance = (modelInstance, path) => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
const [head, tail] = (0, utils_1.createHeadAndTail)(path.split('.'), '.');
|
|
34
|
+
const value = yield modelInstance.get[head]();
|
|
35
|
+
return tail ? (0, get_1.default)(value, tail) : value;
|
|
36
|
+
});
|
|
37
|
+
exports.getValueForModelInstance = getValueForModelInstance;
|
|
38
|
+
const isReferencedProperty = (modelInstance, key) => {
|
|
39
|
+
return modelInstance.references[key];
|
|
40
|
+
};
|
|
41
|
+
exports.isReferencedProperty = isReferencedProperty;
|
|
42
|
+
const getCommonTextValidators = (config) => {
|
|
43
|
+
return [
|
|
44
|
+
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.maxLength, validation_1.maxTextLength),
|
|
45
|
+
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.minLength, validation_1.minTextLength),
|
|
46
|
+
];
|
|
47
|
+
};
|
|
48
|
+
exports.getCommonTextValidators = getCommonTextValidators;
|
|
49
|
+
const getValidatorFromConfigElseEmpty = (input,
|
|
50
|
+
// eslint-disable-next-line no-unused-vars
|
|
51
|
+
validatorGetter) => {
|
|
52
|
+
if (input !== undefined) {
|
|
53
|
+
const validator = validatorGetter(input);
|
|
54
|
+
return validator;
|
|
55
|
+
}
|
|
56
|
+
return validation_1.emptyValidator;
|
|
57
|
+
};
|
|
58
|
+
exports.getValidatorFromConfigElseEmpty = getValidatorFromConfigElseEmpty;
|
|
59
|
+
const getCommonNumberValidators = (config) => {
|
|
60
|
+
return [
|
|
61
|
+
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.minValue, validation_1.minNumber),
|
|
62
|
+
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.maxValue, validation_1.maxNumber),
|
|
63
|
+
];
|
|
64
|
+
};
|
|
65
|
+
exports.getCommonNumberValidators = getCommonNumberValidators;
|
|
66
|
+
const mergeValidators = (config, validators) => {
|
|
67
|
+
return [...validators, ...((config === null || config === void 0 ? void 0 : config.validators) ? config.validators : [])];
|
|
68
|
+
};
|
|
69
|
+
exports.mergeValidators = mergeValidators;
|
|
70
|
+
//# sourceMappingURL=lib.js.map
|
package/lib.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qDAA4B;AAY5B,mCAA2C;AAC3C,6CAMqB;AAErB,MAAM,0BAA0B,GAAG,CACjC,aAAiC,EACjC,IAAY,EACmB,EAAE;IACjC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAC5D,6DAA6D;IAC7D,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAA;KACxC;IACD,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;IACtD,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;QACtC,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAA;KACF;IACD,OAAO,IAAA,aAAG,EAAC,cAAc,EAAE,IAAI,CAAC,CAAA;AAClC,CAAC,CAAA,CAAA;AAgEC,gEAA0B;AA9D5B,MAAM,wBAAwB,GAAG,CAC/B,aAAiC,EACjC,IAAY,EACmB,EAAE;IACjC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAA,yBAAiB,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;IAC7C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAA,aAAG,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACxC,CAAC,CAAA,CAAA;AAsDC,4DAAwB;AApD1B,MAAM,oBAAoB,GAAG,CAC3B,aAAiC,EACjC,GAAW,EACX,EAAE;IACF,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AACtC,CAAC,CAAA;AA8CC,oDAAoB;AA5CtB,MAAM,uBAAuB,GAAG,CAC9B,MAAiC,EACW,EAAE;IAC9C,OAAO;QACL,+BAA+B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE,0BAAa,CAAC;QACjE,+BAA+B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE,0BAAa,CAAC;KAClE,CAAA;AACH,CAAC,CAAA;AAwCC,0DAAuB;AAtCzB,MAAM,+BAA+B,GAAG,CAItC,KAAyB;AACzB,0CAA0C;AAC1C,eAA6D,EAC9B,EAAE;IACjC,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;QACxC,OAAO,SAAS,CAAA;KACjB;IACD,OAAO,2BAAc,CAAA;AACvB,CAAC,CAAA;AA0BC,0EAA+B;AAxBjC,MAAM,yBAAyB,GAAG,CAChC,MAAiC,EACW,EAAE;IAC9C,OAAO;QACL,+BAA+B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,sBAAS,CAAC;QAC5D,+BAA+B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,sBAAS,CAAC;KAC7D,CAAA;AACH,CAAC,CAAA;AAkBC,8DAAyB;AAhB3B,MAAM,eAAe,GAAG,CACtB,MAAqC,EACrC,UAGG,EACgC,EAAE;IACrC,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,EAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAA;AASC,0CAAe"}
|
package/methods.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ModelInstanceMethod, ModelInstance, FunctionalModel, Model, ModelMethod } from './interfaces';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type InstanceMethodInput<T extends FunctionalModel, TModel extends Model<T>> = (instance: ModelInstance<T, TModel>, model: TModel, ...args: readonly any[]) => any;
|
|
3
|
+
type MethodInput<T extends FunctionalModel, TModel extends Model<T>> = (model: TModel, ...args: readonly any[]) => any;
|
|
4
4
|
declare function WrapperInstanceMethod<T extends FunctionalModel, TModel extends Model<T> = Model<T>>(method: InstanceMethodInput<T, TModel>): ModelInstanceMethod<T, TModel>;
|
|
5
5
|
declare function WrapperModelMethod<T extends FunctionalModel, TModel extends Model<T> = Model<T>>(method: MethodInput<T, TModel>): ModelMethod<T, TModel>;
|
|
6
6
|
export { WrapperInstanceMethod, WrapperModelMethod };
|
package/models.js
CHANGED
|
@@ -8,6 +8,7 @@ const merge_1 = __importDefault(require("lodash/merge"));
|
|
|
8
8
|
const serialization_1 = require("./serialization");
|
|
9
9
|
const validation_1 = require("./validation");
|
|
10
10
|
const properties_1 = require("./properties");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
11
12
|
const _defaultOptions = () => ({
|
|
12
13
|
instanceCreatedCallback: null,
|
|
13
14
|
});
|
|
@@ -15,16 +16,13 @@ const _convertOptions = (options) => {
|
|
|
15
16
|
const r = (0, merge_1.default)({}, _defaultOptions(), options);
|
|
16
17
|
return r;
|
|
17
18
|
};
|
|
18
|
-
const _createModelDefWithPrimaryKey = (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
properties: Object.assign({ id: (0, properties_1.UniqueId)({ required: true }) }, keyToProperty.properties),
|
|
24
|
-
modelValidators: keyToProperty.modelValidators,
|
|
25
|
-
};
|
|
19
|
+
const _createModelDefWithPrimaryKey = (modelDefinition) => {
|
|
20
|
+
const properties = (0, merge_1.default)({
|
|
21
|
+
id: (0, properties_1.UniqueId)({ required: true }),
|
|
22
|
+
}, modelDefinition.properties);
|
|
23
|
+
return Object.assign(Object.assign({}, modelDefinition), { getPrimaryKeyName: () => 'id', properties });
|
|
26
24
|
};
|
|
27
|
-
const BaseModel = (
|
|
25
|
+
const BaseModel = (pluralName, modelDefinition, options) => {
|
|
28
26
|
/*
|
|
29
27
|
* This non-functional approach is specifically used to
|
|
30
28
|
* allow instances to be able to refer back to its parent without
|
|
@@ -40,9 +38,10 @@ const BaseModel = (modelName, modelDefinition, options) => {
|
|
|
40
38
|
: modelDefinition;
|
|
41
39
|
// @ts-ignore
|
|
42
40
|
const getPrimaryKeyName = () => modelDefinition.getPrimaryKeyName();
|
|
43
|
-
const getPrimaryKey = (
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
const getPrimaryKey = (loadedInternals) => {
|
|
42
|
+
const property = loadedInternals.get[getPrimaryKeyName()];
|
|
43
|
+
return property();
|
|
44
|
+
};
|
|
46
45
|
const create = (instanceValues) => {
|
|
47
46
|
// eslint-disable-next-line functional/no-let
|
|
48
47
|
let instance = null;
|
|
@@ -52,8 +51,11 @@ const BaseModel = (modelName, modelDefinition, options) => {
|
|
|
52
51
|
references: {},
|
|
53
52
|
};
|
|
54
53
|
const loadedInternals = Object.entries(modelDefinition.properties).reduce((acc, [key, property]) => {
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
const propertyGetter = () => {
|
|
55
|
+
return property.createGetter(
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
instanceValues[key], instanceValues, instance)();
|
|
58
|
+
};
|
|
57
59
|
// @ts-ignore
|
|
58
60
|
const propertyValidator = property.getValidator(propertyGetter);
|
|
59
61
|
const fleshedOutInstanceProperties = {
|
|
@@ -76,13 +78,6 @@ const BaseModel = (modelName, modelDefinition, options) => {
|
|
|
76
78
|
: {};
|
|
77
79
|
return (0, merge_1.default)(acc, fleshedOutInstanceProperties, referencedProperty);
|
|
78
80
|
}, startingInternals);
|
|
79
|
-
const methods = Object.entries(modelDefinition.instanceMethods || {}).reduce((acc, [key, func]) => {
|
|
80
|
-
return (0, merge_1.default)(acc, {
|
|
81
|
-
[key]: (...args) => {
|
|
82
|
-
return func(instance, model, ...args);
|
|
83
|
-
},
|
|
84
|
-
});
|
|
85
|
-
}, {});
|
|
86
81
|
const getModel = () => model;
|
|
87
82
|
const toObj = (0, serialization_1.toJsonAble)(loadedInternals.get);
|
|
88
83
|
const validate = (options = {}) => {
|
|
@@ -93,10 +88,9 @@ const BaseModel = (modelName, modelDefinition, options) => {
|
|
|
93
88
|
instance = (0, merge_1.default)(loadedInternals, {
|
|
94
89
|
getModel,
|
|
95
90
|
toObj,
|
|
96
|
-
getPrimaryKey: () => getPrimaryKey(
|
|
91
|
+
getPrimaryKey: () => getPrimaryKey(loadedInternals),
|
|
97
92
|
getPrimaryKeyName,
|
|
98
93
|
validate,
|
|
99
|
-
methods,
|
|
100
94
|
});
|
|
101
95
|
if (theOptions.instanceCreatedCallback) {
|
|
102
96
|
const toCall = Array.isArray(theOptions.instanceCreatedCallback)
|
|
@@ -106,22 +100,17 @@ const BaseModel = (modelName, modelDefinition, options) => {
|
|
|
106
100
|
}
|
|
107
101
|
return instance;
|
|
108
102
|
};
|
|
109
|
-
const fleshedOutModelFunctions = Object.entries(modelDefinition.modelMethods || {}).reduce((acc, [key, func]) => {
|
|
110
|
-
return (0, merge_1.default)(acc, {
|
|
111
|
-
[key]: (...args) => {
|
|
112
|
-
return func(model, ...args);
|
|
113
|
-
},
|
|
114
|
-
});
|
|
115
|
-
}, {});
|
|
116
103
|
// This sets the model that is used by the instances later.
|
|
104
|
+
// @ts-ignore
|
|
117
105
|
model = (0, merge_1.default)({}, {
|
|
118
106
|
create,
|
|
119
|
-
getName: () =>
|
|
107
|
+
getName: () => pluralName,
|
|
108
|
+
getSingularName: () => modelDefinition.singularName || (0, utils_1.singularize)(pluralName),
|
|
109
|
+
getDisplayName: () => modelDefinition.displayName || (0, utils_1.toTitleCase)(pluralName),
|
|
120
110
|
getModelDefinition: () => modelDefinition,
|
|
121
111
|
getPrimaryKeyName,
|
|
122
112
|
getPrimaryKey,
|
|
123
113
|
getOptions: () => theOptions,
|
|
124
|
-
methods: fleshedOutModelFunctions,
|
|
125
114
|
});
|
|
126
115
|
return model;
|
|
127
116
|
};
|
package/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":";;;;;;AAAA,yDAAgC;AAChC,mDAA4C;AAC5C,6CAAmD;AACnD,6CAAuC;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "functional-models",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
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
9
|
"test:coverage": "nyc npm run test",
|
|
10
|
+
"commit": "cz",
|
|
10
11
|
"feature-tests": "./node_modules/.bin/cucumber-js -p default",
|
|
11
12
|
"coverage": "nyc --all --reporter=lcov npm test",
|
|
12
13
|
"build": "tsc -p ./tsconfig.build.json && cp package.json ./dist && cp README.md ./dist",
|
|
14
|
+
"build:watch": "nodemon -e '*' --watch ./src --exec npm run build",
|
|
15
|
+
"prettier": "prettier --write .",
|
|
16
|
+
"eslint": "eslint . --fix",
|
|
13
17
|
"dist": "npm run build && cd dist && npm publish"
|
|
14
18
|
},
|
|
15
19
|
"repository": {
|
|
@@ -29,6 +33,11 @@
|
|
|
29
33
|
"bugs": {
|
|
30
34
|
"url": "https://github.com/monolithst/functional-models/issues"
|
|
31
35
|
},
|
|
36
|
+
"config": {
|
|
37
|
+
"commitizen": {
|
|
38
|
+
"path": "./node_modules/cz-conventional-changelog"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
32
41
|
"homepage": "https://github.com/monolithst/functional-models#readme",
|
|
33
42
|
"nyc": {
|
|
34
43
|
"extends": "@istanbuljs/nyc-config-typescript",
|
|
@@ -38,7 +47,13 @@
|
|
|
38
47
|
"src/**/!(*.test.*).[tj]s?(x)"
|
|
39
48
|
],
|
|
40
49
|
"exclude": [
|
|
41
|
-
"src/_tests_/**/*.*"
|
|
50
|
+
"src/_tests_/**/*.*",
|
|
51
|
+
"node_modules",
|
|
52
|
+
".nyc_output",
|
|
53
|
+
"coverage",
|
|
54
|
+
".git",
|
|
55
|
+
".github",
|
|
56
|
+
"features"
|
|
42
57
|
],
|
|
43
58
|
"reporter": [
|
|
44
59
|
"html",
|
|
@@ -58,21 +73,24 @@
|
|
|
58
73
|
"@types/mocha": "^9.0.0",
|
|
59
74
|
"@types/proxyquire": "^1.3.28",
|
|
60
75
|
"@types/sinon": "^10.0.6",
|
|
61
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
62
|
-
"@typescript-eslint/parser": "^
|
|
76
|
+
"@typescript-eslint/eslint-plugin": "^6.3.0",
|
|
77
|
+
"@typescript-eslint/parser": "^6.3.0",
|
|
63
78
|
"babel-eslint": "^10.1.0",
|
|
64
79
|
"chai": "^4.3.0",
|
|
65
80
|
"chai-as-promised": "^7.1.1",
|
|
66
|
-
"
|
|
67
|
-
"eslint
|
|
68
|
-
"eslint-
|
|
69
|
-
"eslint-
|
|
70
|
-
"
|
|
81
|
+
"cz-conventional-changelog": "^3.3.0",
|
|
82
|
+
"eslint": "^8.46.0",
|
|
83
|
+
"eslint-config-prettier": "^9.0.0",
|
|
84
|
+
"eslint-import-resolver-typescript": "^3.6.0",
|
|
85
|
+
"eslint-plugin-functional": "^6.0.0",
|
|
86
|
+
"eslint-plugin-import": "^2.28.0",
|
|
87
|
+
"mocha": "^10.4.0",
|
|
88
|
+
"nodemon": "^3.1.0",
|
|
71
89
|
"nyc": "^15.1.0",
|
|
72
90
|
"proxyquire": "^2.1.3",
|
|
73
91
|
"sinon": "^11.1.2",
|
|
74
92
|
"ts-node": "^10.4.0",
|
|
75
|
-
"typescript": "^4.
|
|
93
|
+
"typescript": "^4.5.4"
|
|
76
94
|
},
|
|
77
95
|
"dependencies": {
|
|
78
96
|
"async-lock": "^1.3.0",
|