UNPKG

3.78 kBJavaScriptView Raw
1"use strict";
2//import 'reflect-metadata'
3var Constants_1 = require("./Constants");
4var 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 */
13function setMetadata(metadataKey, metadata, target, targetKey) {
14 Reflect.defineMetadata(metadataKey, metadata, target, targetKey);
15}
16exports.setMetadata = setMetadata;
17/**
18 * Get metadata
19 *
20 * @param metadataKey
21 * @param target
22 * @param targetKey
23 * @returns {any}
24 */
25function getMetadata(metadataKey, target, targetKey) {
26 return Reflect.getMetadata(metadataKey, target, targetKey);
27}
28exports.getMetadata = getMetadata;
29function makeMetadataGetter(metadataKey) {
30 return function (target, targetKey) {
31 return Reflect.getMetadata(metadataKey, target, targetKey);
32 };
33}
34exports.makeMetadataGetter = makeMetadataGetter;
35exports.getMetadataReturnType = makeMetadataGetter(Constants_1.ReturnTypeKey);
36exports.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 */
46function 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}
61exports.makeOptionsDecorator = makeOptionsDecorator;
62//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0YWRhdGFNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01ldGFkYXRhTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkJBQTJCO0FBQzNCLHlDQUFrRDtBQUNsRCxJQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBRy9DOzs7Ozs7O0dBT0c7QUFDSCxxQkFBNEIsV0FBa0IsRUFBQyxRQUFZLEVBQUMsTUFBVSxFQUFDLFNBQWlCO0lBQ3ZGLE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxDQUFDLENBQUE7QUFDOUQsQ0FBQztBQUZELGtDQUVDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHFCQUE0QixXQUFrQixFQUFDLE1BQVUsRUFBQyxTQUFpQjtJQUMxRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUMsTUFBTSxFQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQ3pELENBQUM7QUFGRCxrQ0FFQztBQUVELDRCQUFtQyxXQUFrQjtJQUNwRCxNQUFNLENBQUMsVUFBUyxNQUFVLEVBQUMsU0FBZ0I7UUFDMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFDLE1BQU0sRUFBQyxTQUFTLENBQUMsQ0FBQTtJQUN6RCxDQUFDLENBQUE7QUFDRixDQUFDO0FBSkQsZ0RBSUM7QUFFYSxRQUFBLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDLHlCQUFhLENBQUMsQ0FBQTtBQUN6RCxRQUFBLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxtQkFBTyxDQUFDLENBQUE7QUFXM0Q7Ozs7Ozs7O0dBUUc7QUFDSCw4QkFDQyxXQUFrQixFQUNsQixnQkFBK0IsRUFDL0IsWUFBK0Q7SUFEL0QsaUNBQUEsRUFBQSx1QkFBK0I7SUFDL0IsNkJBQUEsRUFBQSxtQkFBK0Q7SUFFL0QsTUFBTSxDQUFDLFVBQUMsSUFBTztRQUNkLElBQUksR0FBRyxJQUFJLElBQUksRUFBTyxDQUFBO1FBQ3RCLE1BQU0sQ0FBQyxVQUFDLE1BQVUsRUFBQyxXQUFrQixFQUFDLFVBQXVDO1lBRTVFLDJDQUEyQztZQUMzQywyQkFBMkI7WUFDM0Isd0JBQXdCO1lBQ3hCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQztnQkFDaEIsWUFBWSxDQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsV0FBVyxDQUFDLENBQUE7WUFFdEMsV0FBVyxDQUFDLFdBQVcsRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxXQUFXLEdBQUcsU0FBUyxDQUFDLENBQUE7UUFDbEYsQ0FBQyxDQUFBO0lBQ0YsQ0FBQyxDQUFBO0FBQ0YsQ0FBQztBQWxCRCxvREFrQkMifQ==
\No newline at end of file