UNPKG

1.67 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3require("reflect-metadata");
4exports.PERMISSION_CONTROLLER_OR = "user:permission_controller_or";
5exports.PERMISSION_CONTROLLER_AND = "user:permission_controller_and";
6function Can(names, mode = "and") {
7 return (target, key, descriptor) => {
8 if (descriptor) {
9 const orExist = Reflect.getMetadata(exports.PERMISSION_CONTROLLER_OR, descriptor.value) || [];
10 const andExist = Reflect.getMetadata(exports.PERMISSION_CONTROLLER_AND, descriptor.value) || [];
11 if (mode === "or") {
12 Reflect.defineMetadata(exports.PERMISSION_CONTROLLER_OR, names.concat(orExist), descriptor.value);
13 }
14 else if (mode === "and") {
15 Reflect.defineMetadata(exports.PERMISSION_CONTROLLER_AND, names.concat(andExist), descriptor.value);
16 }
17 else {
18 throw new Error("mode参数不正确");
19 }
20 return descriptor;
21 }
22 const orExist = Reflect.getMetadata(exports.PERMISSION_CONTROLLER_OR, target) || [];
23 const andExist = Reflect.getMetadata(exports.PERMISSION_CONTROLLER_AND, target) || [];
24 if (mode === "or") {
25 Reflect.defineMetadata(exports.PERMISSION_CONTROLLER_OR, names.concat(orExist), target);
26 }
27 else if (mode === "and") {
28 Reflect.defineMetadata(exports.PERMISSION_CONTROLLER_AND, names.concat(andExist), target);
29 }
30 else {
31 throw new Error("mode参数不正确");
32 }
33 return target;
34 };
35}
36exports.Can = Can;
37
38//# sourceMappingURL=can.decorator.js.map