functional-models 3.10.0 → 3.11.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/cjs/errors.cjs +38 -0
- package/cjs/errors.cjs.map +7 -0
- package/cjs/index.cjs +2426 -0
- package/cjs/index.cjs.map +7 -0
- package/cjs/lib.cjs +431 -0
- package/cjs/lib.cjs.map +7 -0
- package/cjs/models.cjs +571 -0
- package/cjs/models.cjs.map +7 -0
- package/cjs/orm/index.cjs +1765 -0
- package/cjs/orm/index.cjs.map +7 -0
- package/cjs/orm/internal-libs.cjs +136 -0
- package/cjs/orm/internal-libs.cjs.map +7 -0
- package/cjs/orm/libs.cjs +88 -0
- package/cjs/orm/libs.cjs.map +7 -0
- package/cjs/orm/models.cjs +1027 -0
- package/cjs/orm/models.cjs.map +7 -0
- package/cjs/orm/properties.cjs +989 -0
- package/cjs/orm/properties.cjs.map +7 -0
- package/cjs/orm/query.cjs +376 -0
- package/cjs/orm/query.cjs.map +7 -0
- package/cjs/orm/types.cjs +59 -0
- package/cjs/orm/types.cjs.map +7 -0
- package/cjs/orm/validation.cjs +301 -0
- package/cjs/orm/validation.cjs.map +7 -0
- package/cjs/properties.cjs +998 -0
- package/cjs/properties.cjs.map +7 -0
- package/cjs/serialization.cjs +75 -0
- package/cjs/serialization.cjs.map +7 -0
- package/cjs/types.cjs +65 -0
- package/cjs/types.cjs.map +7 -0
- package/cjs/utils.cjs +187 -0
- package/cjs/utils.cjs.map +7 -0
- package/cjs/validation.cjs +431 -0
- package/cjs/validation.cjs.map +7 -0
- package/errors.js +3 -4
- package/errors.js.map +1 -1
- package/index.d.ts +13 -13
- package/index.js +13 -52
- package/index.js.map +1 -1
- package/lib.d.ts +2 -2
- package/lib.js +45 -65
- package/lib.js.map +1 -1
- package/models.d.ts +1 -1
- package/models.js +22 -30
- package/models.js.map +1 -1
- package/orm/index.d.ts +9 -9
- package/orm/index.js +9 -48
- package/orm/index.js.map +1 -1
- package/orm/internal-libs.js +7 -11
- package/orm/internal-libs.js.map +1 -1
- package/orm/libs.d.ts +1 -1
- package/orm/libs.js +8 -16
- package/orm/libs.js.map +1 -1
- package/orm/models.d.ts +2 -2
- package/orm/models.js +20 -26
- package/orm/models.js.map +1 -1
- package/orm/properties.d.ts +22 -22
- package/orm/properties.js +26 -36
- package/orm/properties.js.map +1 -1
- package/orm/query.d.ts +1 -1
- package/orm/query.js +31 -52
- package/orm/query.js.map +1 -1
- package/orm/types.d.ts +1 -1
- package/orm/types.js +7 -10
- package/orm/types.js.map +1 -1
- package/orm/validation.d.ts +2 -2
- package/orm/validation.js +5 -13
- package/orm/validation.js.map +1 -1
- package/package.json +50 -65
- package/properties.d.ts +21 -21
- package/properties.js +65 -94
- package/properties.js.map +1 -1
- package/serialization.d.ts +1 -1
- package/serialization.js +3 -9
- package/serialization.js.map +1 -1
- package/types.js +4 -6
- package/types.js.map +1 -1
- package/utils.d.ts +2 -1
- package/utils.js +8 -23
- package/utils.js.map +1 -1
- package/validation.d.ts +1 -1
- package/validation.js +19 -50
- package/validation.js.map +1 -1
package/lib.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,89 +7,73 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const zod_1 = require("zod");
|
|
22
|
-
const types_1 = require("./types");
|
|
23
|
-
const utils_1 = require("./utils");
|
|
24
|
-
const validation_1 = require("./validation");
|
|
25
|
-
var HttpMethods = openapi_types_1.OpenAPIV3.HttpMethods;
|
|
10
|
+
import { OpenAPIV3 } from 'openapi-types';
|
|
11
|
+
import kebabCase from 'lodash/kebabCase.js';
|
|
12
|
+
import flow from 'lodash/flow.js';
|
|
13
|
+
import merge from 'lodash/merge.js';
|
|
14
|
+
import get from 'lodash/get.js';
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
import { ApiMethod, } from './types.js';
|
|
17
|
+
import { createHeadAndTail } from './utils.js';
|
|
18
|
+
import { emptyValidator, maxNumber, maxTextLength, minNumber, minTextLength, } from './validation.js';
|
|
19
|
+
var HttpMethods = OpenAPIV3.HttpMethods;
|
|
26
20
|
const NULL_ENDPOINT = 'NULL';
|
|
27
|
-
exports.NULL_ENDPOINT = NULL_ENDPOINT;
|
|
28
21
|
const NULL_METHOD = HttpMethods.HEAD;
|
|
29
|
-
exports.NULL_METHOD = NULL_METHOD;
|
|
30
22
|
const ID_KEY = ':id';
|
|
31
23
|
const getValueForReferencedModel = (modelInstance, path) => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
|
-
const [head, tail] =
|
|
24
|
+
const [head, tail] = createHeadAndTail(path.split('.'), '.');
|
|
33
25
|
// If there are no nested keys, just return the reference id.
|
|
34
26
|
if (!tail) {
|
|
35
27
|
return modelInstance.getReferences()[head]();
|
|
36
28
|
}
|
|
37
29
|
const modelReference = yield modelInstance.get[head]();
|
|
38
30
|
if (modelReference.toObj) {
|
|
39
|
-
const [nestedHead, nestedTail] =
|
|
31
|
+
const [nestedHead, nestedTail] = createHeadAndTail(tail.split('.'), '.');
|
|
40
32
|
const value = yield modelReference.get[nestedHead]();
|
|
41
33
|
if (nestedTail) {
|
|
42
|
-
return (
|
|
34
|
+
return get(value, nestedTail);
|
|
43
35
|
}
|
|
44
36
|
return value;
|
|
45
37
|
}
|
|
46
|
-
return (
|
|
38
|
+
return get(modelReference, tail);
|
|
47
39
|
});
|
|
48
|
-
exports.getValueForReferencedModel = getValueForReferencedModel;
|
|
49
40
|
const getValueForModelInstance = (modelInstance, path) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
|
-
const [head, tail] =
|
|
41
|
+
const [head, tail] = createHeadAndTail(path.split('.'), '.');
|
|
51
42
|
const value = yield modelInstance.get[head]();
|
|
52
|
-
return tail ? (
|
|
43
|
+
return tail ? get(value, tail) : value;
|
|
53
44
|
});
|
|
54
|
-
exports.getValueForModelInstance = getValueForModelInstance;
|
|
55
45
|
const isReferencedProperty = (modelInstance, key) => {
|
|
56
46
|
return modelInstance.getReferences()[key];
|
|
57
47
|
};
|
|
58
|
-
exports.isReferencedProperty = isReferencedProperty;
|
|
59
48
|
const getCommonTextValidators = (config) => {
|
|
60
49
|
return [
|
|
61
|
-
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.maxLength,
|
|
62
|
-
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.minLength,
|
|
50
|
+
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.maxLength, maxTextLength),
|
|
51
|
+
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.minLength, minTextLength),
|
|
63
52
|
];
|
|
64
53
|
};
|
|
65
|
-
exports.getCommonTextValidators = getCommonTextValidators;
|
|
66
54
|
const getValidatorFromConfigElseEmpty = (input, validatorGetter) => {
|
|
67
55
|
if (input !== undefined) {
|
|
68
56
|
const validator = validatorGetter(input);
|
|
69
57
|
return validator;
|
|
70
58
|
}
|
|
71
|
-
return
|
|
59
|
+
return emptyValidator;
|
|
72
60
|
};
|
|
73
|
-
exports.getValidatorFromConfigElseEmpty = getValidatorFromConfigElseEmpty;
|
|
74
61
|
const getCommonNumberValidators = (config) => {
|
|
75
62
|
return [
|
|
76
|
-
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.minValue,
|
|
77
|
-
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.maxValue,
|
|
63
|
+
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.minValue, minNumber),
|
|
64
|
+
getValidatorFromConfigElseEmpty(config === null || config === void 0 ? void 0 : config.maxValue, maxNumber),
|
|
78
65
|
];
|
|
79
66
|
};
|
|
80
|
-
exports.getCommonNumberValidators = getCommonNumberValidators;
|
|
81
67
|
const mergeValidators = (config, ...validators) => {
|
|
82
68
|
return [...validators, ...((config === null || config === void 0 ? void 0 : config.validators) ? config.validators : [])];
|
|
83
69
|
};
|
|
84
|
-
exports.mergeValidators = mergeValidators;
|
|
85
70
|
const isModelInstance = (obj) => {
|
|
86
71
|
// @ts-ignore
|
|
87
72
|
return Boolean(obj && obj.getPrimaryKey);
|
|
88
73
|
};
|
|
89
|
-
exports.isModelInstance = isModelInstance;
|
|
90
74
|
const getModelName = (namespace, pluralName) => {
|
|
91
75
|
return `${namespace}/${pluralName}`;
|
|
92
76
|
};
|
|
93
|
-
exports.getModelName = getModelName;
|
|
94
77
|
const parseModelName = (modelName) => {
|
|
95
78
|
const parts = modelName.split('/');
|
|
96
79
|
// eslint-disable-next-line functional/immutable-data
|
|
@@ -98,20 +81,18 @@ const parseModelName = (modelName) => {
|
|
|
98
81
|
const namespace = parts.join('/');
|
|
99
82
|
return { namespace, pluralName };
|
|
100
83
|
};
|
|
101
|
-
exports.parseModelName = parseModelName;
|
|
102
84
|
const buildValidEndpoint = (...components) => {
|
|
103
85
|
const suffix = components
|
|
104
86
|
.map(x => {
|
|
105
87
|
if (x === ID_KEY) {
|
|
106
88
|
return x;
|
|
107
89
|
}
|
|
108
|
-
return (
|
|
90
|
+
return kebabCase(x);
|
|
109
91
|
})
|
|
110
92
|
.map(s => s.toLowerCase())
|
|
111
93
|
.join('/');
|
|
112
94
|
return `/${suffix}`;
|
|
113
95
|
};
|
|
114
|
-
exports.buildValidEndpoint = buildValidEndpoint;
|
|
115
96
|
const _generateRestInfo = (method, withId, ...additional) => (pluralName, namespace) => (existing) => {
|
|
116
97
|
if (existing) {
|
|
117
98
|
return Object.assign({
|
|
@@ -129,11 +110,11 @@ const _generateRestInfo = (method, withId, ...additional) => (pluralName, namesp
|
|
|
129
110
|
};
|
|
130
111
|
};
|
|
131
112
|
const _apiMethodToRestInfoGenerator = {
|
|
132
|
-
[
|
|
133
|
-
[
|
|
134
|
-
[
|
|
135
|
-
[
|
|
136
|
-
[
|
|
113
|
+
[ApiMethod.create]: _generateRestInfo(HttpMethods.POST, false),
|
|
114
|
+
[ApiMethod.retrieve]: _generateRestInfo(HttpMethods.GET, true),
|
|
115
|
+
[ApiMethod.update]: _generateRestInfo(HttpMethods.PUT, true),
|
|
116
|
+
[ApiMethod.delete]: _generateRestInfo(HttpMethods.DELETE, true),
|
|
117
|
+
[ApiMethod.search]: _generateRestInfo(HttpMethods.POST, false, 'search'),
|
|
137
118
|
};
|
|
138
119
|
const getNullRestInfo = () => {
|
|
139
120
|
return {
|
|
@@ -143,12 +124,12 @@ const getNullRestInfo = () => {
|
|
|
143
124
|
};
|
|
144
125
|
};
|
|
145
126
|
const _fillOutRestInfo = (pluralName, namespace, partial, nullRest) => {
|
|
146
|
-
const finishedRestInfo = Object.entries(
|
|
127
|
+
const finishedRestInfo = Object.entries(ApiMethod).reduce((acc, [, method]) => {
|
|
147
128
|
const existing = partial && partial.rest && partial.rest[method]
|
|
148
129
|
? partial.rest[method]
|
|
149
130
|
: undefined;
|
|
150
131
|
const restInfo = _apiMethodToRestInfoGenerator[method](pluralName, namespace)(existing);
|
|
151
|
-
return (
|
|
132
|
+
return merge(acc, {
|
|
152
133
|
[method]: restInfo,
|
|
153
134
|
});
|
|
154
135
|
}, nullRest);
|
|
@@ -184,7 +165,7 @@ const populateApiInformation = (pluralName, namespace, partial) => {
|
|
|
184
165
|
if (partial.onlyPublish && partial.onlyPublish.length > 0) {
|
|
185
166
|
return partial.onlyPublish.reduce((acc, method) => {
|
|
186
167
|
const restInfo = _apiMethodToRestInfoGenerator[method](pluralName, namespace)(rest[method]);
|
|
187
|
-
return (
|
|
168
|
+
return merge(acc, {
|
|
188
169
|
rest: {
|
|
189
170
|
[method]: restInfo,
|
|
190
171
|
},
|
|
@@ -198,7 +179,6 @@ const populateApiInformation = (pluralName, namespace, partial) => {
|
|
|
198
179
|
}
|
|
199
180
|
return _fillOutRestInfo(pluralName, namespace, partial, nullRest);
|
|
200
181
|
};
|
|
201
|
-
exports.populateApiInformation = populateApiInformation;
|
|
202
182
|
/**
|
|
203
183
|
* Create a zod schema generator for a property given its type and config.
|
|
204
184
|
* Returns a function that when called produces the zod schema.
|
|
@@ -211,41 +191,41 @@ const createZodForProperty = (propertyType, config) => () => {
|
|
|
211
191
|
}
|
|
212
192
|
const _getZodForPropertyType = (pt) => {
|
|
213
193
|
if (myConfig.choices) {
|
|
214
|
-
return
|
|
194
|
+
return z.enum(myConfig.choices);
|
|
215
195
|
}
|
|
216
196
|
switch (pt) {
|
|
217
197
|
case 'UniqueId':
|
|
218
|
-
return
|
|
198
|
+
return z.string();
|
|
219
199
|
case 'Date':
|
|
220
200
|
case 'Datetime':
|
|
221
|
-
return
|
|
201
|
+
return z.union([z.string(), z.date()]);
|
|
222
202
|
case 'Integer':
|
|
223
|
-
return
|
|
203
|
+
return z.number().int();
|
|
224
204
|
case 'Number':
|
|
225
|
-
return
|
|
205
|
+
return z.number();
|
|
226
206
|
case 'Boolean':
|
|
227
|
-
return
|
|
207
|
+
return z.boolean();
|
|
228
208
|
case 'Array':
|
|
229
|
-
return
|
|
209
|
+
return z.array(z.any());
|
|
230
210
|
case 'Object':
|
|
231
|
-
return
|
|
211
|
+
return z.object().loose();
|
|
232
212
|
case 'Email':
|
|
233
|
-
return
|
|
213
|
+
return z.email();
|
|
234
214
|
case 'Text':
|
|
235
215
|
case 'BigText':
|
|
236
|
-
return
|
|
216
|
+
return z.string();
|
|
237
217
|
case 'ModelReference':
|
|
238
|
-
return
|
|
218
|
+
return z.union([z.string(), z.number()]);
|
|
239
219
|
default:
|
|
240
|
-
return
|
|
220
|
+
return z.any();
|
|
241
221
|
}
|
|
242
222
|
};
|
|
243
223
|
const baseSchema = _getZodForPropertyType(propertyType);
|
|
244
224
|
const choices = config === null || config === void 0 ? void 0 : config.choices;
|
|
245
225
|
const schemaFromChoices = choices && Array.isArray(choices) && choices.length > 0
|
|
246
|
-
?
|
|
226
|
+
? z.union(choices.map((c) => z.literal(c)))
|
|
247
227
|
: baseSchema;
|
|
248
|
-
const finalSchema = (
|
|
228
|
+
const finalSchema = flow([
|
|
249
229
|
s => typeof myConfig.minValue === 'number' ? s.min(myConfig.minValue) : s,
|
|
250
230
|
s => typeof myConfig.maxValue === 'number' ? s.max(myConfig.maxValue) : s,
|
|
251
231
|
s => typeof myConfig.minLength === 'number' ? s.min(myConfig.minLength) : s,
|
|
@@ -271,5 +251,5 @@ const createZodForProperty = (propertyType, config) => () => {
|
|
|
271
251
|
])(schemaFromChoices);
|
|
272
252
|
return finalSchema;
|
|
273
253
|
};
|
|
274
|
-
|
|
254
|
+
export { isReferencedProperty, getValueForModelInstance, getValueForReferencedModel, getCommonTextValidators, getValidatorFromConfigElseEmpty, getCommonNumberValidators, mergeValidators, isModelInstance, getModelName, buildValidEndpoint, populateApiInformation, NULL_ENDPOINT, NULL_METHOD, createZodForProperty, parseModelName, };
|
|
275
255
|
//# sourceMappingURL=lib.js.map
|
package/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"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"}
|
package/models.d.ts
CHANGED
package/models.js
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const merge_1 = __importDefault(require("lodash/merge"));
|
|
8
|
-
const zod_1 = __importDefault(require("zod"));
|
|
9
|
-
const serialization_1 = require("./serialization");
|
|
10
|
-
const validation_1 = require("./validation");
|
|
11
|
-
const lib_1 = require("./lib");
|
|
12
|
-
const utils_1 = require("./utils");
|
|
1
|
+
import merge from 'lodash/merge.js';
|
|
2
|
+
import z from 'zod';
|
|
3
|
+
import { toJsonAble } from './serialization.js';
|
|
4
|
+
import { createModelValidator } from './validation.js';
|
|
5
|
+
import { getModelName, NULL_ENDPOINT, NULL_METHOD, populateApiInformation, } from './lib.js';
|
|
6
|
+
import { memoizeAsync, memoizeSync, singularize, toTitleCase } from './utils.js';
|
|
13
7
|
const _defaultOptions = () => ({
|
|
14
8
|
instanceCreatedCallback: undefined,
|
|
15
9
|
});
|
|
16
10
|
const _convertOptions = (options) => {
|
|
17
|
-
const r = (
|
|
11
|
+
const r = merge({}, _defaultOptions(), options);
|
|
18
12
|
return r;
|
|
19
13
|
};
|
|
20
14
|
const _addDescription = (schema, description) => {
|
|
@@ -36,15 +30,15 @@ const _createZod = (modelDefinition) => {
|
|
|
36
30
|
}
|
|
37
31
|
const properties = Object.entries(modelDefinition.properties).reduce((acc, [key, property]) => {
|
|
38
32
|
const asProp = property;
|
|
39
|
-
return (
|
|
33
|
+
return merge(acc, {
|
|
40
34
|
[key]: asProp.getZod(),
|
|
41
35
|
});
|
|
42
36
|
}, {});
|
|
43
|
-
const obj =
|
|
37
|
+
const obj = z.object(properties);
|
|
44
38
|
return _addDescription(obj, modelDefinition.description);
|
|
45
39
|
};
|
|
46
40
|
const _toModelDefinition = (minimal) => {
|
|
47
|
-
return Object.assign({ singularName:
|
|
41
|
+
return Object.assign({ singularName: singularize(minimal.pluralName), displayName: toTitleCase(minimal.pluralName), description: '', primaryKeyName: 'id', modelValidators: [], schema: _createZod(minimal) }, minimal);
|
|
48
42
|
};
|
|
49
43
|
const _validateModelDefinition = (modelDefinition) => {
|
|
50
44
|
const primaryKeyName = modelDefinition.primaryKeyName || 'id';
|
|
@@ -94,7 +88,7 @@ const Model = (minimalModelDefinitions, options) => {
|
|
|
94
88
|
};
|
|
95
89
|
const prop = Object.entries(modelDefinition.properties);
|
|
96
90
|
const loadedInternals = prop.reduce((acc, [key, property]) => {
|
|
97
|
-
const propertyGetter =
|
|
91
|
+
const propertyGetter = memoizeSync(() => property.createGetter(
|
|
98
92
|
//@ts-ignore
|
|
99
93
|
instanceValues[key], instanceValues,
|
|
100
94
|
// NOTE: By the time it gets here, it has already been implemented.
|
|
@@ -118,18 +112,18 @@ const Model = (minimalModelDefinitions, options) => {
|
|
|
118
112
|
},
|
|
119
113
|
}
|
|
120
114
|
: {};
|
|
121
|
-
return (
|
|
115
|
+
return merge(acc, fleshedOutInstanceProperties, referencedProperty);
|
|
122
116
|
}, startingInternals);
|
|
123
117
|
const getModel = () => model;
|
|
124
118
|
// We are casting this, because the output type is really complicated.
|
|
125
119
|
// and memoizing this is very important.
|
|
126
120
|
// @ts-ignore
|
|
127
|
-
const toObj =
|
|
128
|
-
return
|
|
121
|
+
const toObj = memoizeAsync(() => {
|
|
122
|
+
return toJsonAble(loadedInternals.get)();
|
|
129
123
|
});
|
|
130
|
-
const validate =
|
|
124
|
+
const validate = memoizeAsync((options = {}) => {
|
|
131
125
|
return Promise.resolve().then(() => {
|
|
132
|
-
return
|
|
126
|
+
return createModelValidator(loadedInternals.validators, modelDefinition.modelValidators)(instance, options);
|
|
133
127
|
});
|
|
134
128
|
});
|
|
135
129
|
const getReferences = () => loadedInternals.references;
|
|
@@ -152,8 +146,8 @@ const Model = (minimalModelDefinitions, options) => {
|
|
|
152
146
|
}
|
|
153
147
|
return instance;
|
|
154
148
|
};
|
|
155
|
-
const getApiInfo =
|
|
156
|
-
return
|
|
149
|
+
const getApiInfo = memoizeSync(() => {
|
|
150
|
+
return populateApiInformation(modelDefinition.pluralName, modelDefinition.namespace, modelDefinition.api);
|
|
157
151
|
});
|
|
158
152
|
// This sets the model that is used by the instances later.
|
|
159
153
|
model = {
|
|
@@ -161,28 +155,26 @@ const Model = (minimalModelDefinitions, options) => {
|
|
|
161
155
|
* Creates a model instance.
|
|
162
156
|
*/
|
|
163
157
|
create,
|
|
164
|
-
getName: () =>
|
|
165
|
-
getModelDefinition:
|
|
158
|
+
getName: () => getModelName(modelDefinition.namespace, modelDefinition.pluralName),
|
|
159
|
+
getModelDefinition: memoizeSync(() => modelDefinition),
|
|
166
160
|
getPrimaryKey,
|
|
167
161
|
getApiInfo,
|
|
168
162
|
};
|
|
169
163
|
return model;
|
|
170
164
|
};
|
|
171
|
-
exports.Model = Model;
|
|
172
165
|
/**
|
|
173
166
|
* A useful function for determining if a RestInfo found in an ApiInfo is "null" or not.
|
|
174
167
|
* That is, whether it should be used and considered.
|
|
175
168
|
* @param restInfo
|
|
176
169
|
*/
|
|
177
170
|
const isNullRestInfo = (restInfo) => {
|
|
178
|
-
return restInfo.method ===
|
|
171
|
+
return restInfo.method === NULL_METHOD && restInfo.endpoint === NULL_ENDPOINT;
|
|
179
172
|
};
|
|
180
|
-
exports.isNullRestInfo = isNullRestInfo;
|
|
181
173
|
/**
|
|
182
174
|
* A ModelInstanceFetcher that does not do anything. It always returns undefined.
|
|
183
175
|
*/
|
|
184
176
|
const noFetch = () => {
|
|
185
177
|
return Promise.resolve(undefined);
|
|
186
178
|
};
|
|
187
|
-
|
|
179
|
+
export { Model, isNullRestInfo, noFetch };
|
|
188
180
|
//# sourceMappingURL=models.js.map
|
package/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
package/orm/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export * as query from './query';
|
|
2
|
-
export * as validation from './validation';
|
|
3
|
-
export * as properties from './properties';
|
|
4
|
-
export * as types from './types';
|
|
5
|
-
export * from './models';
|
|
6
|
-
export * from './validation';
|
|
7
|
-
export * from './properties';
|
|
8
|
-
export * from './types';
|
|
9
|
-
export * from './query';
|
|
1
|
+
export * as query from './query.js';
|
|
2
|
+
export * as validation from './validation.js';
|
|
3
|
+
export * as properties from './properties.js';
|
|
4
|
+
export * as types from './types.js';
|
|
5
|
+
export * from './models.js';
|
|
6
|
+
export * from './validation.js';
|
|
7
|
+
export * from './properties.js';
|
|
8
|
+
export * from './types.js';
|
|
9
|
+
export * from './query.js';
|
package/orm/index.js
CHANGED
|
@@ -1,49 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.types = exports.properties = exports.validation = exports.query = void 0;
|
|
40
|
-
exports.query = __importStar(require("./query"));
|
|
41
|
-
exports.validation = __importStar(require("./validation"));
|
|
42
|
-
exports.properties = __importStar(require("./properties"));
|
|
43
|
-
exports.types = __importStar(require("./types"));
|
|
44
|
-
__exportStar(require("./models"), exports);
|
|
45
|
-
__exportStar(require("./validation"), exports);
|
|
46
|
-
__exportStar(require("./properties"), exports);
|
|
47
|
-
__exportStar(require("./types"), exports);
|
|
48
|
-
__exportStar(require("./query"), exports);
|
|
1
|
+
export * as query from './query.js';
|
|
2
|
+
export * as validation from './validation.js';
|
|
3
|
+
export * as properties from './properties.js';
|
|
4
|
+
export * as types from './types.js';
|
|
5
|
+
export * from './models.js';
|
|
6
|
+
export * from './validation.js';
|
|
7
|
+
export * from './properties.js';
|
|
8
|
+
export * from './types.js';
|
|
9
|
+
export * from './query.js';
|
|
49
10
|
//# sourceMappingURL=index.js.map
|
package/orm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orm/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orm/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA"}
|
package/orm/internal-libs.js
CHANGED
|
@@ -1,24 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getPrimaryKeyGenerator = void 0;
|
|
4
|
-
const types_js_1 = require("../types.js");
|
|
5
|
-
const utils_js_1 = require("../utils.js");
|
|
1
|
+
import { PropertyType } from '../types.js';
|
|
2
|
+
import { createUuid, getRandomValues } from '../utils.js';
|
|
6
3
|
const _getModelIdPropertyType = (config = {}) => {
|
|
7
|
-
return config.dataType ||
|
|
4
|
+
return config.dataType || PropertyType.UniqueId;
|
|
8
5
|
};
|
|
9
|
-
const getPrimaryKeyGenerator = (config = {}) => {
|
|
6
|
+
export const getPrimaryKeyGenerator = (config = {}) => {
|
|
10
7
|
const custom = config.primaryKeyGenerator;
|
|
11
8
|
if (custom) {
|
|
12
9
|
return custom;
|
|
13
10
|
}
|
|
14
11
|
const idType = _getModelIdPropertyType(config);
|
|
15
12
|
switch (idType) {
|
|
16
|
-
case
|
|
17
|
-
return () => Promise.resolve(
|
|
13
|
+
case PropertyType.Integer:
|
|
14
|
+
return () => Promise.resolve(getRandomValues()[0]);
|
|
18
15
|
default: {
|
|
19
|
-
return () => Promise.resolve(
|
|
16
|
+
return () => Promise.resolve(createUuid());
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
19
|
};
|
|
23
|
-
exports.getPrimaryKeyGenerator = getPrimaryKeyGenerator;
|
|
24
20
|
//# sourceMappingURL=internal-libs.js.map
|
package/orm/internal-libs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-libs.js","sourceRoot":"","sources":["../../src/orm/internal-libs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"internal-libs.js","sourceRoot":"","sources":["../../src/orm/internal-libs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAOzD,MAAM,uBAAuB,GAAG,CAC9B,SAAyC,EAAE,EACnB,EAAE;IAC1B,OAAO,MAAM,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAA;AACjD,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,SAA4C,EAAE,EACzB,EAAE;IACvB,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAA;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAA;IAC9C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY,CAAC,OAAO;YACvB,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAE,CAAC,CAAA;QACrD,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;AACH,CAAC,CAAA"}
|
package/orm/libs.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { QueryBuilder, DatastoreValueType, PropertyOptions } from './types';
|
|
1
|
+
import { QueryBuilder, DatastoreValueType, PropertyOptions } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Creates multiple property OR queries added to the passed in query builder.
|
|
4
4
|
* Returns another QueryBuilder.
|