1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | require("reflect-metadata");
|
4 | exports.INCEPTUM_WEB_METADATA_KEY = 'inceptum-web';
|
5 | class InceptumWebMetadata {
|
6 | constructor() {
|
7 | this.routes = [];
|
8 | }
|
9 | }
|
10 | exports.InceptumWebMetadata = InceptumWebMetadata;
|
11 | function hasWebDecoratorMetadata(target) {
|
12 | return Reflect.hasMetadata(exports.INCEPTUM_WEB_METADATA_KEY, target);
|
13 | }
|
14 | exports.hasWebDecoratorMetadata = hasWebDecoratorMetadata;
|
15 | function getWebDecoratorMetadata(target) {
|
16 | return Reflect.getMetadata(exports.INCEPTUM_WEB_METADATA_KEY, target);
|
17 | }
|
18 | exports.getWebDecoratorMetadata = getWebDecoratorMetadata;
|
19 | function getOrCreateMetadata(target) {
|
20 | if (hasWebDecoratorMetadata(target)) {
|
21 | return getWebDecoratorMetadata(target);
|
22 | }
|
23 | const metadata = new InceptumWebMetadata();
|
24 | Reflect.defineMetadata(exports.INCEPTUM_WEB_METADATA_KEY, metadata, target);
|
25 | return metadata;
|
26 | }
|
27 | var WebDecorator;
|
28 | (function (WebDecorator) {
|
29 | function Get(path) {
|
30 | return Route('get', path);
|
31 | }
|
32 | WebDecorator.Get = Get;
|
33 | function Post(path) {
|
34 | return Route('post', path);
|
35 | }
|
36 | WebDecorator.Post = Post;
|
37 | function Put(path) {
|
38 | return Route('put', path);
|
39 | }
|
40 | WebDecorator.Put = Put;
|
41 | function Delete(path) {
|
42 | return Route('delete', path);
|
43 | }
|
44 | WebDecorator.Delete = Delete;
|
45 | function Route(verb, path) {
|
46 | return (target, key) => {
|
47 |
|
48 | const metadata = getOrCreateMetadata(target);
|
49 | metadata.routes.push({ verb, path, methodName: key });
|
50 | };
|
51 | }
|
52 | WebDecorator.Route = Route;
|
53 | })(WebDecorator = exports.WebDecorator || (exports.WebDecorator = {}));
|
54 |
|
\ | No newline at end of file |