@decaf-ts/db-decorators 0.2.0 → 0.3.1
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 +4 -4
- package/dist/db-decorators.bundle.min.js +1 -1
- package/dist/esm/db-decorators.bundle.min.esm.js +1 -1
- package/lib/esm/identity/decorators.d.ts +1 -1
- package/lib/esm/identity/decorators.js +10 -1
- package/lib/esm/identity/index.js +4 -1
- package/lib/esm/identity/utils.d.ts +6 -9
- package/lib/esm/identity/utils.js +63 -1
- package/lib/esm/index.js +35 -1
- package/lib/esm/interfaces/BulkCrudOperator.js +3 -0
- package/lib/esm/interfaces/CrudOperator.js +3 -0
- package/lib/esm/interfaces/IRepository.d.ts +2 -3
- package/lib/esm/interfaces/IRepository.js +3 -0
- package/lib/esm/interfaces/index.js +5 -1
- package/lib/esm/model/constants.d.ts +1 -1
- package/lib/esm/model/constants.js +39 -1
- package/lib/esm/model/decorators.d.ts +5 -7
- package/lib/esm/model/decorators.js +69 -1
- package/lib/esm/model/index.d.ts +2 -1
- package/lib/esm/model/index.js +6 -1
- package/lib/esm/model/model.d.ts +8 -0
- package/lib/esm/model/model.js +14 -0
- package/lib/esm/model/validation.d.ts +1 -2
- package/lib/esm/model/validation.js +122 -1
- package/lib/esm/operations/Operations.d.ts +3 -4
- package/lib/esm/operations/Operations.js +35 -1
- package/lib/esm/operations/OperationsRegistry.d.ts +2 -3
- package/lib/esm/operations/OperationsRegistry.js +65 -1
- package/lib/esm/operations/constants.d.ts +1 -1
- package/lib/esm/operations/constants.js +39 -1
- package/lib/esm/operations/decorators.js +226 -1
- package/lib/esm/operations/index.js +7 -1
- package/lib/esm/operations/types.d.ts +4 -5
- package/lib/esm/operations/types.js +3 -0
- package/lib/esm/repository/BaseRepository.d.ts +2 -3
- package/lib/esm/repository/BaseRepository.js +158 -1
- package/lib/esm/repository/DataCache.js +32 -1
- package/lib/esm/repository/Repository.d.ts +3 -2
- package/lib/esm/repository/Repository.js +89 -2
- package/lib/esm/repository/errors.js +88 -1
- package/lib/esm/repository/index.js +8 -1
- package/lib/esm/repository/utils.d.ts +3 -4
- package/lib/esm/repository/utils.js +167 -1
- package/lib/esm/repository/wrappers.js +90 -1
- package/lib/esm/validation/constants.js +33 -1
- package/lib/esm/validation/decorators.d.ts +6 -8
- package/lib/esm/validation/decorators.js +223 -1
- package/lib/esm/validation/index.js +5 -1
- package/lib/esm/validation/validators/ReadOnlyValidator.js +52 -1
- package/lib/esm/validation/validators/TimestampValidator.js +49 -1
- package/lib/esm/validation/validators/UpdateValidator.js +20 -1
- package/lib/esm/validation/validators/index.js +5 -1
- package/lib/identity/decorators.cjs +13 -1
- package/lib/identity/decorators.d.ts +1 -1
- package/lib/identity/index.cjs +20 -1
- package/lib/identity/utils.cjs +67 -1
- package/lib/identity/utils.d.ts +6 -9
- package/lib/index.cjs +51 -1
- package/lib/interfaces/BulkCrudOperator.cjs +4 -1
- package/lib/interfaces/CrudOperator.cjs +4 -1
- package/lib/interfaces/IRepository.cjs +4 -1
- package/lib/interfaces/IRepository.d.ts +2 -3
- package/lib/interfaces/index.cjs +21 -1
- package/lib/model/constants.cjs +42 -1
- package/lib/model/constants.d.ts +1 -1
- package/lib/model/decorators.cjs +76 -1
- package/lib/model/decorators.d.ts +5 -7
- package/lib/model/index.cjs +22 -1
- package/lib/model/index.d.ts +2 -1
- package/lib/model/model.cjs +16 -0
- package/lib/model/model.d.ts +8 -0
- package/lib/model/validation.cjs +125 -1
- package/lib/model/validation.d.ts +1 -2
- package/lib/operations/Operations.cjs +39 -1
- package/lib/operations/Operations.d.ts +3 -4
- package/lib/operations/OperationsRegistry.cjs +69 -1
- package/lib/operations/OperationsRegistry.d.ts +2 -3
- package/lib/operations/constants.cjs +42 -1
- package/lib/operations/constants.d.ts +1 -1
- package/lib/operations/decorators.cjs +241 -1
- package/lib/operations/index.cjs +23 -1
- package/lib/operations/types.cjs +4 -1
- package/lib/operations/types.d.ts +4 -5
- package/lib/repository/BaseRepository.cjs +162 -1
- package/lib/repository/BaseRepository.d.ts +2 -3
- package/lib/repository/DataCache.cjs +36 -1
- package/lib/repository/Repository.cjs +93 -2
- package/lib/repository/Repository.d.ts +3 -2
- package/lib/repository/errors.cjs +97 -1
- package/lib/repository/index.cjs +24 -1
- package/lib/repository/utils.cjs +174 -1
- package/lib/repository/utils.d.ts +3 -4
- package/lib/repository/wrappers.cjs +95 -1
- package/lib/validation/constants.cjs +36 -1
- package/lib/validation/decorators.cjs +232 -1
- package/lib/validation/decorators.d.ts +6 -8
- package/lib/validation/index.cjs +21 -1
- package/lib/validation/validators/ReadOnlyValidator.cjs +55 -1
- package/lib/validation/validators/TimestampValidator.cjs +52 -1
- package/lib/validation/validators/UpdateValidator.cjs +24 -1
- package/lib/validation/validators/index.cjs +21 -1
- package/package.json +22 -18
- package/lib/esm/model/DBModel.d.ts +0 -25
- package/lib/esm/model/DBModel.js +0 -1
- package/lib/esm/validation/comparison.d.ts +0 -1
- package/lib/esm/validation/comparison.js +0 -1
- package/lib/model/DBModel.cjs +0 -1
- package/lib/model/DBModel.d.ts +0 -25
- package/lib/validation/comparison.cjs +0 -1
- package/lib/validation/comparison.d.ts +0 -1
|
@@ -1 +1,36 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateValidationKeys = exports.DEFAULT_ERROR_MESSAGES = void 0;
|
|
4
|
+
const constants_1 = require("../model/constants.cjs");
|
|
5
|
+
/**
|
|
6
|
+
* @summary holds the default error messages
|
|
7
|
+
* @const DEFAULT_ERROR_MESSAGES
|
|
8
|
+
*
|
|
9
|
+
* @memberOf module:db-decorators.Model
|
|
10
|
+
*/
|
|
11
|
+
exports.DEFAULT_ERROR_MESSAGES = {
|
|
12
|
+
ID: {
|
|
13
|
+
INVALID: "This Id is invalid",
|
|
14
|
+
REQUIRED: "The Id is mandatory",
|
|
15
|
+
},
|
|
16
|
+
READONLY: {
|
|
17
|
+
INVALID: "This cannot be updated",
|
|
18
|
+
},
|
|
19
|
+
TIMESTAMP: {
|
|
20
|
+
REQUIRED: "Timestamp is Mandatory",
|
|
21
|
+
DATE: "The Timestamp must the a valid date",
|
|
22
|
+
INVALID: "This value must always increase",
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* @summary Update reflection keys
|
|
27
|
+
* @const UpdateValidationKeys
|
|
28
|
+
* @memberOf module:db-decorators.Operations
|
|
29
|
+
*/
|
|
30
|
+
exports.UpdateValidationKeys = {
|
|
31
|
+
REFLECT: "db.update.validation.",
|
|
32
|
+
TIMESTAMP: constants_1.DBKeys.TIMESTAMP,
|
|
33
|
+
READONLY: constants_1.DBKeys.READONLY,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBNEM7QUFFNUM7Ozs7O0dBS0c7QUFDVSxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDLEVBQUUsRUFBRTtRQUNGLE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsUUFBUSxFQUFFLHFCQUFxQjtLQUNoQztJQUNELFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRSx3QkFBd0I7S0FDbEM7SUFDRCxTQUFTLEVBQUU7UUFDVCxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLElBQUksRUFBRSxxQ0FBcUM7UUFDM0MsT0FBTyxFQUFFLGlDQUFpQztLQUMzQztDQUNGLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRztJQUNsQyxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLFNBQVMsRUFBRSxrQkFBTSxDQUFDLFNBQVM7SUFDM0IsUUFBUSxFQUFFLGtCQUFNLENBQUMsUUFBUTtDQUMxQixDQUFDIiwiZmlsZSI6InZhbGlkYXRpb24vY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREJLZXlzIH0gZnJvbSBcIi4uL21vZGVsL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IGhvbGRzIHRoZSBkZWZhdWx0IGVycm9yIG1lc3NhZ2VzXG4gKiBAY29uc3QgREVGQVVMVF9FUlJPUl9NRVNTQUdFU1xuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGItZGVjb3JhdG9ycy5Nb2RlbFxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyA9IHtcbiAgSUQ6IHtcbiAgICBJTlZBTElEOiBcIlRoaXMgSWQgaXMgaW52YWxpZFwiLFxuICAgIFJFUVVJUkVEOiBcIlRoZSBJZCBpcyBtYW5kYXRvcnlcIixcbiAgfSxcbiAgUkVBRE9OTFk6IHtcbiAgICBJTlZBTElEOiBcIlRoaXMgY2Fubm90IGJlIHVwZGF0ZWRcIixcbiAgfSxcbiAgVElNRVNUQU1QOiB7XG4gICAgUkVRVUlSRUQ6IFwiVGltZXN0YW1wIGlzIE1hbmRhdG9yeVwiLFxuICAgIERBVEU6IFwiVGhlIFRpbWVzdGFtcCBtdXN0IHRoZSBhIHZhbGlkIGRhdGVcIixcbiAgICBJTlZBTElEOiBcIlRoaXMgdmFsdWUgbXVzdCBhbHdheXMgaW5jcmVhc2VcIixcbiAgfSxcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgVXBkYXRlIHJlZmxlY3Rpb24ga2V5c1xuICogQGNvbnN0IFVwZGF0ZVZhbGlkYXRpb25LZXlzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRiLWRlY29yYXRvcnMuT3BlcmF0aW9uc1xuICovXG5leHBvcnQgY29uc3QgVXBkYXRlVmFsaWRhdGlvbktleXMgPSB7XG4gIFJFRkxFQ1Q6IFwiZGIudXBkYXRlLnZhbGlkYXRpb24uXCIsXG4gIFRJTUVTVEFNUDogREJLZXlzLlRJTUVTVEFNUCxcbiAgUkVBRE9OTFk6IERCS2V5cy5SRUFET05MWSxcbn07XG4iXX0=
|
|
@@ -1 +1,232 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDBUpdateKey = getDBUpdateKey;
|
|
4
|
+
exports.readonly = readonly;
|
|
5
|
+
exports.timestampHandler = timestampHandler;
|
|
6
|
+
exports.timestamp = timestamp;
|
|
7
|
+
exports.serializeOnCreateUpdate = serializeOnCreateUpdate;
|
|
8
|
+
exports.serializeAfterAll = serializeAfterAll;
|
|
9
|
+
exports.serialize = serialize;
|
|
10
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
11
|
+
const constants_1 = require("../model/constants.cjs");
|
|
12
|
+
const constants_2 = require("./constants.cjs");
|
|
13
|
+
const constants_3 = require("../operations/constants.cjs");
|
|
14
|
+
const decorators_1 = require("../operations/decorators.cjs");
|
|
15
|
+
const errors_1 = require("../repository/errors.cjs");
|
|
16
|
+
const reflection_1 = require("@decaf-ts/reflection");
|
|
17
|
+
const repository_1 = require("../repository/index.cjs");
|
|
18
|
+
function getDBUpdateKey(str) {
|
|
19
|
+
return constants_2.UpdateValidationKeys.REFLECT + str;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Marks the property as readonly.
|
|
23
|
+
*
|
|
24
|
+
* @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES.READONLY.INVALID}
|
|
25
|
+
*
|
|
26
|
+
* @decorator readonly
|
|
27
|
+
*
|
|
28
|
+
* @category Decorators
|
|
29
|
+
*/
|
|
30
|
+
function readonly(message = constants_2.DEFAULT_ERROR_MESSAGES.READONLY.INVALID) {
|
|
31
|
+
return (0, decorator_validation_1.propMetadata)(getDBUpdateKey(constants_1.DBKeys.READONLY), {
|
|
32
|
+
message: message,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function timestampHandler(data, key, model) {
|
|
36
|
+
model[key] = new Date();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Marks the property as timestamp.
|
|
40
|
+
* Makes it {@link required}
|
|
41
|
+
* Makes it a {@link date}
|
|
42
|
+
*
|
|
43
|
+
* Date Format:
|
|
44
|
+
*
|
|
45
|
+
* <pre>
|
|
46
|
+
* Using similar formatting as Moment.js, Class DateTimeFormatter (Java), and Class SimpleDateFormat (Java),
|
|
47
|
+
* I implemented a comprehensive solution formatDate(date, patternStr) where the code is easy to read and modify.
|
|
48
|
+
* You can display date, time, AM/PM, etc.
|
|
49
|
+
*
|
|
50
|
+
* Date and Time Patterns
|
|
51
|
+
* yy = 2-digit year; yyyy = full year
|
|
52
|
+
* M = digit month; MM = 2-digit month; MMM = short month name; MMMM = full month name
|
|
53
|
+
* EEEE = full weekday name; EEE = short weekday name
|
|
54
|
+
* d = digit day; dd = 2-digit day
|
|
55
|
+
* h = hours am/pm; hh = 2-digit hours am/pm; H = hours; HH = 2-digit hours
|
|
56
|
+
* m = minutes; mm = 2-digit minutes; aaa = AM/PM
|
|
57
|
+
* s = seconds; ss = 2-digit seconds
|
|
58
|
+
* S = miliseconds
|
|
59
|
+
* </pre>
|
|
60
|
+
*
|
|
61
|
+
* @param {string[]} operation The {@link DBOperations} to act on. Defaults to {@link DBOperations.CREATE_UPDATE}
|
|
62
|
+
* @param {string} [format] The TimeStamp format. defaults to {@link DEFAULT_TIMESTAMP_FORMAT}
|
|
63
|
+
* @param {{new: UpdateValidator}} [validator] defaults to {@link TimestampValidator}
|
|
64
|
+
*
|
|
65
|
+
* @decorator timestamp
|
|
66
|
+
*
|
|
67
|
+
* @category Decorators
|
|
68
|
+
*/
|
|
69
|
+
function timestamp(operation = constants_3.DBOperations.CREATE_UPDATE, format = constants_1.DEFAULT_TIMESTAMP_FORMAT) {
|
|
70
|
+
const decorators = [
|
|
71
|
+
(0, decorator_validation_1.date)(format, constants_2.DEFAULT_ERROR_MESSAGES.TIMESTAMP.DATE),
|
|
72
|
+
(0, decorator_validation_1.required)(constants_2.DEFAULT_ERROR_MESSAGES.TIMESTAMP.REQUIRED),
|
|
73
|
+
(0, decorators_1.on)(operation, timestampHandler),
|
|
74
|
+
];
|
|
75
|
+
if (operation.indexOf(constants_3.OperationKeys.UPDATE) !== -1)
|
|
76
|
+
decorators.push((0, reflection_1.metadata)(getDBUpdateKey(constants_1.DBKeys.TIMESTAMP), {
|
|
77
|
+
message: constants_2.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID,
|
|
78
|
+
}));
|
|
79
|
+
return (0, reflection_1.apply)(...decorators);
|
|
80
|
+
}
|
|
81
|
+
async function serializeOnCreateUpdate(data, key, model, oldModel) {
|
|
82
|
+
if (!model[key])
|
|
83
|
+
return;
|
|
84
|
+
try {
|
|
85
|
+
model[key] = JSON.stringify(model[key]);
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
throw new errors_1.SerializationError((0, decorator_validation_1.sf)("Failed to serialize {0} property on {1} model: {2}", key, model.constructor.name, e.message));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async function serializeAfterAll(data, key, model) {
|
|
92
|
+
if (!model[key])
|
|
93
|
+
return;
|
|
94
|
+
if (typeof model[key] !== "string")
|
|
95
|
+
return;
|
|
96
|
+
try {
|
|
97
|
+
model[key] = JSON.parse(model[key]);
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
throw new errors_1.SerializationError((0, decorator_validation_1.sf)("Failed to deserialize {0} property on {1} model: {2}", key, model.constructor.name, e.message));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* @summary Serialize Decorator
|
|
105
|
+
* @description properties decorated will the serialized before stored in the db
|
|
106
|
+
*
|
|
107
|
+
* @function serialize
|
|
108
|
+
*
|
|
109
|
+
* @memberOf module:wallet-db.Decorators
|
|
110
|
+
*/
|
|
111
|
+
function serialize() {
|
|
112
|
+
return (0, reflection_1.apply)((0, decorators_1.onCreateUpdate)(serializeOnCreateUpdate), (0, decorators_1.after)(constants_3.DBOperations.ALL, serializeAfterAll), (0, decorator_validation_1.type)([String.name, Object.name]), (0, reflection_1.metadata)(repository_1.Repository.key(constants_1.DBKeys.SERIALIZE), {}));
|
|
113
|
+
}
|
|
114
|
+
//
|
|
115
|
+
// /**
|
|
116
|
+
// * @summary One To One relation Decorators
|
|
117
|
+
// *
|
|
118
|
+
// * @param {Constructor<any>} clazz the {@link Sequence} to use. Defaults to {@link NoneSequence}
|
|
119
|
+
// * @param {CascadeMetadata} [cascadeOptions]
|
|
120
|
+
// * @param {boolean} _populate If true, replaces the specified key in the document with the corresponding record from the database
|
|
121
|
+
// *
|
|
122
|
+
// * @function onToOne
|
|
123
|
+
// *
|
|
124
|
+
// * @memberOf module:wallet-db.Decorators
|
|
125
|
+
// *
|
|
126
|
+
// * @see oneToMany
|
|
127
|
+
// * @see manyToOne
|
|
128
|
+
// */
|
|
129
|
+
// export function oneToOne(
|
|
130
|
+
// clazz: Constructor<any>,
|
|
131
|
+
// cascadeOptions: CascadeMetadata = DefaultCascade,
|
|
132
|
+
// _populate: boolean = true,
|
|
133
|
+
// ) {
|
|
134
|
+
// Model.register(clazz);
|
|
135
|
+
// return (target: any, propertyKey: string) => {
|
|
136
|
+
// type([clazz.name, String.name])(target, propertyKey);
|
|
137
|
+
// onCreate(oneToOneOnCreate)(target, propertyKey);
|
|
138
|
+
// onUpdate(oneToOneOnUpdate, cascadeOptions as any)(target, propertyKey);
|
|
139
|
+
// onDelete(oneToOneOnDelete, cascadeOptions)(target, propertyKey);
|
|
140
|
+
//
|
|
141
|
+
// afterCreate(populate, _populate)(target, propertyKey);
|
|
142
|
+
// afterUpdate(populate, _populate)(target, propertyKey);
|
|
143
|
+
// afterRead(populate, _populate)(target, propertyKey);
|
|
144
|
+
// afterDelete(populate, _populate)(target, propertyKey);
|
|
145
|
+
//
|
|
146
|
+
// Reflect.defineMetadata(
|
|
147
|
+
// getDBKey(WalletDbKeys.ONE_TO_ONE),
|
|
148
|
+
// {
|
|
149
|
+
// constructor: clazz.name,
|
|
150
|
+
// cascade: cascadeOptions,
|
|
151
|
+
// populate: _populate,
|
|
152
|
+
// },
|
|
153
|
+
// target,
|
|
154
|
+
// propertyKey,
|
|
155
|
+
// );
|
|
156
|
+
// };
|
|
157
|
+
// }
|
|
158
|
+
//
|
|
159
|
+
// /**
|
|
160
|
+
// * @summary One To Many relation Decorators
|
|
161
|
+
// *
|
|
162
|
+
// * @param {Constructor<any>} clazz the {@link Sequence} to use. Defaults to {@link NoneSequence}
|
|
163
|
+
// * @param {CascadeMetadata} [cascadeOptions]
|
|
164
|
+
// *
|
|
165
|
+
// * @function onToMany
|
|
166
|
+
// *
|
|
167
|
+
// * @memberOf module:wallet-db.Decorators
|
|
168
|
+
// *
|
|
169
|
+
// * @see oneToOne
|
|
170
|
+
// * @see manyToOne
|
|
171
|
+
// */
|
|
172
|
+
// export function oneToMany(
|
|
173
|
+
// clazz: Constructor<any>,
|
|
174
|
+
// cascadeOptions: CascadeMetadata = DefaultCascade,
|
|
175
|
+
// _populate: boolean = true,
|
|
176
|
+
// ) {
|
|
177
|
+
// Model.register(clazz);
|
|
178
|
+
// return (target: any, propertyKey: string) => {
|
|
179
|
+
// list([clazz, String])(target, propertyKey);
|
|
180
|
+
// onCreate(oneToManyOnCreate)(target, propertyKey);
|
|
181
|
+
// onUpdate(oneToManyOnUpdate, cascadeOptions)(target, propertyKey);
|
|
182
|
+
// onDelete(oneToManyOnDelete, cascadeOptions)(target, propertyKey);
|
|
183
|
+
//
|
|
184
|
+
// afterCreate(populate, _populate)(target, propertyKey);
|
|
185
|
+
// afterUpdate(populate, _populate)(target, propertyKey);
|
|
186
|
+
// afterRead(populate, _populate)(target, propertyKey);
|
|
187
|
+
// afterDelete(populate, _populate)(target, propertyKey);
|
|
188
|
+
//
|
|
189
|
+
// Reflect.defineMetadata(
|
|
190
|
+
// getDBKey(WalletDbKeys.ONE_TO_MANY),
|
|
191
|
+
// {
|
|
192
|
+
// constructor: clazz.name,
|
|
193
|
+
// cascade: cascadeOptions,
|
|
194
|
+
// },
|
|
195
|
+
// target,
|
|
196
|
+
// propertyKey,
|
|
197
|
+
// );
|
|
198
|
+
// };
|
|
199
|
+
// }
|
|
200
|
+
//
|
|
201
|
+
// /**
|
|
202
|
+
// * @summary Many To One relation Decorators
|
|
203
|
+
// *
|
|
204
|
+
// * @param {Constructor<any>} clazz the {@link Sequence} to use. Defaults to {@link NoneSequence}
|
|
205
|
+
// * @param {CascadeMetadata} [cascadeOptions]
|
|
206
|
+
// *
|
|
207
|
+
// * @function manyToOne
|
|
208
|
+
// *
|
|
209
|
+
// * @memberOf module:wallet-db.Decorators
|
|
210
|
+
// *
|
|
211
|
+
// * @see oneToMany
|
|
212
|
+
// * @see oneToOne
|
|
213
|
+
// */
|
|
214
|
+
// export function manyToOne(
|
|
215
|
+
// clazz: Constructor<any>,
|
|
216
|
+
// cascadeOptions: CascadeMetadata = DefaultCascade,
|
|
217
|
+
// ) {
|
|
218
|
+
// Model.register(clazz);
|
|
219
|
+
// return (target: any, propertyKey: string) => {
|
|
220
|
+
// Reflect.defineMetadata(
|
|
221
|
+
// getDBKey(WalletDbKeys.MANY_TO_ONE),
|
|
222
|
+
// {
|
|
223
|
+
// constructor: clazz.name,
|
|
224
|
+
// cascade: cascadeOptions,
|
|
225
|
+
// },
|
|
226
|
+
// target,
|
|
227
|
+
// propertyKey,
|
|
228
|
+
// );
|
|
229
|
+
// };
|
|
230
|
+
// }
|
|
231
|
+
|
|
232
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsd0NBRUM7QUFXRCw0QkFNQztBQUVELDRDQU1DO0FBaUNELDhCQWtCQztBQUVELDBEQW1CQztBQUVELDhDQW9CQztBQVVELDhCQU9DO0FBMUpELHlFQU13QztBQUN4QyxrREFBc0U7QUFDdEUsMkNBQTJFO0FBQzNFLHVEQUFzRTtBQUN0RSx5REFBcUU7QUFFckUsaURBQTBEO0FBQzFELHFEQUF3RTtBQUN4RSw4Q0FBMkM7QUFFM0MsU0FBZ0IsY0FBYyxDQUFDLEdBQVc7SUFDeEMsT0FBTyxnQ0FBb0IsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0FBQzVDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLFFBQVEsQ0FDdEIsVUFBa0Isa0NBQXNCLENBQUMsUUFBUSxDQUFDLE9BQU87SUFFekQsT0FBTyxJQUFBLG1DQUFZLEVBQUMsY0FBYyxDQUFDLGtCQUFNLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDbkQsT0FBTyxFQUFFLE9BQU87S0FDakIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUlyQixJQUFPLEVBQUUsR0FBVyxFQUFFLEtBQVE7SUFDdEMsS0FBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLFlBQTZCLHdCQUFZLENBQUMsYUFBMkMsRUFDckYsU0FBaUIsb0NBQXdCO0lBRXpDLE1BQU0sVUFBVSxHQUEyQjtRQUN6QyxJQUFBLDJCQUFJLEVBQUMsTUFBTSxFQUFFLGtDQUFzQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQXlCO1FBQzNFLElBQUEsK0JBQVEsRUFBQyxrQ0FBc0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUF5QjtRQUMzRSxJQUFBLGVB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M0IsbURBQW1EO0FBQ25ELDhCQUE4QjtBQUM5Qiw0Q0FBNEM7QUFDNUMsVUFBVTtBQUNWLG1DQUFtQztBQUNuQyxtQ0FBbUM7QUFDbkMsV0FBVztBQUNYLGdCQUFnQjtBQUNoQixxQkFBcUI7QUFDckIsU0FBUztBQUNULE9BQU87QUFDUCxJQUFJIiwiZmlsZSI6InZhbGlkYXRpb24vZGVjb3JhdG9ycy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGRhdGUsXG4gIHByb3BNZXRhZGF0YSxcbiAgcmVxdWlyZWQsXG4gIHNmLFxuICB0eXBlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBEQktleXMsIERFRkFVTFRfVElNRVNUQU1QX0ZPUk1BVCB9IGZyb20gXCIuLi9tb2RlbC9jb25zdGFudHNcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFVwZGF0ZVZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEQk9wZXJhdGlvbnMsIE9wZXJhdGlvbktleXMgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9jb25zdGFudHNcIjtcbmltcG9ydCB7IGFmdGVyLCBvbiwgb25DcmVhdGVVcGRhdGUgfSBmcm9tIFwiLi4vb3BlcmF0aW9ucy9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBJUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL0lSZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9lcnJvcnNcIjtcbmltcG9ydCB7IGFwcGx5LCBDdXN0b21EZWNvcmF0b3IsIG1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL3JlcG9zaXRvcnlcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERCVXBkYXRlS2V5KHN0cjogc3RyaW5nKSB7XG4gIHJldHVybiBVcGRhdGVWYWxpZGF0aW9uS2V5cy5SRUZMRUNUICsgc3RyO1xufVxuXG4vKipcbiAqIE1hcmtzIHRoZSBwcm9wZXJ0eSBhcyByZWFkb25seS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIHRoZSBlcnJvciBtZXNzYWdlLiBEZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5SRUFET05MWS5JTlZBTElEfVxuICpcbiAqIEBkZWNvcmF0b3IgcmVhZG9ubHlcbiAqXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZG9ubHkoXG4gIG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuUkVBRE9OTFkuSU5WQUxJRFxuKSB7XG4gIHJldHVybiBwcm9wTWV0YWRhdGEoZ2V0REJVcGRhdGVLZXkoREJLZXlzLlJFQURPTkxZKSwge1xuICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGltZXN0YW1wSGFuZGxlcjxcbiAgVCBleHRlbmRzIE1vZGVsLFxuICBWIGV4dGVuZHMgSVJlcG9zaXRvcnk8VD4sXG4gIFkgPSBhbnksXG4+KHRoaXM6IFYsIGRhdGE6IFksIGtleTogc3RyaW5nLCBtb2RlbDogVCk6IHZvaWQge1xuICAobW9kZWwgYXMgYW55KVtrZXldID0gbmV3IERhdGUoKTtcbn1cblxuLyoqXG4gKiBNYXJrcyB0aGUgcHJvcGVydHkgYXMgdGltZXN0YW1wLlxuICogTWFrZXMgaXQge0BsaW5rIHJlcXVpcmVkfVxuICogTWFrZXMgaXQgYSB7QGxpbmsgZGF0ZX1cbiAqXG4gKiBEYXRlIEZvcm1hdDpcbiAqXG4gKiA8cHJlPlxuICogICAgICBVc2luZyBzaW1pbGFyIGZvcm1hdHRpbmcgYXMgTW9tZW50LmpzLCBDbGFzcyBEYXRlVGltZUZvcm1hdHRlciAoSmF2YSksIGFuZCBDbGFzcyBTaW1wbGVEYXRlRm9ybWF0IChKYXZhKSxcbiAqICAgICAgSSBpbXBsZW1lbnRlZCBhIGNvbXByZWhlbnNpdmUgc29sdXRpb24gZm9ybWF0RGF0ZShkYXRlLCBwYXR0ZXJuU3RyKSB3aGVyZSB0aGUgY29kZSBpcyBlYXN5IHRvIHJlYWQgYW5kIG1vZGlmeS5cbiAqICAgICAgWW91IGNhbiBkaXNwbGF5IGRhdGUsIHRpbWUsIEFNL1BNLCBldGMuXG4gKlxuICogICAgICBEYXRlIGFuZCBUaW1lIFBhdHRlcm5zXG4gKiAgICAgIHl5ID0gMi1kaWdpdCB5ZWFyOyB5eXl5ID0gZnVsbCB5ZWFyXG4gKiAgICAgIE0gPSBkaWdpdCBtb250aDsgTU0gPSAyLWRpZ2l0IG1vbnRoOyBNTU0gPSBzaG9ydCBtb250aCBuYW1lOyBNTU1NID0gZnVsbCBtb250aCBuYW1lXG4gKiAgICAgIEVFRUUgPSBmdWxsIHdlZWtkYXkgbmFtZTsgRUVFID0gc2hvcnQgd2Vla2RheSBuYW1lXG4gKiAgICAgIGQgPSBkaWdpdCBkYXk7IGRkID0gMi1kaWdpdCBkYXlcbiAqICAgICAgaCA9IGhvdXJzIGFtL3BtOyBoaCA9IDItZGlnaXQgaG91cnMgYW0vcG07IEggPSBob3VyczsgSEggPSAyLWRpZ2l0IGhvdXJzXG4gKiAgICAgIG0gPSBtaW51dGVzOyBtbSA9IDItZGlnaXQgbWludXRlczsgYWFhID0gQU0vUE1cbiAqICAgICAgcyA9IHNlY29uZHM7IHNzID0gMi1kaWdpdCBzZWNvbmRzXG4gKiAgICAgIFMgPSBtaWxpc2Vjb25kc1xuICogPC9wcmU+XG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gb3BlcmF0aW9uIFRoZSB7QGxpbmsgREJPcGVyYXRpb25zfSB0byBhY3Qgb24uIERlZmF1bHRzIHRvIHtAbGluayBEQk9wZXJhdGlvbnMuQ1JFQVRFX1VQREFURX1cbiAqIEBwYXJhbSB7c3RyaW5nfSBbZm9ybWF0XSBUaGUgVGltZVN0YW1wIGZvcm1hdC4gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfVElNRVNUQU1QX0ZPUk1BVH1cbiAqIEBwYXJhbSB7e25ldzogVXBkYXRlVmFsaWRhdG9yfX0gW3ZhbGlkYXRvcl0gZGVmYXVsdHMgdG8ge0BsaW5rIFRpbWVzdGFtcFZhbGlkYXRvcn1cbiAqXG4gKiBAZGVjb3JhdG9yIHRpbWVzdGFtcFxuICpcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXAoXG4gIG9wZXJhdGlvbjogT3BlcmF0aW9uS2V5c1tdID0gREJPcGVyYXRpb25zLkNSRUFURV9VUERBVEUgYXMgdW5rbm93biBhcyBPcGVyYXRpb25LZXlzW10sXG4gIGZvcm1hdDogc3RyaW5nID0gREVGQVVMVF9USU1FU1RBTVBfRk9STUFUXG4pIHtcbiAgY29uc3QgZGVjb3JhdG9yczogQ3VzdG9tRGVjb3JhdG9yPGFueT5bXSA9IFtcbiAgICBkYXRlKGZvcm1hdCwgREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5USU1FU1RBTVAuREFURSkgYXMgQ3VzdG9tRGVjb3JhdG9yPGFueT4sXG4gICAgcmVxdWlyZWQoREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5USU1FU1RBTVAuUkVRVUlSRUQpIGFzIEN1c3RvbURlY29yYXRvcjxhbnk+LFxuICAgIG9uKG9wZXJhdGlvbiwgdGltZXN0YW1wSGFuZGxlcikgYXMgQ3VzdG9tRGVjb3JhdG9yPGFueT4sXG4gIF07XG5cbiAgaWYgKG9wZXJhdGlvbi5pbmRleE9mKE9wZXJhdGlvbktleXMuVVBEQVRFKSAhPT0gLTEpXG4gICAgZGVjb3JhdG9ycy5wdXNoKFxuICAgICAgbWV0YWRhdGEoZ2V0REJVcGRhdGVLZXkoREJLZXlzLlRJTUVTVEFNUCksIHtcbiAgICAgICAgbWVzc2FnZTogREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5USU1FU1RBTVAuSU5WQUxJRCxcbiAgICAgIH0pXG4gICAgKTtcblxuICByZXR1cm4gYXBwbHkoLi4uZGVjb3JhdG9ycyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXJpYWxpemVPbkNyZWF0ZVVwZGF0ZTxcbiAgVCBleHRlbmRzIE1vZGVsLFxuICBWIGV4dGVuZHMgSVJlcG9zaXRvcnk8VD4sXG4gIFkgPSBhbnksXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbj4odGhpczogViwgZGF0YTogWSwga2V5OiBzdHJpbmcsIG1vZGVsOiBULCBvbGRNb2RlbDogVCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIShtb2RlbCBhcyBhbnkpW2tleV0pIHJldHVybjtcbiAgdHJ5IHtcbiAgICAobW9kZWwgYXMgYW55KVtrZXldID0gSlNPTi5zdHJpbmdpZnkoKG1vZGVsIGFzIGFueSlba2V5XSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoXG4gICAgICBzZihcbiAgICAgICAgXCJGYWlsZWQgdG8gc2VyaWFsaXplIHswfSBwcm9wZXJ0eSBvbiB7MX0gbW9kZWw6IHsyfVwiLFxuICAgICAgICBrZXksXG4gICAgICAgIG1vZGVsLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICAgIGUubWVzc2FnZVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlcmlhbGl6ZUFmdGVyQWxsPFxuICBUIGV4dGVuZHMgTW9kZWwsXG4gIFYgZXh0ZW5kcyBJUmVwb3NpdG9yeTxUPixcbiAgWSA9IGFueSxcbj4odGhpczogViwgZGF0YTogWSwga2V5OiBzdHJpbmcsIG1vZGVsOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghKG1vZGVsIGFzIGFueSlba2V5XSkgcmV0dXJuO1xuICBpZiAodHlwZW9mIChtb2RlbCBhcyBhbnkpW2tleV0gIT09IFwic3RyaW5nXCIpIHJldHVybjtcblxuICB0cnkge1xuICAgIChtb2RlbCBhcyBhbnkpW2tleV0gPSBKU09OLnBhcnNlKChtb2RlbCBhcyBhbnkpW2tleV0pO1xuICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKFxuICAgICAgc2YoXG4gICAgICAgIFwiRmFpbGVkIHRvIGRlc2VyaWFsaXplIHswfSBwcm9wZXJ0eSBvbiB7MX0gbW9kZWw6IHsyfVwiLFxuICAgICAgICBrZXksXG4gICAgICAgIG1vZGVsLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICAgIGUubWVzc2FnZVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBTZXJpYWxpemUgRGVjb3JhdG9yXG4gKiBAZGVzY3JpcHRpb24gcHJvcGVydGllcyBkZWNvcmF0ZWQgd2lsbCB0aGUgc2VyaWFsaXplZCBiZWZvcmUgc3RvcmVkIGluIHRoZSBkYlxuICpcbiAqIEBmdW5jdGlvbiBzZXJpYWxpemVcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOndhbGxldC1kYi5EZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemUoKSB7XG4gIHJldHVybiBhcHBseShcbiAgICBvbkNyZWF0ZVVwZGF0ZShzZXJpYWxpemVPbkNyZWF0ZVVwZGF0ZSksXG4gICAgYWZ0ZXIoREJPcGVyYXRpb25zLkFMTCwgc2VyaWFsaXplQWZ0ZXJBbGwpLFxuICAgIHR5cGUoW1N0cmluZy5uYW1lLCBPYmplY3QubmFtZV0pLFxuICAgIG1ldGFkYXRhKFJlcG9zaXRvcnkua2V5KERCS2V5cy5TRVJJQUxJWkUpLCB7fSlcbiAgKTtcbn1cblxuLy9cbi8vIC8qKlxuLy8gICogQHN1bW1hcnkgT25lIFRvIE9uZSByZWxhdGlvbiBEZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHBhcmFtIHtDb25zdHJ1Y3Rvcjxhbnk+fSBjbGF6eiB0aGUge0BsaW5rIFNlcXVlbmNlfSB0byB1c2UuIERlZmF1bHRzIHRvIHtAbGluayBOb25lU2VxdWVuY2V9XG4vLyAgKiBAcGFyYW0ge0Nhc2NhZGVNZXRhZGF0YX0gW2Nhc2NhZGVPcHRpb25zXVxuLy8gICogQHBhcmFtIHtib29sZWFufSBfcG9wdWxhdGUgSWYgdHJ1ZSwgcmVwbGFjZXMgdGhlIHNwZWNpZmllZCBrZXkgaW4gdGhlIGRvY3VtZW50IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcmVjb3JkIGZyb20gdGhlIGRhdGFiYXNlXG4vLyAgKlxuLy8gICogQGZ1bmN0aW9uIG9uVG9PbmVcbi8vICAqXG4vLyAgKiBAbWVtYmVyT2YgbW9kdWxlOndhbGxldC1kYi5EZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHNlZSBvbmVUb01hbnlcbi8vICAqIEBzZWUgbWFueVRvT25lXG4vLyAgKi9cbi8vIGV4cG9ydCBmdW5jdGlvbiBvbmVUb09uZShcbi8vICAgY2xheno6IENvbnN0cnVjdG9yPGFueT4sXG4vLyAgIGNhc2NhZGVPcHRpb25zOiBDYXNjYWRlTWV0YWRhdGEgPSBEZWZhdWx0Q2FzY2FkZSxcbi8vICAgX3BvcHVsYXRlOiBib29sZWFuID0gdHJ1ZSxcbi8vICkge1xuLy8gICBNb2RlbC5yZWdpc3RlcihjbGF6eik7XG4vLyAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbi8vICAgICB0eXBlKFtjbGF6ei5uYW1lLCBTdHJpbmcubmFtZV0pKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIG9uQ3JlYXRlKG9uZVRvT25lT25DcmVhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIG9uVXBkYXRlKG9uZVRvT25lT25VcGRhdGUsIGNhc2NhZGVPcHRpb25zIGFzIGFueSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgb25EZWxldGUob25lVG9PbmVPbkRlbGV0ZSwgY2FzY2FkZU9wdGlvbnMpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy9cbi8vICAgICBhZnRlckNyZWF0ZShwb3B1bGF0ZSwgX3BvcHVsYXRlKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vICAgICBhZnRlclVwZGF0ZShwb3B1bGF0ZSwgX3BvcHVsYXRlKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vICAgICBhZnRlclJlYWQocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgYWZ0ZXJEZWxldGUocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vL1xuLy8gICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4vLyAgICAgICBnZXREQktleShXYWxsZXREYktleXMuT05FX1RPX09ORSksXG4vLyAgICAgICB7XG4vLyAgICAgICAgIGNvbnN0cnVjdG9yOiBjbGF6ei5uYW1lLFxuLy8gICAgICAgICBjYXNjYWRlOiBjYXNjYWRlT3B0aW9ucyxcbi8vICAgICAgICAgcG9wdWxhdGU6IF9wb3B1bGF0ZSxcbi8vICAgICAgIH0sXG4vLyAgICAgICB0YXJnZXQsXG4vLyAgICAgICBwcm9wZXJ0eUtleSxcbi8vICAgICApO1xuLy8gICB9O1xuLy8gfVxuLy9cbi8vIC8qKlxuLy8gICogQHN1bW1hcnkgT25lIFRvIE1hbnkgcmVsYXRpb24gRGVjb3JhdG9yc1xuLy8gICpcbi8vICAqIEBwYXJhbSB7Q29uc3RydWN0b3I8YW55Pn0gY2xhenogdGhlIHtAbGluayBTZXF1ZW5jZX0gdG8gdXNlLiBEZWZhdWx0cyB0byB7QGxpbmsgTm9uZVNlcXVlbmNlfVxuLy8gICogQHBhcmFtIHtDYXNjYWRlTWV0YWRhdGF9IFtjYXNjYWRlT3B0aW9uc11cbi8vICAqXG4vLyAgKiBAZnVuY3Rpb24gb25Ub01hbnlcbi8vICAqXG4vLyAgKiBAbWVtYmVyT2YgbW9kdWxlOndhbGxldC1kYi5EZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHNlZSBvbmVUb09uZVxuLy8gICogQHNlZSBtYW55VG9PbmVcbi8vICAqL1xuLy8gZXhwb3J0IGZ1bmN0aW9uIG9uZVRvTWFueShcbi8vICAgY2xheno6IENvbnN0cnVjdG9yPGFueT4sXG4vLyAgIGNhc2NhZGVPcHRpb25zOiBDYXNjYWRlTWV0YWRhdGEgPSBEZWZhdWx0Q2FzY2FkZSxcbi8vICAgX3BvcHVsYXRlOiBib29sZWFuID0gdHJ1ZSxcbi8vICkge1xuLy8gICBNb2RlbC5yZWdpc3RlcihjbGF6eik7XG4vLyAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbi8vICAgICBsaXN0KFtjbGF6eiwgU3RyaW5nXSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgb25DcmVhdGUob25lVG9NYW55T25DcmVhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIG9uVXBkYXRlKG9uZVRvTWFueU9uVXBkYXRlLCBjYXNjYWRlT3B0aW9ucykodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgb25EZWxldGUob25lVG9NYW55T25EZWxldGUsIGNhc2NhZGVPcHRpb25zKSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcbi8vXG4vLyAgICAgYWZ0ZXJDcmVhdGUocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgYWZ0ZXJVcGRhdGUocG9wdWxhdGUsIF9wb3B1bGF0ZSkodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4vLyAgICAgYWZ0ZXJSZWFkKHBvcHVsYXRlLCBfcG9wdWxhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy8gICAgIGFmdGVyRGVsZXRlKHBvcHVsYXRlLCBfcG9wdWxhdGUpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuLy9cbi8vICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuLy8gICAgICAgZ2V0REJLZXkoV2FsbGV0RGJLZXlzLk9ORV9UT19NQU5ZKSxcbi8vICAgICAgIHtcbi8vICAgICAgICAgY29uc3RydWN0b3I6IGNsYXp6Lm5hbWUsXG4vLyAgICAgICAgIGNhc2NhZGU6IGNhc2NhZGVPcHRpb25zLFxuLy8gICAgICAgfSxcbi8vICAgICAgIHRhcmdldCxcbi8vICAgICAgIHByb3BlcnR5S2V5LFxuLy8gICAgICk7XG4vLyAgIH07XG4vLyB9XG4vL1xuLy8gLyoqXG4vLyAgKiBAc3VtbWFyeSBNYW55IFRvIE9uZSByZWxhdGlvbiBEZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHBhcmFtIHtDb25zdHJ1Y3Rvcjxhbnk+fSBjbGF6eiB0aGUge0BsaW5rIFNlcXVlbmNlfSB0byB1c2UuIERlZmF1bHRzIHRvIHtAbGluayBOb25lU2VxdWVuY2V9XG4vLyAgKiBAcGFyYW0ge0Nhc2NhZGVNZXRhZGF0YX0gW2Nhc2NhZGVPcHRpb25zXVxuLy8gICpcbi8vICAqIEBmdW5jdGlvbiBtYW55VG9PbmVcbi8vICAqXG4vLyAgKiBAbWVtYmVyT2YgbW9kdWxlOndhbGxldC1kYi5EZWNvcmF0b3JzXG4vLyAgKlxuLy8gICogQHNlZSBvbmVUb01hbnlcbi8vICAqIEBzZWUgb25lVG9PbmVcbi8vICAqL1xuLy8gZXhwb3J0IGZ1bmN0aW9uIG1hbnlUb09uZShcbi8vICAgY2xheno6IENvbnN0cnVjdG9yPGFueT4sXG4vLyAgIGNhc2NhZGVPcHRpb25zOiBDYXNjYWRlTWV0YWRhdGEgPSBEZWZhdWx0Q2FzY2FkZSxcbi8vICkge1xuLy8gICBNb2RlbC5yZWdpc3RlcihjbGF6eik7XG4vLyAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbi8vICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuLy8gICAgICAgZ2V0REJLZXkoV2FsbGV0RGJLZXlzLk1BTllfVE9fT05FKSxcbi8vICAgICAgIHtcbi8vICAgICAgICAgY29uc3RydWN0b3I6IGNsYXp6Lm5hbWUsXG4vLyAgICAgICAgIGNhc2NhZGU6IGNhc2NhZGVPcHRpb25zLFxuLy8gICAgICAgfSxcbi8vICAgICAgIHRhcmdldCxcbi8vICAgICAgIHByb3BlcnR5S2V5LFxuLy8gICAgICk7XG4vLyAgIH07XG4vLyB9XG4iXX0=
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { OperationKeys } from "../operations/constants";
|
|
2
2
|
import { IRepository } from "../interfaces/IRepository";
|
|
3
|
-
import { DBModel } from "../model/DBModel";
|
|
4
|
-
import { CustomDecorator } from "@decaf-ts/reflection";
|
|
5
3
|
export declare function getDBUpdateKey(str: string): string;
|
|
6
4
|
/**
|
|
7
5
|
* Marks the property as readonly.
|
|
@@ -12,8 +10,8 @@ export declare function getDBUpdateKey(str: string): string;
|
|
|
12
10
|
*
|
|
13
11
|
* @category Decorators
|
|
14
12
|
*/
|
|
15
|
-
export declare function readonly(message?: string):
|
|
16
|
-
export declare function timestampHandler<T extends
|
|
13
|
+
export declare function readonly(message?: string): PropertyDecorator;
|
|
14
|
+
export declare function timestampHandler<T extends Model, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T): void;
|
|
17
15
|
/**
|
|
18
16
|
* Marks the property as timestamp.
|
|
19
17
|
* Makes it {@link required}
|
|
@@ -45,9 +43,9 @@ export declare function timestampHandler<T extends DBModel, V extends IRepositor
|
|
|
45
43
|
*
|
|
46
44
|
* @category Decorators
|
|
47
45
|
*/
|
|
48
|
-
export declare function timestamp(operation?: OperationKeys[], format?: string):
|
|
49
|
-
export declare function serializeOnCreateUpdate<T extends
|
|
50
|
-
export declare function serializeAfterAll<T extends
|
|
46
|
+
export declare function timestamp(operation?: OperationKeys[], format?: string): (target: object, propertyKey?: any, descriptor?: any) => void;
|
|
47
|
+
export declare function serializeOnCreateUpdate<T extends Model, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T, oldModel: T): Promise<void>;
|
|
48
|
+
export declare function serializeAfterAll<T extends Model, V extends IRepository<T>, Y = any>(this: V, data: Y, key: string, model: T): Promise<void>;
|
|
51
49
|
/**
|
|
52
50
|
* @summary Serialize Decorator
|
|
53
51
|
* @description properties decorated will the serialized before stored in the db
|
|
@@ -56,4 +54,4 @@ export declare function serializeAfterAll<T extends DBModel, V extends IReposito
|
|
|
56
54
|
*
|
|
57
55
|
* @memberOf module:wallet-db.Decorators
|
|
58
56
|
*/
|
|
59
|
-
export declare function serialize():
|
|
57
|
+
export declare function serialize(): (target: object, propertyKey?: any, descriptor?: any) => void;
|
package/lib/validation/index.cjs
CHANGED
|
@@ -1 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./validators/index.cjs"), exports);
|
|
18
|
+
__exportStar(require("./constants.cjs"), exports);
|
|
19
|
+
__exportStar(require("./decorators.cjs"), exports);
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLCtDQUE2QiIsImZpbGUiOiJ2YWxpZGF0aW9uL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG4iXX0=
|
|
@@ -1 +1,55 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ReadOnlyValidator = void 0;
|
|
13
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
14
|
+
const constants_1 = require("../constants.cjs");
|
|
15
|
+
const reflection_1 = require("@decaf-ts/reflection");
|
|
16
|
+
/**
|
|
17
|
+
* @summary Validator for the {@link readonly} decorator
|
|
18
|
+
*
|
|
19
|
+
* @class ReadOnlyValidator
|
|
20
|
+
* @extends Validator
|
|
21
|
+
*
|
|
22
|
+
* @category Validators
|
|
23
|
+
*/
|
|
24
|
+
let ReadOnlyValidator = class ReadOnlyValidator extends decorator_validation_1.Validator {
|
|
25
|
+
constructor() {
|
|
26
|
+
super(constants_1.DEFAULT_ERROR_MESSAGES.READONLY.INVALID);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @inheritDoc
|
|
30
|
+
*/
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
32
|
+
hasErrors(value, ...args) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @summary Validates a value has not changed
|
|
37
|
+
* @param {any} value
|
|
38
|
+
* @param {any} oldValue
|
|
39
|
+
* @param {string} [message] the error message override
|
|
40
|
+
*/
|
|
41
|
+
updateHasErrors(value, oldValue, message) {
|
|
42
|
+
if (value === undefined)
|
|
43
|
+
return;
|
|
44
|
+
return (0, reflection_1.isEqual)(value, oldValue)
|
|
45
|
+
? undefined
|
|
46
|
+
: this.getMessage(message || this.message);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.ReadOnlyValidator = ReadOnlyValidator;
|
|
50
|
+
exports.ReadOnlyValidator = ReadOnlyValidator = __decorate([
|
|
51
|
+
(0, decorator_validation_1.validator)(constants_1.UpdateValidationKeys.READONLY),
|
|
52
|
+
__metadata("design:paramtypes", [])
|
|
53
|
+
], ReadOnlyValidator);
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMvUmVhZE9ubHlWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUVBQXNFO0FBQ3RFLDRDQUE0RTtBQUM1RSxxREFBK0M7QUFFL0M7Ozs7Ozs7R0FPRztBQUVJLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWtCLFNBQVEsZ0NBQVM7SUFDOUM7UUFDRSxLQUFLLENBQUMsa0NBQXNCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILDZEQUE2RDtJQUM3RCxTQUFTLENBQUMsS0FBVSxFQUFFLEdBQUcsSUFBVztRQUNsQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxlQUFlLENBQ3BCLEtBQVUsRUFDVixRQUFhLEVBQ2IsT0FBZ0I7UUFFaEIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLE9BQU87UUFFaEMsT0FBTyxJQUFBLG9CQUFPLEVBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztZQUM3QixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGLENBQUE7QUE5QlksOENBQWlCOzRCQUFqQixpQkFBaUI7SUFEN0IsSUFBQSxnQ0FBUyxFQUFDLGdDQUFvQixDQUFDLFFBQVEsQ0FBQzs7R0FDNUIsaUJBQWlCLENBOEI3QiIsImZpbGUiOiJ2YWxpZGF0aW9uL3ZhbGlkYXRvcnMvUmVhZE9ubHlWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2YWxpZGF0b3IsIFZhbGlkYXRvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFVwZGF0ZVZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFZhbGlkYXRvciBmb3IgdGhlIHtAbGluayByZWFkb25seX0gZGVjb3JhdG9yXG4gKlxuICogQGNsYXNzIFJlYWRPbmx5VmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFVwZGF0ZVZhbGlkYXRpb25LZXlzLlJFQURPTkxZKVxuZXhwb3J0IGNsYXNzIFJlYWRPbmx5VmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5SRUFET05MWS5JTlZBTElEKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW5oZXJpdERvY1xuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBoYXNFcnJvcnModmFsdWU6IGFueSwgLi4uYXJnczogYW55W10pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgdmFsdWUgaGFzIG5vdCBjaGFuZ2VkXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICAgKiBAcGFyYW0ge2FueX0gb2xkVmFsdWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSB0aGUgZXJyb3IgbWVzc2FnZSBvdmVycmlkZVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9sZFZhbHVlOiBhbnksXG4gICAgbWVzc2FnZT86IHN0cmluZyxcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgcmV0dXJuIGlzRXF1YWwodmFsdWUsIG9sZFZhbHVlKVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogdGhpcy5nZXRNZXNzYWdlKG1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlKTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1,52 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.TimestampValidator = void 0;
|
|
13
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
14
|
+
const constants_1 = require("../constants.cjs");
|
|
15
|
+
/**
|
|
16
|
+
* @summary Validates the update of a timestamp
|
|
17
|
+
*
|
|
18
|
+
* @class TimestampValidator
|
|
19
|
+
* @extends Validator
|
|
20
|
+
*
|
|
21
|
+
* @category Validators
|
|
22
|
+
*/
|
|
23
|
+
let TimestampValidator = class TimestampValidator extends decorator_validation_1.Validator {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(constants_1.DEFAULT_ERROR_MESSAGES.TIMESTAMP.INVALID);
|
|
26
|
+
}
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
|
+
hasErrors(value, ...args) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
updateHasErrors(value, oldValue, message) {
|
|
32
|
+
if (value === undefined)
|
|
33
|
+
return;
|
|
34
|
+
message = message || this.getMessage(message || this.message);
|
|
35
|
+
try {
|
|
36
|
+
value = new Date(value);
|
|
37
|
+
oldValue = new Date(oldValue);
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
return message;
|
|
42
|
+
}
|
|
43
|
+
return value <= oldValue ? message : undefined;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.TimestampValidator = TimestampValidator;
|
|
47
|
+
exports.TimestampValidator = TimestampValidator = __decorate([
|
|
48
|
+
(0, decorator_validation_1.validator)(constants_1.UpdateValidationKeys.TIMESTAMP),
|
|
49
|
+
__metadata("design:paramtypes", [])
|
|
50
|
+
], TimestampValidator);
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMvVGltZXN0YW1wVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlFQUFzRTtBQUN0RSw0Q0FBNEU7QUFFNUU7Ozs7Ozs7R0FPRztBQUVJLElBQU0sa0JBQWtCLEdBQXhCLE1BQU0sa0JBQW1CLFNBQVEsZ0NBQVM7SUFDL0M7UUFDRSxLQUFLLENBQUMsa0NBQXNCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCw2REFBNkQ7SUFDN0QsU0FBUyxDQUFDLEtBQVUsRUFBRSxHQUFHLElBQVc7UUFDbEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVNLGVBQWUsQ0FDcEIsS0FBNkIsRUFDN0IsUUFBZ0MsRUFDaEMsT0FBZ0I7UUFFaEIsSUFBSSxLQUFLLEtBQUssU0FBUztZQUFFLE9BQU87UUFFaEMsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDO1lBQ0gsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5Qiw2REFBNkQ7UUFDL0QsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxLQUFLLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNqRCxDQUFDO0NBQ0YsQ0FBQTtBQTdCWSxnREFBa0I7NkJBQWxCLGtCQUFrQjtJQUQ5QixJQUFBLGdDQUFTLEVBQUMsZ0NBQW9CLENBQUMsU0FBUyxDQUFDOztHQUM3QixrQkFBa0IsQ0E2QjlCIiwiZmlsZSI6InZhbGlkYXRpb24vdmFsaWRhdG9ycy9UaW1lc3RhbXBWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2YWxpZGF0b3IsIFZhbGlkYXRvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFVwZGF0ZVZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFZhbGlkYXRlcyB0aGUgdXBkYXRlIG9mIGEgdGltZXN0YW1wXG4gKlxuICogQGNsYXNzIFRpbWVzdGFtcFZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihVcGRhdGVWYWxpZGF0aW9uS2V5cy5USU1FU1RBTVApXG5leHBvcnQgY2xhc3MgVGltZXN0YW1wVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5USU1FU1RBTVAuSU5WQUxJRCk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGhhc0Vycm9ycyh2YWx1ZTogYW55LCAuLi5hcmdzOiBhbnlbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVIYXNFcnJvcnMoXG4gICAgdmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIsXG4gICAgb2xkVmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIsXG4gICAgbWVzc2FnZT86IHN0cmluZ1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICBtZXNzYWdlID0gbWVzc2FnZSB8fCB0aGlzLmdldE1lc3NhZ2UobWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgb2xkVmFsdWUgPSBuZXcgRGF0ZShvbGRWYWx1ZSk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlIDw9IG9sZFZhbHVlID8gbWVzc2FnZSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
|
@@ -1 +1,24 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateValidator = void 0;
|
|
4
|
+
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
|
|
5
|
+
/**
|
|
6
|
+
* @summary Base class for an Update validator
|
|
7
|
+
*
|
|
8
|
+
* @param {string} [message] error message. defaults to {@link DecoratorMessages#DEFAULT}
|
|
9
|
+
* @param {string[]} [acceptedTypes] the accepted value types by the decorator
|
|
10
|
+
*
|
|
11
|
+
* @class UpdateValidator
|
|
12
|
+
* @abstract
|
|
13
|
+
* @extends Validator
|
|
14
|
+
*
|
|
15
|
+
* @category Validators
|
|
16
|
+
*/
|
|
17
|
+
class UpdateValidator extends decorator_validation_1.Validator {
|
|
18
|
+
constructor(message = decorator_validation_1.DEFAULT_ERROR_MESSAGES.DEFAULT, ...acceptedTypes) {
|
|
19
|
+
super(message, ...acceptedTypes);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.UpdateValidator = UpdateValidator;
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMvVXBkYXRlVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUd3QztBQUV4Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQXNCLGVBQWdCLFNBQVEsZ0NBQVM7SUFDckQsWUFDRSxVQUFrQiw2Q0FBaUIsQ0FBQyxPQUFPLEVBQzNDLEdBQUcsYUFBdUI7UUFFMUIsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FhRjtBQW5CRCwwQ0FtQkMiLCJmaWxlIjoidmFsaWRhdGlvbi92YWxpZGF0b3JzL1VwZGF0ZVZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERFRkFVTFRfRVJST1JfTUVTU0FHRVMgYXMgRGVjb3JhdG9yTWVzc2FnZXMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEJhc2UgY2xhc3MgZm9yIGFuIFVwZGF0ZSB2YWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGVycm9yIG1lc3NhZ2UuIGRlZmF1bHRzIHRvIHtAbGluayBEZWNvcmF0b3JNZXNzYWdlcyNERUZBVUxUfVxuICogQHBhcmFtIHtzdHJpbmdbXX0gW2FjY2VwdGVkVHlwZXNdIHRoZSBhY2NlcHRlZCB2YWx1ZSB0eXBlcyBieSB0aGUgZGVjb3JhdG9yXG4gKlxuICogQGNsYXNzIFVwZGF0ZVZhbGlkYXRvclxuICogQGFic3RyYWN0XG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVXBkYXRlVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yIHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IERlY29yYXRvck1lc3NhZ2VzLkRFRkFVTFQsXG4gICAgLi4uYWNjZXB0ZWRUeXBlczogc3RyaW5nW11cbiAgKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgLi4uYWNjZXB0ZWRUeXBlcyk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgdmFsaWRhdGVzIGEgdmFsdWUgYnkgY29tcGFyaW5nIHRvIGl0cyBvbGQgdmVyc2lvblxuICAgKiBAcGFyYW0ge2FueX0gdmFsdWVcbiAgICogQHBhcmFtIHthbnl9IG9sZFZhbHVlXG4gICAqIEBwYXJhbSB7YW55W119IGFyZ3NcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB1cGRhdGVIYXNFcnJvcnMoXG4gICAgdmFsdWU6IGFueSxcbiAgICBvbGRWYWx1ZTogYW55LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
@@ -1 +1,21 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ReadOnlyValidator.cjs"), exports);
|
|
18
|
+
__exportStar(require("./TimestampValidator.cjs"), exports);
|
|
19
|
+
__exportStar(require("./UpdateValidator.cjs"), exports);
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFvQztBQUNwQyx1REFBcUM7QUFDckMsb0RBQWtDIiwiZmlsZSI6InZhbGlkYXRpb24vdmFsaWRhdG9ycy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL1JlYWRPbmx5VmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9UaW1lc3RhbXBWYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1VwZGF0ZVZhbGlkYXRvclwiO1xuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/db-decorators",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Agnostic database decorators and repository",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"lint": "eslint .",
|
|
22
22
|
"lint-fix": "eslint --fix ./src/*",
|
|
23
23
|
"test:circular": "dpdm -T --no-warning --no-tree ./src/index.ts",
|
|
24
|
-
"prepare-release": "npm run lint-fix && npm run build:prod && npm run
|
|
24
|
+
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
25
25
|
"release": "./bin/tag-release.sh",
|
|
26
26
|
"clean-publish": "npx clean-publish",
|
|
27
|
-
"coverage": "npm run test:all && jest-coverage-badges
|
|
27
|
+
"coverage": "npm run test:all && cd workdocs && jest-coverage-badges",
|
|
28
28
|
"docs": "npx rimraf ./docs && mkdir docs && npm run do-install -- better-docs taffydb && gulp docs; npm remove better-docs taffydb"
|
|
29
29
|
},
|
|
30
30
|
"repository": {
|
|
@@ -66,35 +66,39 @@
|
|
|
66
66
|
},
|
|
67
67
|
"homepage": "https://github.com/decaf-ts/db-decorators#readme",
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@
|
|
70
|
-
"@
|
|
71
|
-
"
|
|
72
|
-
"
|
|
69
|
+
"@eslint/js": "^9.13.0",
|
|
70
|
+
"@types/jest": "^29.5.13",
|
|
71
|
+
"@typescript-eslint/eslint-plugin": "^8.10.0",
|
|
72
|
+
"clean-publish": "^5.0.0",
|
|
73
|
+
"dpdm": "^3.14.0",
|
|
74
|
+
"eslint": "^9.13.0",
|
|
73
75
|
"eslint-config-prettier": "^9.1.0",
|
|
74
|
-
"eslint-plugin-prettier": "^5.1
|
|
75
|
-
"
|
|
76
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
77
|
+
"globals": "^15.11.0",
|
|
78
|
+
"gulp": "^5.0.0",
|
|
76
79
|
"gulp-if": "^3.0.0",
|
|
77
80
|
"gulp-rename": "^2.0.0",
|
|
78
81
|
"gulp-replace": "^1.1.4",
|
|
79
82
|
"gulp-run-command": "^0.0.10",
|
|
80
|
-
"gulp-sourcemaps": "^
|
|
83
|
+
"gulp-sourcemaps": "^2.6.5",
|
|
81
84
|
"gulp-typescript": "^6.0.0-alpha.1",
|
|
82
85
|
"gulp-uglify": "^3.0.2",
|
|
83
86
|
"jest": "^29.7.0",
|
|
84
|
-
"jest-coverage-badges": "^1.
|
|
87
|
+
"jest-coverage-badges": "^1.0.0",
|
|
85
88
|
"jest-junit": "^16.0.0",
|
|
86
|
-
"jsdoc": "^4.0.
|
|
89
|
+
"jsdoc": "^4.0.3",
|
|
87
90
|
"jsdoc-mermaid": "^1.0.0",
|
|
88
91
|
"markdown-include": "^0.4.3",
|
|
89
92
|
"merge-stream": "^2.0.0",
|
|
90
|
-
"nodemon": "^3.1.
|
|
91
|
-
"npm-check-updates": "^
|
|
92
|
-
"prettier": "^3.
|
|
93
|
-
"rimraf": "^
|
|
94
|
-
"ts-jest": "^29.
|
|
93
|
+
"nodemon": "^3.1.7",
|
|
94
|
+
"npm-check-updates": "^17.1.4",
|
|
95
|
+
"prettier": "^3.3.3",
|
|
96
|
+
"rimraf": "^6.0.1",
|
|
97
|
+
"ts-jest": "^29.2.5",
|
|
95
98
|
"ts-loader": "^9.5.1",
|
|
96
99
|
"ts-node": "^10.9.2",
|
|
97
|
-
"typescript": "^5.
|
|
100
|
+
"typescript": "^5.6.3",
|
|
101
|
+
"typescript-eslint": "^8.10.0",
|
|
98
102
|
"vinyl-named": "^1.1.0",
|
|
99
103
|
"webpack-stream": "^7.0.0"
|
|
100
104
|
},
|