functional-models 3.9.5 → 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 +5 -5
- 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 +28 -28
- package/orm/properties.js +28 -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 +2 -2
- 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 +133 -133
- package/properties.js +66 -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.d.ts +6 -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/orm/libs.js
CHANGED
|
@@ -1,44 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.multipleAndQuery = exports.multipleOrQuery = void 0;
|
|
7
|
-
const flow_js_1 = __importDefault(require("lodash/flow.js"));
|
|
8
|
-
const types_1 = require("./types");
|
|
1
|
+
import flow from 'lodash/flow.js';
|
|
2
|
+
import { DatastoreValueType } from './types.js';
|
|
9
3
|
/**
|
|
10
4
|
* Creates multiple property OR queries added to the passed in query builder.
|
|
11
5
|
* Returns another QueryBuilder.
|
|
12
6
|
*/
|
|
13
|
-
const multipleOrQuery = (queryBuilder, propertyKey, values, propertyType, propertyOptions) => {
|
|
7
|
+
export const multipleOrQuery = (queryBuilder, propertyKey, values, propertyType, propertyOptions) => {
|
|
14
8
|
if (values.length === 0) {
|
|
15
9
|
return queryBuilder;
|
|
16
10
|
}
|
|
17
|
-
return (
|
|
11
|
+
return flow(values.map((v, index) => {
|
|
18
12
|
return (qb) => {
|
|
19
|
-
const withProperty = qb.property(propertyKey, v, Object.assign(Object.assign({}, (propertyOptions || {})), { type: propertyType ||
|
|
13
|
+
const withProperty = qb.property(propertyKey, v, Object.assign(Object.assign({}, (propertyOptions || {})), { type: propertyType || DatastoreValueType.string }));
|
|
20
14
|
// Add 'or()' only if this is not the last item
|
|
21
15
|
return index < values.length - 1 ? withProperty.or() : withProperty;
|
|
22
16
|
};
|
|
23
17
|
}))(queryBuilder);
|
|
24
18
|
};
|
|
25
|
-
exports.multipleOrQuery = multipleOrQuery;
|
|
26
19
|
/**
|
|
27
20
|
* Creates multiple AND queries.
|
|
28
21
|
*/
|
|
29
|
-
const multipleAndQuery = (queryBuilder, propertyKey, values, propertyType) => {
|
|
22
|
+
export const multipleAndQuery = (queryBuilder, propertyKey, values, propertyType) => {
|
|
30
23
|
if (values.length === 0) {
|
|
31
24
|
return queryBuilder;
|
|
32
25
|
}
|
|
33
|
-
return (
|
|
26
|
+
return flow(values.map((v, index) => {
|
|
34
27
|
return (qb) => {
|
|
35
28
|
const withProperty = qb.property(propertyKey, v, {
|
|
36
|
-
type: propertyType ||
|
|
29
|
+
type: propertyType || DatastoreValueType.string,
|
|
37
30
|
});
|
|
38
31
|
// Add 'or()' only if this is not the last item
|
|
39
32
|
return index < values.length - 1 ? withProperty.and() : withProperty;
|
|
40
33
|
};
|
|
41
34
|
}))(queryBuilder);
|
|
42
35
|
};
|
|
43
|
-
exports.multipleAndQuery = multipleAndQuery;
|
|
44
36
|
//# sourceMappingURL=libs.js.map
|
package/orm/libs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs.js","sourceRoot":"","sources":["../../src/orm/libs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"libs.js","sourceRoot":"","sources":["../../src/orm/libs.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,gBAAgB,CAAA;AACjC,OAAO,EAAgB,kBAAkB,EAAmB,MAAM,YAAY,CAAA;AAE9E;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,YAA0B,EAC1B,WAAmB,EACnB,MAAoB,EACpB,YAAiC,EACjC,eAAiC,EACnB,EAAE;IAChB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,OAAO,IAAI,CACT,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,CAAC,EAAgB,EAAE,EAAE;YAC1B,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,kCAC1C,CAAC,eAAe,IAAI,EAAE,CAAC,KAC1B,IAAI,EAAE,YAAY,IAAI,kBAAkB,CAAC,MAAM,IAC/C,CAAA;YACF,+CAA+C;YAC/C,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAA;QACrE,CAAC,CAAA;IACH,CAAC,CAAC,CACH,CAAC,YAAY,CAAC,CAAA;AACjB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,YAA0B,EAC1B,WAAmB,EACnB,MAAoB,EACpB,YAAiC,EACnB,EAAE;IAChB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,OAAO,IAAI,CACT,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACtB,OAAO,CAAC,EAAgB,EAAE,EAAE;YAC1B,MAAM,YAAY,GAAG,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;gBAC/C,IAAI,EAAE,YAAY,IAAI,kBAAkB,CAAC,MAAM;aAChD,CAAC,CAAA;YACF,+CAA+C;YAC/C,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAA;QACtE,CAAC,CAAA;IACH,CAAC,CAAC,CACH,CAAC,YAAY,CAAC,CAAA;AACjB,CAAC,CAAA"}
|
package/orm/models.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ModelFactory } from '../types';
|
|
2
|
-
import { DatastoreAdapter, Orm } from './types';
|
|
1
|
+
import { ModelFactory } from '../types.js';
|
|
2
|
+
import { DatastoreAdapter, Orm } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a structure that has an OrmModel and a fetcher
|
|
5
5
|
* @param datastoreAdapter - A backing datastore.
|
package/orm/models.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,23 +7,18 @@ 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
|
-
const modern_async_1 = require("modern-async");
|
|
18
|
-
const models_1 = require("../models");
|
|
19
|
-
const errors_1 = require("../errors");
|
|
20
|
-
const validation_1 = require("./validation");
|
|
21
|
-
const query_1 = require("./query");
|
|
10
|
+
import merge from 'lodash/merge.js';
|
|
11
|
+
import { asyncMap } from 'modern-async';
|
|
12
|
+
import { Model as functionalModel } from '../models.js';
|
|
13
|
+
import { ValidationError } from '../errors.js';
|
|
14
|
+
import { uniqueTogether } from './validation.js';
|
|
15
|
+
import { queryBuilder } from './query.js';
|
|
22
16
|
/**
|
|
23
17
|
* Creates a structure that has an OrmModel and a fetcher
|
|
24
18
|
* @param datastoreAdapter - A backing datastore.
|
|
25
19
|
* @param Model - An optional underlying Model factory for using. Defaults to {@link Model}
|
|
26
20
|
*/
|
|
27
|
-
const createOrm = ({ datastoreAdapter, Model =
|
|
21
|
+
const createOrm = ({ datastoreAdapter, Model = functionalModel, }) => {
|
|
28
22
|
if (!datastoreAdapter) {
|
|
29
23
|
throw new Error(`Must include a datastoreAdapter`);
|
|
30
24
|
}
|
|
@@ -47,7 +41,7 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
47
41
|
instanceCreatedCallback: undefined,
|
|
48
42
|
});
|
|
49
43
|
const _convertOptions = (options) => {
|
|
50
|
-
const r = (
|
|
44
|
+
const r = merge({}, _defaultOptions(), options);
|
|
51
45
|
return r;
|
|
52
46
|
};
|
|
53
47
|
const ThisModel = (modelDefinition, options) => {
|
|
@@ -72,7 +66,7 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
72
66
|
});
|
|
73
67
|
};
|
|
74
68
|
const searchOne = (ormQuery) => {
|
|
75
|
-
ormQuery = (
|
|
69
|
+
ormQuery = merge(ormQuery, { take: 1 });
|
|
76
70
|
return search(ormQuery).then(({ instances }) => {
|
|
77
71
|
return instances[0];
|
|
78
72
|
});
|
|
@@ -83,7 +77,7 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
83
77
|
yield datastoreAdapter.bulkInsert(model, instances);
|
|
84
78
|
return undefined;
|
|
85
79
|
}
|
|
86
|
-
yield
|
|
80
|
+
yield asyncMap(instances, x => x.save());
|
|
87
81
|
return undefined;
|
|
88
82
|
});
|
|
89
83
|
const bulkDelete = (keysOrInstances) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -94,7 +88,7 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
94
88
|
yield datastoreAdapter.bulkDelete(model, ids);
|
|
95
89
|
return undefined;
|
|
96
90
|
}
|
|
97
|
-
yield
|
|
91
|
+
yield asyncMap(ids, id => model.delete(id));
|
|
98
92
|
return undefined;
|
|
99
93
|
});
|
|
100
94
|
const loadedRetrieve = (id) => {
|
|
@@ -104,9 +98,9 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
104
98
|
const modelValidators = (modelDefinition === null || modelDefinition === void 0 ? void 0 : modelDefinition.uniqueTogether)
|
|
105
99
|
? (modelDefinition.modelValidators || []).concat(
|
|
106
100
|
// @ts-ignore
|
|
107
|
-
|
|
101
|
+
uniqueTogether(modelDefinition.uniqueTogether))
|
|
108
102
|
: modelDefinition.modelValidators;
|
|
109
|
-
const ormModelDefinition = (
|
|
103
|
+
const ormModelDefinition = merge({}, modelDefinition, {
|
|
110
104
|
modelValidators,
|
|
111
105
|
});
|
|
112
106
|
const _updateLastModifiedIfExistsReturnNewObj = (instance) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -118,7 +112,7 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
118
112
|
const obj = yield instance.toObj();
|
|
119
113
|
const newInstance = model.create(
|
|
120
114
|
// @ts-ignore
|
|
121
|
-
(
|
|
115
|
+
merge(obj, {
|
|
122
116
|
[hasLastModified[0]]:
|
|
123
117
|
// @ts-ignore
|
|
124
118
|
hasLastModified[1].lastModifiedUpdateMethod(),
|
|
@@ -133,7 +127,7 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
133
127
|
const newInstance = yield _updateLastModifiedIfExistsReturnNewObj(instance);
|
|
134
128
|
const invalid = yield newInstance.validate();
|
|
135
129
|
if (invalid) {
|
|
136
|
-
throw new
|
|
130
|
+
throw new ValidationError(model.getName(), invalid);
|
|
137
131
|
}
|
|
138
132
|
const savedObj = yield datastoreAdapter.save(newInstance);
|
|
139
133
|
// @ts-ignore
|
|
@@ -187,13 +181,13 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
187
181
|
};
|
|
188
182
|
// Absolutely do not put theOptions as the first argument. This first argument is what is modified,
|
|
189
183
|
// therefore the instanceCreatedCallback keeps calling itself instead of wrapping.
|
|
190
|
-
const overridedOptions = (
|
|
184
|
+
const overridedOptions = merge({}, theOptions, {
|
|
191
185
|
instanceCreatedCallback: [instanceCreatedCallback],
|
|
192
186
|
});
|
|
193
187
|
const baseModel = Model(ormModelDefinition, overridedOptions);
|
|
194
188
|
const lowerLevelCreate = baseModel.create;
|
|
195
189
|
const _convertModelInstance = (instance) => {
|
|
196
|
-
return (
|
|
190
|
+
return merge(instance, {
|
|
197
191
|
create,
|
|
198
192
|
getModel: () => model,
|
|
199
193
|
save: _getSave(instance),
|
|
@@ -205,7 +199,7 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
205
199
|
return _convertModelInstance(result);
|
|
206
200
|
};
|
|
207
201
|
const _countRecursive = (...args_1) => __awaiter(void 0, [...args_1], void 0, function* (page = null) {
|
|
208
|
-
const results = yield model.search(
|
|
202
|
+
const results = yield model.search(queryBuilder().pagination(page).compile());
|
|
209
203
|
const length1 = results.instances.length;
|
|
210
204
|
// Don't run it again if the page is the same as a previous run.
|
|
211
205
|
if (results.page && results.page !== page) {
|
|
@@ -222,7 +216,7 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
222
216
|
}
|
|
223
217
|
return _countRecursive();
|
|
224
218
|
});
|
|
225
|
-
model = (
|
|
219
|
+
model = merge(baseModel, {
|
|
226
220
|
create,
|
|
227
221
|
save,
|
|
228
222
|
delete: deleteObj,
|
|
@@ -241,5 +235,5 @@ const createOrm = ({ datastoreAdapter, Model = models_1.Model, }) => {
|
|
|
241
235
|
fetcher,
|
|
242
236
|
};
|
|
243
237
|
};
|
|
244
|
-
|
|
238
|
+
export { createOrm };
|
|
245
239
|
//# sourceMappingURL=models.js.map
|
package/orm/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/orm/models.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/orm/models.ts"],"names":[],"mappings":"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"}
|
package/orm/properties.d.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { PrimaryKeyType, DateValueType, PropertyConfig, Arrayable, DataValue, MaybeFunction, ModelType, DataDescription, ModelInstance, PropertyType } from '../types';
|
|
2
|
-
import { OrmPropertyConfig, DatabaseKeyPropertyConfig } from './types';
|
|
1
|
+
import { PrimaryKeyType, DateValueType, PropertyConfig, Arrayable, DataValue, MaybeFunction, ModelType, DataDescription, ModelInstance, PropertyType, CanBeNullableType } from '../types.js';
|
|
2
|
+
import { OrmPropertyConfig, DatabaseKeyPropertyConfig } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* A property that automatically updates whenever the model instance is saved.
|
|
5
5
|
* @param config
|
|
6
6
|
*/
|
|
7
|
-
export declare const LastModifiedDateProperty: (config?: PropertyConfig<
|
|
7
|
+
export declare const LastModifiedDateProperty: <T extends CanBeNullableType<DateValueType> = DateValueType>(config?: PropertyConfig<T>) => Readonly<{
|
|
8
8
|
getConfig: () => object;
|
|
9
|
-
getChoices: () => readonly import("../types").ChoiceTypes[];
|
|
10
|
-
getDefaultValue: () =>
|
|
11
|
-
getConstantValue: () =>
|
|
9
|
+
getChoices: () => readonly import("../types.js").ChoiceTypes[];
|
|
10
|
+
getDefaultValue: () => T | undefined;
|
|
11
|
+
getConstantValue: () => T | undefined;
|
|
12
12
|
getPropertyType: () => PropertyType | string;
|
|
13
|
-
createGetter: (value:
|
|
13
|
+
createGetter: (value: T, modelData: Readonly<{
|
|
14
14
|
[s: string]: any;
|
|
15
15
|
}>, modelInstance: ModelInstance<Readonly<{
|
|
16
16
|
[s: string]: any;
|
|
17
|
-
}>, object, object>) => import("../types").ValueGetter<
|
|
17
|
+
}>, object, object>) => import("../types.js").ValueGetter<T, Readonly<{
|
|
18
18
|
[s: string]: any;
|
|
19
19
|
}>, object, object>;
|
|
20
|
-
getZod: () => import("zod").ZodType<
|
|
21
|
-
getValidator: (valueGetter: import("../types").ValueGetter<
|
|
20
|
+
getZod: () => import("zod").ZodType<T, unknown, import("zod/v4/core").$ZodTypeInternals<T, unknown>>;
|
|
21
|
+
getValidator: (valueGetter: import("../types.js").ValueGetter<T, Readonly<{
|
|
22
22
|
[s: string]: any;
|
|
23
|
-
}>, object, object>) => import("../types").PropertyValidator<Readonly<{
|
|
23
|
+
}>, object, object>) => import("../types.js").PropertyValidator<Readonly<{
|
|
24
24
|
[s: string]: any;
|
|
25
25
|
}>>;
|
|
26
26
|
}>;
|
|
@@ -32,7 +32,7 @@ export declare const LastModifiedDateProperty: (config?: PropertyConfig<DateValu
|
|
|
32
32
|
*/
|
|
33
33
|
export declare const ForeignKeyProperty: <TValue extends PrimaryKeyType, TModel extends DataDescription>(model: MaybeFunction<ModelType<TModel>>, config?: Omit<DatabaseKeyPropertyConfig<TValue>, "auto" | "primaryKeyGenerator">) => (Readonly<{
|
|
34
34
|
getConfig: () => object;
|
|
35
|
-
getChoices: () => readonly import("../types").ChoiceTypes[];
|
|
35
|
+
getChoices: () => readonly import("../types.js").ChoiceTypes[];
|
|
36
36
|
getDefaultValue: () => string | undefined;
|
|
37
37
|
getConstantValue: () => string | undefined;
|
|
38
38
|
getPropertyType: () => PropertyType | string;
|
|
@@ -40,18 +40,18 @@ export declare const ForeignKeyProperty: <TValue extends PrimaryKeyType, TModel
|
|
|
40
40
|
[s: string]: any;
|
|
41
41
|
}>, modelInstance: ModelInstance<Readonly<{
|
|
42
42
|
[s: string]: any;
|
|
43
|
-
}>, object, object>) => import("../types").ValueGetter<string, Readonly<{
|
|
43
|
+
}>, object, object>) => import("../types.js").ValueGetter<string, Readonly<{
|
|
44
44
|
[s: string]: any;
|
|
45
45
|
}>, object, object>;
|
|
46
46
|
getZod: () => import("zod").ZodType<string, unknown, import("zod/v4/core").$ZodTypeInternals<string, unknown>>;
|
|
47
|
-
getValidator: (valueGetter: import("../types").ValueGetter<string, Readonly<{
|
|
47
|
+
getValidator: (valueGetter: import("../types.js").ValueGetter<string, Readonly<{
|
|
48
48
|
[s: string]: any;
|
|
49
|
-
}>, object, object>) => import("../types").PropertyValidator<Readonly<{
|
|
49
|
+
}>, object, object>) => import("../types.js").PropertyValidator<Readonly<{
|
|
50
50
|
[s: string]: any;
|
|
51
51
|
}>>;
|
|
52
52
|
}> | Readonly<{
|
|
53
53
|
getConfig: () => object;
|
|
54
|
-
getChoices: () => readonly import("../types").ChoiceTypes[];
|
|
54
|
+
getChoices: () => readonly import("../types.js").ChoiceTypes[];
|
|
55
55
|
getDefaultValue: () => number | undefined;
|
|
56
56
|
getConstantValue: () => number | undefined;
|
|
57
57
|
getPropertyType: () => PropertyType | string;
|
|
@@ -59,13 +59,13 @@ export declare const ForeignKeyProperty: <TValue extends PrimaryKeyType, TModel
|
|
|
59
59
|
[s: string]: any;
|
|
60
60
|
}>, modelInstance: ModelInstance<Readonly<{
|
|
61
61
|
[s: string]: any;
|
|
62
|
-
}>, object, object>) => import("../types").ValueGetter<number, Readonly<{
|
|
62
|
+
}>, object, object>) => import("../types.js").ValueGetter<number, Readonly<{
|
|
63
63
|
[s: string]: any;
|
|
64
64
|
}>, object, object>;
|
|
65
65
|
getZod: () => import("zod").ZodType<number, unknown, import("zod/v4/core").$ZodTypeInternals<number, unknown>>;
|
|
66
|
-
getValidator: (valueGetter: import("../types").ValueGetter<number, Readonly<{
|
|
66
|
+
getValidator: (valueGetter: import("../types.js").ValueGetter<number, Readonly<{
|
|
67
67
|
[s: string]: any;
|
|
68
|
-
}>, object, object>) => import("../types").PropertyValidator<Readonly<{
|
|
68
|
+
}>, object, object>) => import("../types.js").PropertyValidator<Readonly<{
|
|
69
69
|
[s: string]: any;
|
|
70
70
|
}>>;
|
|
71
71
|
}>) & {
|
|
@@ -79,9 +79,9 @@ export declare const ForeignKeyProperty: <TValue extends PrimaryKeyType, TModel
|
|
|
79
79
|
* @param config - Additional configurations.
|
|
80
80
|
* @returns
|
|
81
81
|
*/
|
|
82
|
-
export declare const PrimaryKeyProperty: <TValue extends PrimaryKeyType>(config?: DatabaseKeyPropertyConfig<TValue>) => Readonly<{
|
|
82
|
+
export declare const PrimaryKeyProperty: <TValue extends CanBeNullableType<PrimaryKeyType> = PrimaryKeyType>(config?: DatabaseKeyPropertyConfig<TValue>) => Readonly<{
|
|
83
83
|
getConfig: () => object;
|
|
84
|
-
getChoices: () => readonly import("../types").ChoiceTypes[];
|
|
84
|
+
getChoices: () => readonly import("../types.js").ChoiceTypes[];
|
|
85
85
|
getDefaultValue: () => string | undefined;
|
|
86
86
|
getConstantValue: () => string | undefined;
|
|
87
87
|
getPropertyType: () => PropertyType | string;
|
|
@@ -89,18 +89,18 @@ export declare const PrimaryKeyProperty: <TValue extends PrimaryKeyType>(config?
|
|
|
89
89
|
[s: string]: any;
|
|
90
90
|
}>, modelInstance: ModelInstance<Readonly<{
|
|
91
91
|
[s: string]: any;
|
|
92
|
-
}>, object, object>) => import("../types").ValueGetter<string, Readonly<{
|
|
92
|
+
}>, object, object>) => import("../types.js").ValueGetter<string, Readonly<{
|
|
93
93
|
[s: string]: any;
|
|
94
94
|
}>, object, object>;
|
|
95
95
|
getZod: () => import("zod").ZodType<string, unknown, import("zod/v4/core").$ZodTypeInternals<string, unknown>>;
|
|
96
|
-
getValidator: (valueGetter: import("../types").ValueGetter<string, Readonly<{
|
|
96
|
+
getValidator: (valueGetter: import("../types.js").ValueGetter<string, Readonly<{
|
|
97
97
|
[s: string]: any;
|
|
98
|
-
}>, object, object>) => import("../types").PropertyValidator<Readonly<{
|
|
98
|
+
}>, object, object>) => import("../types.js").PropertyValidator<Readonly<{
|
|
99
99
|
[s: string]: any;
|
|
100
100
|
}>>;
|
|
101
101
|
}> | Readonly<{
|
|
102
102
|
getConfig: () => object;
|
|
103
|
-
getChoices: () => readonly import("../types").ChoiceTypes[];
|
|
103
|
+
getChoices: () => readonly import("../types.js").ChoiceTypes[];
|
|
104
104
|
getDefaultValue: () => number | undefined;
|
|
105
105
|
getConstantValue: () => number | undefined;
|
|
106
106
|
getPropertyType: () => PropertyType | string;
|
|
@@ -108,13 +108,13 @@ export declare const PrimaryKeyProperty: <TValue extends PrimaryKeyType>(config?
|
|
|
108
108
|
[s: string]: any;
|
|
109
109
|
}>, modelInstance: ModelInstance<Readonly<{
|
|
110
110
|
[s: string]: any;
|
|
111
|
-
}>, object, object>) => import("../types").ValueGetter<number, Readonly<{
|
|
111
|
+
}>, object, object>) => import("../types.js").ValueGetter<number, Readonly<{
|
|
112
112
|
[s: string]: any;
|
|
113
113
|
}>, object, object>;
|
|
114
114
|
getZod: () => import("zod").ZodType<number, unknown, import("zod/v4/core").$ZodTypeInternals<number, unknown>>;
|
|
115
|
-
getValidator: (valueGetter: import("../types").ValueGetter<number, Readonly<{
|
|
115
|
+
getValidator: (valueGetter: import("../types.js").ValueGetter<number, Readonly<{
|
|
116
116
|
[s: string]: any;
|
|
117
|
-
}>, object, object>) => import("../types").PropertyValidator<Readonly<{
|
|
117
|
+
}>, object, object>) => import("../types.js").PropertyValidator<Readonly<{
|
|
118
118
|
[s: string]: any;
|
|
119
119
|
}>>;
|
|
120
120
|
}>;
|
package/orm/properties.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const merge_1 = __importDefault(require("lodash/merge"));
|
|
8
|
-
const identity_1 = __importDefault(require("lodash/identity"));
|
|
9
|
-
const types_1 = require("../types");
|
|
10
|
-
const properties_1 = require("../properties");
|
|
11
|
-
const validation_1 = require("./validation");
|
|
12
|
-
const internal_libs_1 = require("./internal-libs");
|
|
1
|
+
import merge from 'lodash/merge.js';
|
|
2
|
+
import identity from 'lodash/identity.js';
|
|
3
|
+
import { PropertyType, } from '../types.js';
|
|
4
|
+
import { DatetimeProperty, IntegerProperty, TextProperty, UuidProperty, } from '../properties.js';
|
|
5
|
+
import { unique } from './validation.js';
|
|
6
|
+
import { getPrimaryKeyGenerator } from './internal-libs.js';
|
|
13
7
|
const _defaultPropertyConfig = {
|
|
14
8
|
unique: undefined,
|
|
15
9
|
};
|
|
@@ -17,18 +11,17 @@ const _defaultPropertyConfig = {
|
|
|
17
11
|
* A property that automatically updates whenever the model instance is saved.
|
|
18
12
|
* @param config
|
|
19
13
|
*/
|
|
20
|
-
const LastModifiedDateProperty = (config = {}) => {
|
|
14
|
+
export const LastModifiedDateProperty = (config = {}) => {
|
|
21
15
|
const additionalMetadata = { lastModifiedUpdateMethod: () => new Date() };
|
|
22
|
-
return
|
|
16
|
+
return DatetimeProperty(config, additionalMetadata);
|
|
23
17
|
};
|
|
24
|
-
exports.LastModifiedDateProperty = LastModifiedDateProperty;
|
|
25
18
|
/**
|
|
26
19
|
* A property that represents a foreign key to another model in a database.
|
|
27
20
|
* By default it is a "uuid" type, but if you want to use an arbitrary string, or an integer type you can set the `dataType` property.
|
|
28
21
|
* NOTE: auto is ignored in config.
|
|
29
22
|
* @param config - Additional configurations.
|
|
30
23
|
*/
|
|
31
|
-
const ForeignKeyProperty = (model, config = {}) => {
|
|
24
|
+
export const ForeignKeyProperty = (model, config = {}) => {
|
|
32
25
|
const _getModel = () => {
|
|
33
26
|
if (typeof model === 'function') {
|
|
34
27
|
return model();
|
|
@@ -36,25 +29,24 @@ const ForeignKeyProperty = (model, config = {}) => {
|
|
|
36
29
|
return model;
|
|
37
30
|
};
|
|
38
31
|
const _getProperty = () => {
|
|
39
|
-
if (config.dataType ===
|
|
40
|
-
return
|
|
32
|
+
if (config.dataType === PropertyType.UniqueId) {
|
|
33
|
+
return UuidProperty(merge(config, {
|
|
41
34
|
autoNow: false,
|
|
42
35
|
}));
|
|
43
36
|
}
|
|
44
|
-
if (config.dataType ===
|
|
45
|
-
return
|
|
37
|
+
if (config.dataType === PropertyType.Integer) {
|
|
38
|
+
return IntegerProperty(config);
|
|
46
39
|
}
|
|
47
|
-
return
|
|
40
|
+
return TextProperty(config);
|
|
48
41
|
};
|
|
49
42
|
const property = _getProperty();
|
|
50
|
-
return (
|
|
43
|
+
return merge(property, {
|
|
51
44
|
getReferencedId: (instanceValues) => {
|
|
52
45
|
return instanceValues;
|
|
53
46
|
},
|
|
54
47
|
getReferencedModel: _getModel,
|
|
55
48
|
});
|
|
56
49
|
};
|
|
57
|
-
exports.ForeignKeyProperty = ForeignKeyProperty;
|
|
58
50
|
/**
|
|
59
51
|
* A property that represents a primary key in a database.
|
|
60
52
|
* By default it is a "uuid" type, but if you want to use an arbitrary string, or an integer type you can set the `dataType` property.
|
|
@@ -62,47 +54,47 @@ exports.ForeignKeyProperty = ForeignKeyProperty;
|
|
|
62
54
|
* @param config - Additional configurations.
|
|
63
55
|
* @returns
|
|
64
56
|
*/
|
|
65
|
-
const PrimaryKeyProperty = (config = {}) => {
|
|
57
|
+
export const PrimaryKeyProperty = (config = {}) => {
|
|
66
58
|
const _getProperty = () => {
|
|
67
59
|
const auto = config.auto === undefined ? true : config.auto ? true : false;
|
|
68
60
|
const lazyLoadMethod = (value, modelData, instance) => {
|
|
69
61
|
if (config.primaryKeyGenerator) {
|
|
62
|
+
// @ts-ignore
|
|
70
63
|
return config.primaryKeyGenerator(value, modelData, instance);
|
|
71
64
|
}
|
|
72
65
|
if (auto) {
|
|
73
|
-
|
|
66
|
+
// @ts-ignore
|
|
67
|
+
return getPrimaryKeyGenerator(config)(value, modelData, instance);
|
|
74
68
|
}
|
|
75
69
|
return value;
|
|
76
70
|
};
|
|
77
|
-
if (config.dataType ===
|
|
78
|
-
return
|
|
71
|
+
if (config.dataType === PropertyType.UniqueId) {
|
|
72
|
+
return UuidProperty(merge(config, {
|
|
79
73
|
autoNow: auto,
|
|
80
74
|
lazyLoadMethod,
|
|
81
75
|
}));
|
|
82
76
|
}
|
|
83
|
-
if (config.dataType ===
|
|
84
|
-
return
|
|
77
|
+
if (config.dataType === PropertyType.Integer) {
|
|
78
|
+
return IntegerProperty(merge(config, {
|
|
85
79
|
lazyLoadMethod,
|
|
86
80
|
}));
|
|
87
81
|
}
|
|
88
|
-
return
|
|
82
|
+
return TextProperty(merge(config, {
|
|
89
83
|
lazyLoadMethod,
|
|
90
84
|
}));
|
|
91
85
|
};
|
|
92
86
|
return _getProperty();
|
|
93
87
|
};
|
|
94
|
-
exports.PrimaryKeyProperty = PrimaryKeyProperty;
|
|
95
88
|
/**
|
|
96
89
|
* Creates an orm based property config.
|
|
97
90
|
* @param config - Additional configurations.
|
|
98
91
|
*/
|
|
99
|
-
const ormPropertyConfig = (config = _defaultPropertyConfig) => {
|
|
100
|
-
return (
|
|
92
|
+
export const ormPropertyConfig = (config = _defaultPropertyConfig) => {
|
|
93
|
+
return merge(config, {
|
|
101
94
|
validators: [
|
|
102
95
|
...(config.validators ? config.validators : []),
|
|
103
|
-
config.unique ?
|
|
104
|
-
].filter(
|
|
96
|
+
config.unique ? unique(config.unique) : null,
|
|
97
|
+
].filter(identity),
|
|
105
98
|
});
|
|
106
99
|
};
|
|
107
|
-
exports.ormPropertyConfig = ormPropertyConfig;
|
|
108
100
|
//# sourceMappingURL=properties.js.map
|
package/orm/properties.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../../src/orm/properties.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"properties.js","sourceRoot":"","sources":["../../src/orm/properties.ts"],"names":[],"mappings":"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"}
|
package/orm/query.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BooleanQuery, DatastoreValueType, DatesAfterQuery, DatesBeforeQuery, EqualitySymbol, MaxMatchStatement, OrmSearch, PaginationQuery, PropertyOptions, PropertyQuery, Query, QueryBuilder, SortOrder, SortStatement } from './types';
|
|
1
|
+
import { BooleanQuery, DatastoreValueType, DatesAfterQuery, DatesBeforeQuery, EqualitySymbol, MaxMatchStatement, OrmSearch, PaginationQuery, PropertyOptions, PropertyQuery, Query, QueryBuilder, SortOrder, SortStatement } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Creates a property query.
|
|
4
4
|
* @param key - The property's name/key/column to match on
|