1 | ;
|
2 | //import 'reflect-metadata'
|
3 | var Constants_1 = require("./Constants");
|
4 | var log = require('./log').create(__filename);
|
5 | /**
|
6 | * Simple pass thru to define metadata
|
7 | *
|
8 | * @param metadataKey
|
9 | * @param metadata
|
10 | * @param target
|
11 | * @param targetKey
|
12 | */
|
13 | function setMetadata(metadataKey, metadata, target, targetKey) {
|
14 | Reflect.defineMetadata(metadataKey, metadata, target, targetKey);
|
15 | }
|
16 | exports.setMetadata = setMetadata;
|
17 | /**
|
18 | * Get metadata
|
19 | *
|
20 | * @param metadataKey
|
21 | * @param target
|
22 | * @param targetKey
|
23 | * @returns {any}
|
24 | */
|
25 | function getMetadata(metadataKey, target, targetKey) {
|
26 | return Reflect.getMetadata(metadataKey, target, targetKey);
|
27 | }
|
28 | exports.getMetadata = getMetadata;
|
29 | function makeMetadataGetter(metadataKey) {
|
30 | return function (target, targetKey) {
|
31 | return Reflect.getMetadata(metadataKey, target, targetKey);
|
32 | };
|
33 | }
|
34 | exports.makeMetadataGetter = makeMetadataGetter;
|
35 | exports.getMetadataReturnType = makeMetadataGetter(Constants_1.ReturnTypeKey);
|
36 | exports.getMetadataType = makeMetadataGetter(Constants_1.TypeKey);
|
37 | /**
|
38 | * Create a simple options decorator for things like finders
|
39 | *
|
40 | * @param metadataKey
|
41 | * @param includeTargetKey
|
42 | * @param customizerFn
|
43 | * @returns {function(T=): function(any, string, TypedPropertyDescriptor<any>): undefined}
|
44 | * - in the customizer, opts is mutable
|
45 | */
|
46 | function makeOptionsDecorator(metadataKey, includeTargetKey, customizerFn) {
|
47 | if (includeTargetKey === void 0) { includeTargetKey = true; }
|
48 | if (customizerFn === void 0) { customizerFn = null; }
|
49 | return function (opts) {
|
50 | opts = opts || {};
|
51 | return function (target, propertyKey, descriptor) {
|
52 | // If a customizer was provided then use it
|
53 | // Pass all important items
|
54 | // NOTE: opts it mutable
|
55 | if (customizerFn)
|
56 | customizerFn(opts, target, propertyKey);
|
57 | setMetadata(metadataKey, opts, target, (includeTargetKey) ? propertyKey : undefined);
|
58 | };
|
59 | };
|
60 | }
|
61 | exports.makeOptionsDecorator = makeOptionsDecorator;
|
62 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGFNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01ldGFkYXRhTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkJBQTJCO0FBQzNCLHlDQUFrRDtBQUNsRCxJQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBRy9DOzs7Ozs7O0dBT0c7QUFDSCxxQkFBNEIsV0FBa0IsRUFBQyxRQUFZLEVBQUMsTUFBVSxFQUFDLFNBQWlCO0lBQ3ZGLE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUZELGtDQUVDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHFCQUE0QixXQUFrQixFQUFDLE1BQVUsRUFBQyxTQUFpQjtJQUMxRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUMsTUFBTSxFQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQ3pELENBQUM7QUFGRCxrQ0FFQztBQUVELDRCQUFtQyxXQUFrQjtJQUNwRCxNQUFNLENBQUMsVUFBUyxNQUFVLEVBQUMsU0FBZ0I7UUFDMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFDLE1BQU0sRUFBQyxTQUFTLENBQUMsQ0FBQTtJQUN6RCxDQUFDLENBQUE7QUFDRixDQUFDO0FBSkQsZ0RBSUM7QUFFYSxRQUFBLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDLHlCQUFhLENBQUMsQ0FBQTtBQUN6RCxRQUFBLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBTyxDQUFDLENBQUE7QUFXM0Q7Ozs7Ozs7O0dBUUc7QUFDSCw4QkFDQyxXQUFrQixFQUNsQixnQkFBK0IsRUFDL0IsWUFBK0Q7SUFEL0QsaUNBQUEsRUFBQSx1QkFBK0I7SUFDL0IsNkJBQUEsRUFBQSxtQkFBK0Q7SUFFL0QsTUFBTSxDQUFDLFVBQUMsSUFBTztRQUNkLElBQUksR0FBRyxJQUFJLElBQUksRUFBTyxDQUFBO1FBQ3RCLE1BQU0sQ0FBQyxVQUFDLE1BQVUsRUFBQyxXQUFrQixFQUFDLFVBQXVDO1lBRTVFLDJDQUEyQztZQUMzQywyQkFBMkI7WUFDM0Isd0JBQXdCO1lBQ3hCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDaEIsWUFBWSxDQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsV0FBVyxDQUFDLENBQUE7WUFFdEMsV0FBVyxDQUFDLFdBQVcsRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFDbEYsQ0FBQyxDQUFBO0lBQ0YsQ0FBQyxDQUFBO0FBQ0YsQ0FBQztBQWxCRCxvREFrQkMifQ== |
\ | No newline at end of file |