functional-models 2.1.13 → 3.0.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 +484 -301
- package/errors.d.ts +2 -5
- package/errors.js.map +1 -1
- package/index.d.ts +6 -7
- package/index.js +24 -20
- package/index.js.map +1 -1
- package/lib.d.ts +15 -4051
- package/lib.js +120 -8
- package/lib.js.map +1 -1
- package/models.d.ts +13 -3
- package/models.js +73 -38
- package/models.js.map +1 -1
- package/package.json +34 -21
- package/properties.d.ts +439 -23639
- package/properties.js +237 -103
- package/properties.js.map +1 -1
- package/serialization.d.ts +2 -2
- package/serialization.js +1 -1
- package/serialization.js.map +1 -1
- package/types.d.ts +692 -0
- package/types.js +45 -0
- package/types.js.map +1 -0
- package/utils.d.ts +4 -2
- package/utils.js +43 -2
- package/utils.js.map +1 -1
- package/validation.d.ts +18 -12164
- package/validation.js +30 -28
- package/validation.js.map +1 -1
- package/constants.d.ts +0 -14
- package/constants.js +0 -19
- package/constants.js.map +0 -1
- package/interfaces.d.ts +0 -147
- package/interfaces.js +0 -4
- package/interfaces.js.map +0 -1
- package/lazy.d.ts +0 -3
- package/lazy.js +0 -51
- package/lazy.js.map +0 -1
- package/methods.d.ts +0 -6
- package/methods.js +0 -18
- package/methods.js.map +0 -1
package/types.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiMethod = exports.PropertyType = exports.PrimitiveValueType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Higher Level Methods associated with a model based API. CRUDS
|
|
6
|
+
*/
|
|
7
|
+
var ApiMethod;
|
|
8
|
+
(function (ApiMethod) {
|
|
9
|
+
ApiMethod["create"] = "create";
|
|
10
|
+
ApiMethod["retrieve"] = "retrieve";
|
|
11
|
+
ApiMethod["update"] = "update";
|
|
12
|
+
ApiMethod["delete"] = "delete";
|
|
13
|
+
ApiMethod["search"] = "search";
|
|
14
|
+
})(ApiMethod || (exports.ApiMethod = ApiMethod = {}));
|
|
15
|
+
/**
|
|
16
|
+
* Higher level value types that describe what the value of a property is.
|
|
17
|
+
* These values can be used to generate expressive APIs as well as GUI elements.
|
|
18
|
+
*/
|
|
19
|
+
var PropertyType;
|
|
20
|
+
(function (PropertyType) {
|
|
21
|
+
PropertyType["UniqueId"] = "UniqueId";
|
|
22
|
+
PropertyType["Date"] = "Date";
|
|
23
|
+
PropertyType["Datetime"] = "Datetime";
|
|
24
|
+
PropertyType["Array"] = "Array";
|
|
25
|
+
PropertyType["ModelReference"] = "ModelReference";
|
|
26
|
+
PropertyType["Integer"] = "Integer";
|
|
27
|
+
PropertyType["Text"] = "Text";
|
|
28
|
+
PropertyType["BigText"] = "BigText";
|
|
29
|
+
PropertyType["Number"] = "Number";
|
|
30
|
+
PropertyType["Object"] = "Object";
|
|
31
|
+
PropertyType["Email"] = "Email";
|
|
32
|
+
PropertyType["Boolean"] = "Boolean";
|
|
33
|
+
})(PropertyType || (exports.PropertyType = PropertyType = {}));
|
|
34
|
+
/**
|
|
35
|
+
* The most primitive data types that can be used.
|
|
36
|
+
*/
|
|
37
|
+
var PrimitiveValueType;
|
|
38
|
+
(function (PrimitiveValueType) {
|
|
39
|
+
PrimitiveValueType["boolean"] = "boolean";
|
|
40
|
+
PrimitiveValueType["string"] = "string";
|
|
41
|
+
PrimitiveValueType["object"] = "object";
|
|
42
|
+
PrimitiveValueType["number"] = "number";
|
|
43
|
+
PrimitiveValueType["integer"] = "integer";
|
|
44
|
+
})(PrimitiveValueType || (exports.PrimitiveValueType = PrimitiveValueType = {}));
|
|
45
|
+
//# sourceMappingURL=types.js.map
|
package/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAwlBA;;GAEG;AACH,IAAK,SAMJ;AAND,WAAK,SAAS;IACZ,8BAAiB,CAAA;IACjB,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;AACnB,CAAC,EANI,SAAS,yBAAT,SAAS,QAMb;AAsTD;;;GAGG;AACH,IAAK,YAaJ;AAbD,WAAK,YAAY;IACf,qCAAqB,CAAA;IACrB,6BAAa,CAAA;IACb,qCAAqB,CAAA;IACrB,+BAAe,CAAA;IACf,iDAAiC,CAAA;IACjC,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,mCAAmB,CAAA;AACrB,CAAC,EAbI,YAAY,4BAAZ,YAAY,QAahB;AAED;;GAEG;AACH,IAAK,kBAMJ;AAND,WAAK,kBAAkB;IACrB,yCAAmB,CAAA;IACnB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,uCAAiB,CAAA;IACjB,yCAAmB,CAAA;AACrB,CAAC,EANI,kBAAkB,kCAAlB,kBAAkB,QAMtB"}
|
package/utils.d.ts
CHANGED
|
@@ -4,5 +4,7 @@ declare const loweredTitleCase: (string: string) => string;
|
|
|
4
4
|
declare const isPromise: <T>(something: any) => something is Promise<T>;
|
|
5
5
|
declare const singularize: (word: string) => string;
|
|
6
6
|
declare const createHeadAndTail: (values: readonly string[], joiner: string) => string[];
|
|
7
|
-
declare const flowFindFirst: <T, TResult>(funcs: ((t: T) =>
|
|
8
|
-
|
|
7
|
+
declare const flowFindFirst: <T, TResult>(funcs: ((t: T) => undefined | TResult)[]) => (input: T) => string | TResult;
|
|
8
|
+
declare const memoizeSync: <T, A extends Array<any>>(method: (...args: A) => T) => (...args: A) => T;
|
|
9
|
+
declare const memoizeAsync: <T, A extends Array<any>>(method: (...args: A) => T) => (...args: A) => Promise<T>;
|
|
10
|
+
export { loweredTitleCase, toTitleCase, createUuid, isPromise, createHeadAndTail, singularize, flowFindFirst, memoizeSync, memoizeAsync, };
|
package/utils.js
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
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
|
+
};
|
|
2
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
13
|
};
|
|
5
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.flowFindFirst = exports.singularize = exports.createHeadAndTail = exports.isPromise = exports.createUuid = exports.toTitleCase = exports.loweredTitleCase = void 0;
|
|
15
|
+
exports.memoizeAsync = exports.memoizeSync = exports.flowFindFirst = exports.singularize = exports.createHeadAndTail = exports.isPromise = exports.createUuid = exports.toTitleCase = exports.loweredTitleCase = void 0;
|
|
7
16
|
// @ts-ignore
|
|
8
17
|
const get_random_values_1 = __importDefault(require("get-random-values"));
|
|
18
|
+
const async_lock_1 = __importDefault(require("async-lock"));
|
|
9
19
|
const HEX = 16;
|
|
10
20
|
const FOUR = 4;
|
|
11
21
|
const FIFTEEN = 15;
|
|
@@ -24,7 +34,6 @@ const getRandomValues = () => {
|
|
|
24
34
|
return (0, get_random_values_1.default)(array);
|
|
25
35
|
};
|
|
26
36
|
const createUuid = () => {
|
|
27
|
-
// eslint-disable-next-line no-magic-numbers,require-unicode-regexp
|
|
28
37
|
// @ts-ignore
|
|
29
38
|
// eslint-disable-next-line no-magic-numbers,require-unicode-regexp
|
|
30
39
|
return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => {
|
|
@@ -79,4 +88,36 @@ const flowFindFirst = (funcs) => (input) => {
|
|
|
79
88
|
}, undefined);
|
|
80
89
|
};
|
|
81
90
|
exports.flowFindFirst = flowFindFirst;
|
|
91
|
+
const memoizeSync = (method) => {
|
|
92
|
+
/* eslint-disable functional/no-let */
|
|
93
|
+
let value = undefined;
|
|
94
|
+
let called = false;
|
|
95
|
+
return (...args) => {
|
|
96
|
+
if (!called) {
|
|
97
|
+
called = true;
|
|
98
|
+
value = method(...args);
|
|
99
|
+
}
|
|
100
|
+
return value;
|
|
101
|
+
};
|
|
102
|
+
/* eslint-enable functional/no-let */
|
|
103
|
+
};
|
|
104
|
+
exports.memoizeSync = memoizeSync;
|
|
105
|
+
const memoizeAsync = (method) => {
|
|
106
|
+
const key = createUuid();
|
|
107
|
+
const lock = new async_lock_1.default();
|
|
108
|
+
/* eslint-disable functional/no-let */
|
|
109
|
+
let value = undefined;
|
|
110
|
+
let called = false;
|
|
111
|
+
return (...args) => __awaiter(void 0, void 0, void 0, function* () {
|
|
112
|
+
return lock.acquire(key, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
113
|
+
if (!called) {
|
|
114
|
+
called = true;
|
|
115
|
+
value = yield method(...args);
|
|
116
|
+
}
|
|
117
|
+
return value;
|
|
118
|
+
}));
|
|
119
|
+
});
|
|
120
|
+
/* eslint-enable functional/no-let */
|
|
121
|
+
};
|
|
122
|
+
exports.memoizeAsync = memoizeAsync;
|
|
82
123
|
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|