web_api_base 2.5.4 → 2.6.0

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.
Files changed (65) hide show
  1. package/dist/Application.js +1 -0
  2. package/dist/Application.js.map +1 -1
  3. package/dist/dependencyInjection/DependecyService.d.ts +9 -0
  4. package/dist/dependencyInjection/DependecyService.js +55 -2
  5. package/dist/dependencyInjection/DependecyService.js.map +1 -1
  6. package/dist/index.d.ts +2 -0
  7. package/dist/{Index.js → index.js} +10 -1
  8. package/dist/index.js.map +1 -0
  9. package/dist/jest.config.js +5 -1
  10. package/dist/jest.config.js.map +1 -1
  11. package/package.json +1 -1
  12. package/readme.md +87 -0
  13. package/dist/App.js +0 -32
  14. package/dist/App.js.map +0 -1
  15. package/dist/Configuration.js +0 -69
  16. package/dist/Configuration.js.map +0 -1
  17. package/dist/Index.js.map +0 -1
  18. package/dist/__tests__/classes/Controller.d.ts +0 -8
  19. package/dist/__tests__/classes/Controller.js +0 -54
  20. package/dist/__tests__/classes/Controller.js.map +0 -1
  21. package/dist/__tests__/decorators/controllers/ControllerDecorators.spec.d.ts +0 -1
  22. package/dist/__tests__/decorators/controllers/ControllerDecorators.spec.js +0 -40
  23. package/dist/__tests__/decorators/controllers/ControllerDecorators.spec.js.map +0 -1
  24. package/dist/bin/create-webapi-app.d.ts +0 -1
  25. package/dist/bin/create-webapi-app.js +0 -52
  26. package/dist/bin/create-webapi-app.js.map +0 -1
  27. package/dist/bin/temp/Application.d.ts +0 -6
  28. package/dist/bin/temp/Application.js +0 -33
  29. package/dist/bin/temp/Application.js.map +0 -1
  30. package/dist/bin/temp/Index.d.ts +0 -1
  31. package/dist/bin/temp/Index.js +0 -8
  32. package/dist/bin/temp/Index.js.map +0 -1
  33. package/dist/bin/temp/controllers/StatusController.d.ts +0 -5
  34. package/dist/bin/temp/controllers/StatusController.js +0 -33
  35. package/dist/bin/temp/controllers/StatusController.js.map +0 -1
  36. package/dist/config.json +0 -1
  37. package/dist/controllers/FileController.js +0 -162
  38. package/dist/controllers/FileController.js.map +0 -1
  39. package/dist/controllers/StatusController.js +0 -44
  40. package/dist/controllers/StatusController.js.map +0 -1
  41. package/dist/decorators/dependencyInjection/DependecyInjectionDecorators.d.ts +0 -13
  42. package/dist/decorators/dependencyInjection/DependecyInjectionDecorators.js +0 -32
  43. package/dist/decorators/dependencyInjection/DependecyInjectionDecorators.js.map +0 -1
  44. package/dist/interfaces/entities/IDirectory.d.ts +0 -5
  45. package/dist/interfaces/entities/IDirectory.js +0 -3
  46. package/dist/interfaces/entities/IDirectory.js.map +0 -1
  47. package/dist/services/FileService.js +0 -45
  48. package/dist/services/FileService.js.map +0 -1
  49. package/dist/services/IFileService.js +0 -8
  50. package/dist/services/IFileService.js.map +0 -1
  51. package/dist/services/fileService/FileService.d.ts +0 -10
  52. package/dist/services/fileService/FileService.js +0 -96
  53. package/dist/services/fileService/FileService.js.map +0 -1
  54. package/dist/services/fileService/FileServiceBase.d.ts +0 -10
  55. package/dist/services/fileService/FileServiceBase.js +0 -7
  56. package/dist/services/fileService/FileServiceBase.js.map +0 -1
  57. package/dist/temp/Application.d.ts +0 -6
  58. package/dist/temp/Application.js +0 -33
  59. package/dist/temp/Application.js.map +0 -1
  60. package/dist/temp/Index.d.ts +0 -1
  61. package/dist/temp/Index.js +0 -8
  62. package/dist/temp/Index.js.map +0 -1
  63. package/dist/temp/controllers/StatusController.d.ts +0 -6
  64. package/dist/temp/controllers/StatusController.js +0 -34
  65. package/dist/temp/controllers/StatusController.js.map +0 -1
@@ -114,6 +114,7 @@ class Application {
114
114
  let controller = DependecyService_1.default.ResolveCtor(empty.constructor);
115
115
  if (controller == undefined)
116
116
  controller = new ctor();
117
+ DependecyService_1.default.CheckForDependenciesAndResolve(controller);
117
118
  controller.Request = context.Request;
118
119
  controller.Response = context.Response;
119
120
  controller[method](...params);
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sourceRoot":"","sources":["../Application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../Application.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,18 @@
1
+ import 'reflect-metadata';
1
2
  export default class DependecyService {
2
3
  private static _services;
4
+ private static _injectableKey;
5
+ private static _injectableTypeKey;
3
6
  static RegisterFor(type: Function, ctor: {
4
7
  new (...args: any[]): any;
5
8
  }, builder?: () => any): void;
6
9
  static Register(type: Function, builder?: () => any): void;
7
10
  static Resolve<T>(type: Function, args?: any[]): T;
8
11
  static ResolveCtor(ctor: Function, args?: any[]): any;
12
+ static Injectable(): (target: Object, property: string | symbol) => void;
13
+ static IsInjectable(target: object, property: string): boolean;
14
+ static InjectOne(tp: Function): (target: Object, property: string | symbol) => void;
15
+ static GetDIType(target: object, property: string): any;
16
+ static CheckForDependenciesAndResolve(object: any): void;
17
+ static Build<T extends Function>(Ctor: T): T;
9
18
  }
@@ -1,13 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
3
4
  class DependecyService {
4
5
  static RegisterFor(type, ctor, builder) {
5
6
  let defaultBuilder = () => Reflect.construct(ctor !== null && ctor !== void 0 ? ctor : type, []);
6
- this._services.push({ Type: type, Builder: builder !== null && builder !== void 0 ? builder : defaultBuilder });
7
+ let exist = this._services.find(s => s.Type == type);
8
+ if (exist === undefined)
9
+ this._services.push({ Type: type, Builder: builder !== null && builder !== void 0 ? builder : defaultBuilder });
10
+ else
11
+ exist.Builder = builder !== null && builder !== void 0 ? builder : defaultBuilder;
7
12
  }
8
13
  static Register(type, builder) {
9
14
  let defaultBuilder = () => Reflect.construct(type, []);
10
- this._services.push({ Type: type, Builder: builder !== null && builder !== void 0 ? builder : defaultBuilder });
15
+ let exist = this._services.find(s => s.Type == type);
16
+ if (exist === undefined)
17
+ this._services.push({ Type: type, Builder: builder !== null && builder !== void 0 ? builder : defaultBuilder });
18
+ else
19
+ exist.Builder = builder !== null && builder !== void 0 ? builder : defaultBuilder;
11
20
  }
12
21
  static Resolve(type, args) {
13
22
  var _a;
@@ -17,7 +26,51 @@ class DependecyService {
17
26
  var _a;
18
27
  return (_a = this._services.find(u => u.Type == ctor)) === null || _a === void 0 ? void 0 : _a.Builder(args);
19
28
  }
29
+ static Injectable() {
30
+ return function (target, property) {
31
+ Reflect.defineMetadata(DependecyService._injectableKey, true, target.constructor, property);
32
+ };
33
+ }
34
+ static IsInjectable(target, property) {
35
+ var _a;
36
+ let marked = (_a = Reflect.getMetadata(DependecyService._injectableKey, target, property)) !== null && _a !== void 0 ? _a : false;
37
+ let type = Reflect.getMetadata(DependecyService._injectableTypeKey, target, property) != undefined;
38
+ return marked || type;
39
+ }
40
+ static InjectOne(tp) {
41
+ return function (target, property) {
42
+ Reflect.defineMetadata(DependecyService._injectableTypeKey, tp, target.constructor, property);
43
+ };
44
+ }
45
+ static GetDIType(target, property) {
46
+ let type = Reflect.getMetadata(DependecyService._injectableTypeKey, target.constructor, property);
47
+ if (!type)
48
+ type = Reflect.getMetadata("design:type", target, property);
49
+ return type;
50
+ }
51
+ static CheckForDependenciesAndResolve(object) {
52
+ for (let k of Object.keys(object)) {
53
+ if (object[k] != 'function') {
54
+ if (DependecyService.IsInjectable(object.constructor, k)) {
55
+ let tp = DependecyService.GetDIType(object, k);
56
+ if (tp == undefined)
57
+ throw new Error(`Can not resolve the dependecy of ${object.constructor.name}.${k}`);
58
+ let instance = DependecyService.Resolve(tp);
59
+ if (instance == undefined)
60
+ throw new Error(`Can not resolve the dependecy of ${object.constructor.name}.${k}`);
61
+ object[k] = instance;
62
+ }
63
+ }
64
+ }
65
+ }
66
+ static Build(Ctor) {
67
+ let object = Reflect.construct(Ctor, []);
68
+ this.CheckForDependenciesAndResolve(object);
69
+ return object;
70
+ }
20
71
  }
21
72
  exports.default = DependecyService;
22
73
  DependecyService._services = [];
74
+ DependecyService._injectableKey = "di:injectable";
75
+ DependecyService._injectableTypeKey = "di:injectable-type";
23
76
  //# sourceMappingURL=DependecyService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DependecyService.js","sourceRoot":"","sources":["../../dependencyInjection/DependecyService.ts"],"names":[],"mappings":";;AAAA,MAAqB,gBAAgB;IAI1B,MAAM,CAAC,WAAW,CAAC,IAAe,EAAE,IAAsC,EAAE,OAAoB;QAEnG,IAAI,cAAc,GAAG,GAAG,EAAE,CAAE,OAAO,CAAC,SAAS,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,EAAE,EAAE,CAAQ,CAAC;QAEvE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAG,IAAI,EAAE,OAAO,EAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,cAAc,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAe,EAAE,OAAoB;QAExD,IAAI,cAAc,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEvD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAG,IAAI,EAAE,OAAO,EAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,cAAc,EAAE,CAAC,CAAC;IAC9E,CAAC;IAEM,MAAM,CAAC,OAAO,CAAI,IAAe,EAAE,IAAa;;QAEnD,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,0CAAE,OAAO,CAAC,IAAI,CAAM,CAAC;IACxE,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,IAAe,EAAE,IAAa;;QAEpD,OAAO,MAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,0CAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;;AA1BL,mCA4BC;AA1BkB,0BAAS,GAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"DependecyService.js","sourceRoot":"","sources":["../../dependencyInjection/DependecyService.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -15,6 +15,8 @@ export declare function Run(midleware: IMidleware): (target: Object, methodName:
15
15
  export declare function Action(actionName: String): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
16
16
  export declare function Route(route: string): (target: Function) => void;
17
17
  export declare function Verb(verb: HTTPVerbs): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
18
+ export declare function Inject(): (target: Object, property: string | symbol) => void;
19
+ export declare function InjectAbstract(object: Function): (target: Object, property: string | symbol) => void;
18
20
  export declare function Argument<T>(argName1: string): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
19
21
  export declare function Argument<T, U>(argName1: string, argName2?: string): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
20
22
  export declare function Argument<T, U, K>(argName1: string, argName2?: string, argName3?: string): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Argument = exports.Verb = exports.Route = exports.Action = exports.Run = exports.Use = exports.DependecyService = exports.HTTPVerbs = exports.ControllerBase = exports.ControllersDecorators = exports.ApplicationConfiguration = exports.Application = void 0;
6
+ exports.Argument = exports.InjectAbstract = exports.Inject = exports.Verb = exports.Route = exports.Action = exports.Run = exports.Use = exports.DependecyService = exports.HTTPVerbs = exports.ControllerBase = exports.ControllersDecorators = exports.ApplicationConfiguration = exports.Application = void 0;
7
7
  var Application_1 = require("./Application");
8
8
  Object.defineProperty(exports, "Application", { enumerable: true, get: function () { return __importDefault(Application_1).default; } });
9
9
  var ApplicationConfiguration_1 = require("./ApplicationConfiguration");
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "HTTPVerbs", { enumerable: true, get: function ()
17
17
  var DependecyService_1 = require("./dependencyInjection/DependecyService");
18
18
  Object.defineProperty(exports, "DependecyService", { enumerable: true, get: function () { return __importDefault(DependecyService_1).default; } });
19
19
  const ControllerDecorators_2 = __importDefault(require("./decorators/controllers/ControllerDecorators"));
20
+ const DependecyService_2 = __importDefault(require("./dependencyInjection/DependecyService"));
20
21
  function Use(midleware) {
21
22
  return ControllerDecorators_2.default.Use(midleware);
22
23
  }
@@ -42,6 +43,14 @@ function Verb(verb) {
42
43
  }
43
44
  exports.Verb = Verb;
44
45
  ;
46
+ function Inject() {
47
+ return DependecyService_2.default.Injectable();
48
+ }
49
+ exports.Inject = Inject;
50
+ function InjectAbstract(object) {
51
+ return DependecyService_2.default.InjectOne(object);
52
+ }
53
+ exports.InjectAbstract = InjectAbstract;
45
54
  function Argument(argName1, argName2, argName3, argName4, argName5) {
46
55
  return ControllerDecorators_2.default.Argument(argName1, argName2, argName3, argName4, argName5);
47
56
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAsD;AAA7C,2HAAA,OAAO,OAAe;AAC/B,uEAAiF;AAAxE,qJAAA,OAAO,OAA4B;AAE5C,sFAAiG;AAAxF,8IAAA,OAAO,OAAyB;AACzC,oEAAmE;AAA1D,gHAAA,cAAc,OAAA;AAEvB,yDAAwD;AAA/C,sGAAA,SAAS,OAAA;AAElB,2EAAqF;AAA5E,qIAAA,OAAO,OAAoB;AAQpC,yGAAkF;AAClF,8FAAsE;AAItE,SAAgB,GAAG,CAAC,SAAsB;IAEtC,OAAO,8BAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAHD,kBAGC;AAAC,CAAC;AAEH,SAAgB,GAAG,CAAC,SAAsB;IAEtC,OAAO,8BAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC;AAHD,kBAGC;AAAC,CAAC;AAEH,SAAgB,MAAM,CAAC,UAAmB;IAEtC,OAAO,8BAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpD,CAAC;AAHD,wBAGC;AAAC,CAAC;AAEH,SAAgB,KAAK,CAAC,KAAc;IAEhC,OAAO,8BAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAHD,sBAGC;AAAC,CAAC;AAGH,SAAgB,IAAI,CAAC,IAAgB;IAGjC,OAAO,8BAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAJD,oBAIC;AAAC,CAAC;AAEH,SAAgB,MAAM;IAElB,OAAO,0BAAgB,CAAC,UAAU,EAAE,CAAC;AACzC,CAAC;AAHD,wBAGC;AAED,SAAgB,cAAc,CAAC,MAAiB;IAE5C,OAAO,0BAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAHD,wCAGC;AAQD,SAAgB,QAAQ,CAAiB,QAAiB,EAAE,QAAkB,EAAE,QAAkB,EAAE,QAAkB,EAAE,QAAkB;IAEtI,OAAO,8BAAqB,CAAC,QAAQ,CAAiB,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5G,CAAC;AAHD,4BAGC"}
@@ -3,6 +3,10 @@
3
3
  module.exports = {
4
4
  preset: 'ts-jest',
5
5
  testEnvironment: 'node',
6
- modulePathIgnorePatterns: ['<rootDir>/__test__/classes/'],
6
+ collectCoverage: true,
7
+ testPathIgnorePatterns: [
8
+ "__tests__/classes",
9
+ "__test__/*/*.d.ts"
10
+ ]
7
11
  };
8
12
  //# sourceMappingURL=jest.config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":";AAAA,gEAAgE;AAChE,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE,SAAS;IACjB,eAAe,EAAE,MAAM;IACvB,wBAAwB,EAAE,CAAC,6BAA6B,CAAC;CAC1D,CAAC"}
1
+ {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":";AAAA,gEAAgE;AAChE,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE,SAAS;IACjB,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,IAAI;IACrB,sBAAsB,EAAG;QACvB,mBAAmB;QACnB,mBAAmB;KACpB;CAEF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "web_api_base",
3
- "version": "2.5.4",
3
+ "version": "2.6.0",
4
4
  "description": "web api base",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/readme.md CHANGED
@@ -68,7 +68,94 @@ import Application from './Application';
68
68
  new Application().StartAsync();
69
69
  ```
70
70
 
71
+ ## Dependecy injection service
72
+ Consider this abstraction of a service and some imnplementations
71
73
 
74
+ ### ./services/SampleService.ts
75
+
76
+ ```typescript
77
+ export abstract class SampleServiceAbstract
78
+ {
79
+ abstract DoSomething() : void;
80
+ }
81
+
82
+ export class SampleService extends SampleServiceAbstract
83
+ {
84
+ public DoSomething(): void {
85
+ console.log("Doing in SampleServices");
86
+ }
87
+ }
88
+
89
+ export class AnotherService extends SampleServiceAbstract
90
+ {
91
+ public DoSomething(): void {
92
+ console.log("Doing another job in AnotherService");
93
+ }
94
+ }
95
+ ```
96
+
97
+ We can use the DI service like this
98
+
99
+ ### ./controllers/SampleController.ts
100
+
101
+ ```typescript
102
+
103
+ import { ControllerBase, HTTPVerbs as verbs, Use, Verb, Route, Action } from "web_api_base";
104
+ import {SampleServiceAbstract } from '../services/SampleService.ts';
105
+
106
+ @Route("/sample")
107
+ export default class SampleController extends ControllerBase
108
+ {
109
+ @Inject() // say to DI that this property will be inject on the instance
110
+ public SomeDepency : SampleServiceAbstract;
111
+
112
+ constructor(someDependecy : SampleServiceAbstract)
113
+ {
114
+ super();
115
+ this.SomeDepency = someDependecy ;
116
+ }
117
+
118
+ @Verb(verbs.GET)
119
+ @Action("/hello")
120
+ public Hello() : void
121
+ {
122
+ this.OK({message: "Hello Word!"})
123
+ }
124
+
125
+ }
126
+ ```
127
+
128
+ And we can register our dependecies in Application ConfigureAsync method
129
+
130
+ ### App.ts
131
+
132
+ ```typescript
133
+
134
+ import { Application, IApplicationConfiguration, DependecyService, } from "web_api_base";
135
+
136
+ import { SampleService, SampleServiceAbstract } from './service/SampleService';
137
+
138
+
139
+ export default class App extends Application
140
+ {
141
+ constructor()
142
+ {
143
+ super();
144
+ }
145
+
146
+ public override async ConfigureAsync(appConfig: IApplicationConfiguration): Promise<void>
147
+ {
148
+ this.UseCors();
149
+
150
+ // everytime some class need a SampleServiceAbstract it will get a intance of SampleService
151
+ DependecyService.RegisterFor(SampleServiceAbstract, SampleService);
152
+
153
+ this.UseControllers();
154
+
155
+ }
156
+ }
157
+
158
+ ```
72
159
 
73
160
  ## Contributing
74
161
 
package/dist/App.js DELETED
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const Configuration_1 = __importDefault(require("./Configuration"));
16
- const express_1 = __importDefault(require("express"));
17
- class App {
18
- constructor() {
19
- this.Configuration = new Configuration_1.default();
20
- this.Express = (0, express_1.default)();
21
- }
22
- StartAsync() {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- yield this.Configuration.StartAsync();
25
- this.Express.listen(this.Configuration.Port, this.Configuration.Host, () => {
26
- console.log(`App running on ${this.Configuration.Host}:${this.Configuration.Port}`);
27
- });
28
- });
29
- }
30
- }
31
- exports.default = App;
32
- //# sourceMappingURL=App.js.map
package/dist/App.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../App.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oEAA2C;AAE3C,sDAAsC;AAGtC,MAAqB,GAAG;IAQpB;QAEI,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;QAEzC,IAAI,CAAC,OAAO,GAAG,IAAA,iBAAe,GAAE,CAAC;IACrC,CAAC;IAEY,UAAU;;YAEnB,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;YAEtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAE,EAAE;gBAEtE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YACxF,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;CAEJ;AAzBD,sBAyBC"}
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const fs_1 = __importDefault(require("fs"));
16
- class Configuration {
17
- constructor() {
18
- this.Host = "0.0.0.0";
19
- this.Port = 5432;
20
- process.env["root_dir"] = __dirname;
21
- }
22
- StartAsync() {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- if (!(yield this.CheckFileAsync())) {
25
- yield this.CreateFileAsync();
26
- }
27
- else {
28
- yield this.ReadFileAsync();
29
- }
30
- });
31
- }
32
- CheckFileAsync() {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- return new Promise((resolve, _) => resolve(fs_1.default.existsSync(`${__dirname}\\config.json`)));
35
- });
36
- }
37
- ReadFileAsync() {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- return new Promise((resolve, _) => {
40
- fs_1.default.readFile(`${__dirname}\\config.json`, 'utf-8', (error, data) => {
41
- if (error) {
42
- throw error;
43
- }
44
- let json = JSON.parse(data);
45
- for (let key in this) {
46
- if (json[key] != undefined) {
47
- this[key] = json[key];
48
- }
49
- }
50
- resolve(true);
51
- });
52
- });
53
- });
54
- }
55
- CreateFileAsync() {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- return new Promise((resolve, _) => {
58
- fs_1.default.writeFile(`${__dirname}\\config.json`, JSON.stringify(this), 'utf-8', error => {
59
- if (error) {
60
- throw error;
61
- }
62
- resolve(true);
63
- });
64
- });
65
- });
66
- }
67
- }
68
- exports.default = Configuration;
69
- //# sourceMappingURL=Configuration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Configuration.js","sourceRoot":"","sources":["../Configuration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4CAAsB;AAItB,MAAqB,aAAa;IAM9B;QAHO,SAAI,GAAY,SAAS,CAAC;QAC1B,SAAI,GAAY,IAAI,CAAC;QAIxB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IACxC,CAAC;IAEY,UAAU;;YAEnB,IAAG,CAAC,CAAA,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA,EAC/B;gBACI,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;aAEhC;iBAAI;gBAED,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;aAC9B;QACL,CAAC;KAAA;IAEa,cAAc;;YAExB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,YAAI,CAAC,UAAU,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC;QACvG,CAAC;KAAA;IAEa,aAAa;;YAEvB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;gBAEvC,YAAI,CAAC,QAAQ,CAAC,GAAG,SAAS,eAAe,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBAEhE,IAAG,KAAK,EACR;wBACI,MAAM,KAAK,CAAC;qBACf;oBAED,IAAI,IAAI,GAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAElC,KAAI,IAAI,GAAG,IAAI,IAAI,EACnB;wBACI,IAAG,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EACzB;4BACI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;yBACzB;qBACJ;oBAED,OAAO,CAAC,IAAI,CAAC,CAAC;gBAElB,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEa,eAAe;;YAGzB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,CAAC,EAAC,EAAE;gBAEtC,YAAI,CAAC,SAAS,CAAC,GAAG,SAAS,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;oBAG/E,IAAG,KAAK,EACR;wBACI,MAAM,KAAK,CAAC;qBACf;oBAED,OAAO,CAAC,IAAI,CAAC,CAAC;gBAElB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAA;QAEN,CAAC;KAAA;CAEJ;AA3ED,gCA2EC"}
package/dist/Index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAsD;AAA7C,2HAAA,OAAO,OAAe;AAC/B,uEAAiF;AAAxE,qJAAA,OAAO,OAA4B;AAE5C,sFAAiG;AAAxF,8IAAA,OAAO,OAAyB;AACzC,oEAAmE;AAA1D,gHAAA,cAAc,OAAA;AAEvB,yDAAwD;AAA/C,sGAAA,SAAS,OAAA;AAElB,2EAAqF;AAA5E,qIAAA,OAAO,OAAoB;AAQpC,yGAAkF;AAIlF,SAAgB,GAAG,CAAC,SAAsB;IAEtC,OAAO,8BAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAHD,kBAGC;AAAC,CAAC;AAEH,SAAgB,GAAG,CAAC,SAAsB;IAEtC,OAAO,8BAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC;AAHD,kBAGC;AAAC,CAAC;AAEH,SAAgB,MAAM,CAAC,UAAmB;IAEtC,OAAO,8BAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpD,CAAC;AAHD,wBAGC;AAAC,CAAC;AAEH,SAAgB,KAAK,CAAC,KAAc;IAEhC,OAAO,8BAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9C,CAAC;AAHD,sBAGC;AAAC,CAAC;AAGH,SAAgB,IAAI,CAAC,IAAgB;IAEjC,OAAO,8BAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAHD,oBAGC;AAAC,CAAC;AAMH,SAAgB,QAAQ,CAAiB,QAAiB,EAAE,QAAkB,EAAE,QAAkB,EAAE,QAAkB,EAAE,QAAkB;IAEtI,OAAO,8BAAqB,CAAC,QAAQ,CAAiB,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5G,CAAC;AAHD,4BAGC"}
@@ -1,8 +0,0 @@
1
- import { ControllerBase } from "../../controllers/base/ControllerBase";
2
- import IApplication from "../../interfaces/IApplication";
3
- export declare class ControllerTest extends ControllerBase {
4
- constructor();
5
- TestAction(name: string): void;
6
- TestActionTwo(name: string, age: number): void;
7
- AppendSync(application: IApplication): void;
8
- }
@@ -1,54 +0,0 @@
1
- "use strict";
2
- /* istanbul ignore next */
3
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
4
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6
- 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;
7
- return c > 3 && r && Object.defineProperty(target, key, r), r;
8
- };
9
- var __metadata = (this && this.__metadata) || function (k, v) {
10
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
11
- };
12
- var __importDefault = (this && this.__importDefault) || function (mod) {
13
- return (mod && mod.__esModule) ? mod : { "default": mod };
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.ControllerTest = void 0;
17
- const ControllerBase_1 = require("../../controllers/base/ControllerBase");
18
- const ControllerDecorators_1 = __importDefault(require("../../decorators/controllers/ControllerDecorators"));
19
- const HttpVerbs_1 = require("../../enums/httpVerbs/HttpVerbs");
20
- let ControllerTest = class ControllerTest extends ControllerBase_1.ControllerBase {
21
- constructor() {
22
- super();
23
- }
24
- TestAction(name) {
25
- console.log(name);
26
- }
27
- TestActionTwo(name, age) {
28
- console.log(name, age);
29
- }
30
- AppendSync(application) {
31
- }
32
- };
33
- __decorate([
34
- ControllerDecorators_1.default.Action("Test"),
35
- ControllerDecorators_1.default.Verb(HttpVerbs_1.HTTPVerbs.GET),
36
- ControllerDecorators_1.default.Argument('name'),
37
- __metadata("design:type", Function),
38
- __metadata("design:paramtypes", [String]),
39
- __metadata("design:returntype", void 0)
40
- ], ControllerTest.prototype, "TestAction", null);
41
- __decorate([
42
- ControllerDecorators_1.default.Action("Test"),
43
- ControllerDecorators_1.default.Verb(HttpVerbs_1.HTTPVerbs.GET),
44
- ControllerDecorators_1.default.Argument('name', 'age'),
45
- __metadata("design:type", Function),
46
- __metadata("design:paramtypes", [String, Number]),
47
- __metadata("design:returntype", void 0)
48
- ], ControllerTest.prototype, "TestActionTwo", null);
49
- ControllerTest = __decorate([
50
- ControllerDecorators_1.default.Route("/test"),
51
- __metadata("design:paramtypes", [])
52
- ], ControllerTest);
53
- exports.ControllerTest = ControllerTest;
54
- //# sourceMappingURL=Controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Controller.js","sourceRoot":"","sources":["../../../__tests__/classes/Controller.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;;;;;;;;;;;;;AAE1B,0EAAuE;AACvE,6GAAsF;AACtF,+DAA4D;AAK5D,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,+BAAc;IAE9C;QAEI,KAAK,EAAE,CAAC;IACZ,CAAC;IAKM,UAAU,CAAC,IAAa;QAE3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAKM,aAAa,CAAC,IAAa,EAAE,GAAY;QAE5C,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IAGM,UAAU,CAAC,WAAyB;IAG3C,CAAC;CACJ,CAAA;AAlBG;IAHC,8BAAqB,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,8BAAqB,CAAC,IAAI,CAAC,qBAAS,CAAC,GAAG,CAAC;IACzC,8BAAqB,CAAC,QAAQ,CAAS,MAAM,CAAC;;;;gDAI9C;AAKD;IAHC,8BAAqB,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,8BAAqB,CAAC,IAAI,CAAC,qBAAS,CAAC,GAAG,CAAC;IACzC,8BAAqB,CAAC,QAAQ,CAAiB,MAAM,EAAE,KAAK,CAAC;;;;mDAI7D;AArBQ,cAAc;IAD1B,8BAAqB,CAAC,KAAK,CAAC,OAAO,CAAC;;GACxB,cAAc,CA4B1B;AA5BY,wCAAc"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const Controller_1 = require("../../classes/Controller");
7
- const ControllerDecorators_1 = __importDefault(require("../../../decorators/controllers/ControllerDecorators"));
8
- const HttpVerbs_1 = require("../../../enums/httpVerbs/HttpVerbs");
9
- describe('testing controllers decorators', () => {
10
- test("action name", () => {
11
- var controller = new Controller_1.ControllerTest();
12
- let action = ControllerDecorators_1.default.GetAction(controller, "TestAction");
13
- expect(action).toBe("Test");
14
- }, 10 ^ 5);
15
- test("http verb", () => {
16
- var controller = new Controller_1.ControllerTest();
17
- let verb = ControllerDecorators_1.default.GetVerb(controller, "TestAction");
18
- expect(verb).toBe(HttpVerbs_1.HTTPVerbs.GET);
19
- }, 10 ^ 5);
20
- test("action with one arg", () => {
21
- var controller = new Controller_1.ControllerTest();
22
- var handler = ControllerDecorators_1.default.GetArgumentsHandler(controller, 'TestAction');
23
- var arr = handler === null || handler === void 0 ? void 0 : handler.CreateArgumentsList({ name: "adriano" });
24
- Reflect.apply(controller.TestAction, controller, arr !== null && arr !== void 0 ? arr : []);
25
- expect(arr).not.toBeNull();
26
- }, 10 ^ 5);
27
- test("action with two args", () => {
28
- var controller = new Controller_1.ControllerTest();
29
- var handler = ControllerDecorators_1.default.GetArgumentsHandler(controller, 'TestActionTwo');
30
- var arr = handler === null || handler === void 0 ? void 0 : handler.CreateArgumentsList({ name: "adriano", age: 30 });
31
- Reflect.apply(controller.TestActionTwo, controller, arr !== null && arr !== void 0 ? arr : []);
32
- expect(arr).not.toBeNull();
33
- }, 10 ^ 5);
34
- test("controller route", () => {
35
- var controller = new Controller_1.ControllerTest();
36
- var route = ControllerDecorators_1.default.GetRoute(controller);
37
- expect(route).toBe("/test");
38
- }, 10 ^ 5);
39
- });
40
- //# sourceMappingURL=ControllerDecorators.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControllerDecorators.spec.js","sourceRoot":"","sources":["../../../../__tests__/decorators/controllers/ControllerDecorators.spec.ts"],"names":[],"mappings":";;;;;AAAA,yDAA0D;AAC1D,gHAAyF;AACzF,kEAA+D;AAE/D,QAAQ,CAAC,gCAAgC,EAAE,GAAE,EAAE;IAG3C,IAAI,CAAC,aAAa,EAAE,GAAE,EAAE;QAEpB,IAAI,UAAU,GAAG,IAAI,2BAAc,EAAE,CAAC;QACtC,IAAI,MAAM,GAAG,8BAAqB,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,CAAA;IAEP,IAAI,CAAC,WAAW,EAAE,GAAE,EAAE;QAElB,IAAI,UAAU,GAAG,IAAI,2BAAc,EAAE,CAAC;QACtC,IAAI,IAAI,GAAG,8BAAqB,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAS,CAAC,GAAG,CAAC,CAAC;IAErC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,CAAA;IAEP,IAAI,CAAC,qBAAqB,EAAE,GAAE,EAAE;QAE5B,IAAI,UAAU,GAAG,IAAI,2BAAc,EAAE,CAAC;QAEtC,IAAI,OAAO,GAAG,8BAAqB,CAAC,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAElF,IAAI,GAAG,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,EAAC,IAAI,EAAG,SAAS,EAAC,CAAC,CAAC;QAE3D,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAG/B,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,CAAA;IAGP,IAAI,CAAC,sBAAsB,EAAE,GAAE,EAAE;QAE7B,IAAI,UAAU,GAAG,IAAI,2BAAc,EAAE,CAAC;QAEtC,IAAI,OAAO,GAAG,8BAAqB,CAAC,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAErF,IAAI,GAAG,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,CAAC,EAAC,IAAI,EAAG,SAAS,EAAE,GAAG,EAAG,EAAE,EAAC,CAAC,CAAC;QAErE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,CAAC;QAE/D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAG/B,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,CAAA;IAGP,IAAI,CAAC,kBAAkB,EAAE,GAAE,EAAE;QAEzB,IAAI,UAAU,GAAG,IAAI,2BAAc,EAAE,CAAC;QAEtC,IAAI,KAAK,GAAG,8BAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,CAAC,KAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAGjC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,CAAA;AAEX,CAAC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const fs_1 = __importDefault(require("fs"));
7
- const path_1 = __importDefault(require("path"));
8
- var appCode = `
9
-
10
- import StatusController from "./controllers/StatusController";
11
- import { Application, IApplicationConfiguration, DependecyService, Use} from "web_api_base";
12
-
13
- export default class App extends Application
14
- {
15
- constructor()
16
- {
17
- super();
18
- }
19
-
20
- public override async ConfigureAsync(appConfig: IApplicationConfiguration): Promise<void>
21
- {
22
- this.UseCors();
23
-
24
- this.AddDependencyInjection(appConfig);
25
-
26
- this.UseControllers();
27
-
28
- }
29
-
30
- private AddDependencyInjection(appConfig: IApplicationConfiguration) : void
31
- {
32
- DependecyService.Register(StatusController);
33
- }
34
-
35
-
36
- }`;
37
- (() => {
38
- var _a;
39
- let main = (_a = process.mainModule) === null || _a === void 0 ? void 0 : _a.path;
40
- if (main == undefined) {
41
- console.error("Could not find the root dir");
42
- return;
43
- }
44
- let appFile = path_1.default.join(main, "App.ts");
45
- if (fs_1.default.existsSync(appFile)) {
46
- console.error(`The ${appFile} already exists`);
47
- return;
48
- }
49
- fs_1.default.writeFileSync(appFile, appCode, 'utf-8');
50
- console.log(`web api created`);
51
- })();
52
- //# sourceMappingURL=create-webapi-app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-webapi-app.js","sourceRoot":"","sources":["../../bin/create-webapi-app.ts"],"names":[],"mappings":";;;;;AAAA,4CAAsB;AACtB,gDAAwB;AAExB,IAAI,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BZ,CAAC;AAEH,CAAC,GAAE,EAAE;;IAED,IAAI,IAAI,GAAwB,MAAA,OAAO,CAAC,UAAU,0CAAE,IAAI,CAAC;IAIzD,IAAG,IAAI,IAAI,SAAS,EAAC;QACjB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,OAAO;KACV;IAED,IAAI,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAExC,IAAG,YAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAC;QACxB,OAAO,CAAC,KAAK,CAAC,OAAO,OAAO,iBAAiB,CAAC,CAAC;QAC/C,OAAO;KACV;IAED,YAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE9C,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAEnC,CAAC,CAAC,EAAE,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Application, IApplicationConfiguration } from "../../index";
2
- export default class App extends Application {
3
- constructor();
4
- ConfigureAsync(appConfig: IApplicationConfiguration): Promise<void>;
5
- private AddDependencyInjection;
6
- }