web_api_base 2.5.4 → 2.6.1
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.
- package/dist/Application.js +1 -0
- package/dist/Application.js.map +1 -1
- package/dist/__tests__/classes/ControllerTest.d.ts +10 -0
- package/dist/__tests__/classes/{Controller.js → ControllerTest.js} +28 -19
- package/dist/__tests__/classes/ControllerTest.js.map +1 -0
- package/dist/__tests__/classes/SampleServiceTest.d.ts +9 -0
- package/dist/__tests__/classes/SampleServiceTest.js +19 -0
- package/dist/__tests__/classes/SampleServiceTest.js.map +1 -0
- package/dist/__tests__/{decorators → tests}/controllers/ControllerDecorators.spec.js +7 -6
- package/dist/__tests__/tests/controllers/ControllerDecorators.spec.js.map +1 -0
- package/dist/__tests__/tests/dependecyInjection/DependecyInjection.spec.js +45 -0
- package/dist/__tests__/tests/dependecyInjection/DependecyInjection.spec.js.map +1 -0
- package/dist/dependencyInjection/DependecyService.d.ts +9 -0
- package/dist/dependencyInjection/DependecyService.js +55 -2
- package/dist/dependencyInjection/DependecyService.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/{Index.js → index.js} +10 -1
- package/dist/index.js.map +1 -0
- package/dist/jest.config.js +5 -1
- package/dist/jest.config.js.map +1 -1
- package/package.json +11 -12
- package/readme.md +87 -0
- package/dist/App.js +0 -32
- package/dist/App.js.map +0 -1
- package/dist/Configuration.js +0 -69
- package/dist/Configuration.js.map +0 -1
- package/dist/Index.js.map +0 -1
- package/dist/__tests__/classes/Controller.d.ts +0 -8
- package/dist/__tests__/classes/Controller.js.map +0 -1
- package/dist/__tests__/decorators/controllers/ControllerDecorators.spec.js.map +0 -1
- package/dist/bin/create-webapi-app.js +0 -52
- package/dist/bin/create-webapi-app.js.map +0 -1
- package/dist/bin/temp/Application.d.ts +0 -6
- package/dist/bin/temp/Application.js +0 -33
- package/dist/bin/temp/Application.js.map +0 -1
- package/dist/bin/temp/Index.d.ts +0 -1
- package/dist/bin/temp/Index.js +0 -8
- package/dist/bin/temp/Index.js.map +0 -1
- package/dist/bin/temp/controllers/StatusController.d.ts +0 -5
- package/dist/bin/temp/controllers/StatusController.js +0 -33
- package/dist/bin/temp/controllers/StatusController.js.map +0 -1
- package/dist/config.json +0 -1
- package/dist/controllers/FileController.js +0 -162
- package/dist/controllers/FileController.js.map +0 -1
- package/dist/controllers/StatusController.js +0 -44
- package/dist/controllers/StatusController.js.map +0 -1
- package/dist/decorators/dependencyInjection/DependecyInjectionDecorators.d.ts +0 -13
- package/dist/decorators/dependencyInjection/DependecyInjectionDecorators.js +0 -32
- package/dist/decorators/dependencyInjection/DependecyInjectionDecorators.js.map +0 -1
- package/dist/interfaces/entities/IDirectory.d.ts +0 -5
- package/dist/interfaces/entities/IDirectory.js +0 -3
- package/dist/interfaces/entities/IDirectory.js.map +0 -1
- package/dist/services/FileService.js +0 -45
- package/dist/services/FileService.js.map +0 -1
- package/dist/services/IFileService.js +0 -8
- package/dist/services/IFileService.js.map +0 -1
- package/dist/services/fileService/FileService.d.ts +0 -10
- package/dist/services/fileService/FileService.js +0 -96
- package/dist/services/fileService/FileService.js.map +0 -1
- package/dist/services/fileService/FileServiceBase.d.ts +0 -10
- package/dist/services/fileService/FileServiceBase.js +0 -7
- package/dist/services/fileService/FileServiceBase.js.map +0 -1
- package/dist/temp/Application.d.ts +0 -6
- package/dist/temp/Application.js +0 -33
- package/dist/temp/Application.js.map +0 -1
- package/dist/temp/Index.d.ts +0 -1
- package/dist/temp/Index.js +0 -8
- package/dist/temp/Index.js.map +0 -1
- package/dist/temp/controllers/StatusController.d.ts +0 -6
- package/dist/temp/controllers/StatusController.js +0 -34
- package/dist/temp/controllers/StatusController.js.map +0 -1
- /package/dist/__tests__/{decorators → tests}/controllers/ControllerDecorators.spec.d.ts +0 -0
- /package/dist/{bin/create-webapi-app.d.ts → __tests__/tests/dependecyInjection/DependecyInjection.spec.d.ts} +0 -0
package/dist/Application.js
CHANGED
|
@@ -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);
|
package/dist/Application.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SampleServiceAbstract } from "./SampleServiceTest";
|
|
2
|
+
import { ControllerBase } from '../../index';
|
|
3
|
+
export declare class ControllerTest extends ControllerBase {
|
|
4
|
+
SomeDepency: SampleServiceAbstract;
|
|
5
|
+
AnotherDepency: SampleServiceAbstract;
|
|
6
|
+
private _somePrivateDepency;
|
|
7
|
+
constructor(some: SampleServiceAbstract);
|
|
8
|
+
TestAction(name: string): void;
|
|
9
|
+
TestActionTwo(name: string, age: number): void;
|
|
10
|
+
}
|
|
@@ -9,17 +9,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
9
9
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
10
10
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
11
11
|
};
|
|
12
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
-
};
|
|
15
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
13
|
exports.ControllerTest = void 0;
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
constructor() {
|
|
14
|
+
const SampleServiceTest_1 = require("./SampleServiceTest");
|
|
15
|
+
const index_1 = require("../../index");
|
|
16
|
+
let ControllerTest = class ControllerTest extends index_1.ControllerBase {
|
|
17
|
+
constructor(some) {
|
|
22
18
|
super();
|
|
19
|
+
this.SomeDepency = some;
|
|
20
|
+
this.AnotherDepency = some;
|
|
21
|
+
this._somePrivateDepency = some;
|
|
23
22
|
}
|
|
24
23
|
TestAction(name) {
|
|
25
24
|
console.log(name);
|
|
@@ -27,28 +26,38 @@ let ControllerTest = class ControllerTest extends ControllerBase_1.ControllerBas
|
|
|
27
26
|
TestActionTwo(name, age) {
|
|
28
27
|
console.log(name, age);
|
|
29
28
|
}
|
|
30
|
-
AppendSync(application) {
|
|
31
|
-
}
|
|
32
29
|
};
|
|
33
30
|
__decorate([
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
(0, index_1.Inject)(),
|
|
32
|
+
__metadata("design:type", SampleServiceTest_1.SampleServiceAbstract)
|
|
33
|
+
], ControllerTest.prototype, "SomeDepency", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, index_1.InjectAbstract)(SampleServiceTest_1.SampleServiceAbstract),
|
|
36
|
+
__metadata("design:type", SampleServiceTest_1.SampleServiceAbstract)
|
|
37
|
+
], ControllerTest.prototype, "AnotherDepency", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, index_1.Inject)(),
|
|
40
|
+
__metadata("design:type", SampleServiceTest_1.SampleServiceAbstract)
|
|
41
|
+
], ControllerTest.prototype, "_somePrivateDepency", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
(0, index_1.Action)("Test"),
|
|
44
|
+
(0, index_1.Verb)(index_1.HTTPVerbs.GET),
|
|
45
|
+
(0, index_1.Argument)('name'),
|
|
37
46
|
__metadata("design:type", Function),
|
|
38
47
|
__metadata("design:paramtypes", [String]),
|
|
39
48
|
__metadata("design:returntype", void 0)
|
|
40
49
|
], ControllerTest.prototype, "TestAction", null);
|
|
41
50
|
__decorate([
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
(0, index_1.Action)("Test"),
|
|
52
|
+
(0, index_1.Verb)(index_1.HTTPVerbs.GET),
|
|
53
|
+
(0, index_1.Argument)('name', 'age'),
|
|
45
54
|
__metadata("design:type", Function),
|
|
46
55
|
__metadata("design:paramtypes", [String, Number]),
|
|
47
56
|
__metadata("design:returntype", void 0)
|
|
48
57
|
], ControllerTest.prototype, "TestActionTwo", null);
|
|
49
58
|
ControllerTest = __decorate([
|
|
50
|
-
|
|
51
|
-
__metadata("design:paramtypes", [])
|
|
59
|
+
(0, index_1.Route)("/test"),
|
|
60
|
+
__metadata("design:paramtypes", [SampleServiceTest_1.SampleServiceAbstract])
|
|
52
61
|
], ControllerTest);
|
|
53
62
|
exports.ControllerTest = ControllerTest;
|
|
54
|
-
//# sourceMappingURL=
|
|
63
|
+
//# sourceMappingURL=ControllerTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControllerTest.js","sourceRoot":"","sources":["../../../__tests__/classes/ControllerTest.ts"],"names":[],"mappings":";AAAA,0BAA0B;;;;;;;;;;;;AAE1B,2DAA4D;AAE5D,uCAA2H;AAG3H,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,sBAAc;IAY9C,YAAY,IAA4B;QAEpC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACpC,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;CAEJ,CAAA;AAhCG;IADC,IAAA,cAAM,GAAE;8BACY,yCAAqB;mDAAC;AAG3C;IADC,IAAA,sBAAc,EAAC,yCAAqB,CAAC;8BACd,yCAAqB;sDAAC;AAG9C;IADC,IAAA,cAAM,GAAE;8BACqB,yCAAqB;2DAAC;AAapD;IAHC,IAAA,cAAM,EAAC,MAAM,CAAC;IACd,IAAA,YAAI,EAAC,iBAAS,CAAC,GAAG,CAAC;IACnB,IAAA,gBAAQ,EAAS,MAAM,CAAC;;;;gDAIxB;AAKD;IAHC,IAAA,cAAM,EAAC,MAAM,CAAC;IACd,IAAA,YAAI,EAAC,iBAAS,CAAC,GAAG,CAAC;IACnB,IAAA,gBAAQ,EAAiB,MAAM,EAAE,KAAK,CAAC;;;;mDAIvC;AAlCQ,cAAc;IAD1B,IAAA,aAAK,EAAC,OAAO,CAAC;qCAaQ,yCAAqB;GAZ/B,cAAc,CAoC1B;AApCY,wCAAc"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare abstract class SampleServiceAbstract {
|
|
2
|
+
abstract DoSomething(): void;
|
|
3
|
+
}
|
|
4
|
+
export declare class SampleService extends SampleServiceAbstract {
|
|
5
|
+
DoSomething(): void;
|
|
6
|
+
}
|
|
7
|
+
export declare class AnotherService extends SampleServiceAbstract {
|
|
8
|
+
DoSomething(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AnotherService = exports.SampleService = exports.SampleServiceAbstract = void 0;
|
|
4
|
+
class SampleServiceAbstract {
|
|
5
|
+
}
|
|
6
|
+
exports.SampleServiceAbstract = SampleServiceAbstract;
|
|
7
|
+
class SampleService extends SampleServiceAbstract {
|
|
8
|
+
DoSomething() {
|
|
9
|
+
console.log("Doing in SampleServices");
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.SampleService = SampleService;
|
|
13
|
+
class AnotherService extends SampleServiceAbstract {
|
|
14
|
+
DoSomething() {
|
|
15
|
+
console.log("Doing another job in AnotherService");
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.AnotherService = AnotherService;
|
|
19
|
+
//# sourceMappingURL=SampleServiceTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SampleServiceTest.js","sourceRoot":"","sources":["../../../__tests__/classes/SampleServiceTest.ts"],"names":[],"mappings":";;;AAAA,MAAsB,qBAAqB;CAG1C;AAHD,sDAGC;AAID,MAAa,aAAc,SAAQ,qBAAqB;IAE7C,WAAW;QACd,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;CACJ;AALD,sCAKC;AAID,MAAa,cAAe,SAAQ,qBAAqB;IAE9C,WAAW;QACd,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;CACJ;AALD,wCAKC"}
|
|
@@ -3,36 +3,37 @@ 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
|
-
const
|
|
6
|
+
const ControllerTest_1 = require("../../classes/ControllerTest");
|
|
7
7
|
const ControllerDecorators_1 = __importDefault(require("../../../decorators/controllers/ControllerDecorators"));
|
|
8
8
|
const HttpVerbs_1 = require("../../../enums/httpVerbs/HttpVerbs");
|
|
9
|
+
const SampleServiceTest_1 = require("../../classes/SampleServiceTest");
|
|
9
10
|
describe('testing controllers decorators', () => {
|
|
10
11
|
test("action name", () => {
|
|
11
|
-
var controller = new
|
|
12
|
+
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
12
13
|
let action = ControllerDecorators_1.default.GetAction(controller, "TestAction");
|
|
13
14
|
expect(action).toBe("Test");
|
|
14
15
|
}, 10 ^ 5);
|
|
15
16
|
test("http verb", () => {
|
|
16
|
-
var controller = new
|
|
17
|
+
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
17
18
|
let verb = ControllerDecorators_1.default.GetVerb(controller, "TestAction");
|
|
18
19
|
expect(verb).toBe(HttpVerbs_1.HTTPVerbs.GET);
|
|
19
20
|
}, 10 ^ 5);
|
|
20
21
|
test("action with one arg", () => {
|
|
21
|
-
var controller = new
|
|
22
|
+
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
22
23
|
var handler = ControllerDecorators_1.default.GetArgumentsHandler(controller, 'TestAction');
|
|
23
24
|
var arr = handler === null || handler === void 0 ? void 0 : handler.CreateArgumentsList({ name: "adriano" });
|
|
24
25
|
Reflect.apply(controller.TestAction, controller, arr !== null && arr !== void 0 ? arr : []);
|
|
25
26
|
expect(arr).not.toBeNull();
|
|
26
27
|
}, 10 ^ 5);
|
|
27
28
|
test("action with two args", () => {
|
|
28
|
-
var controller = new
|
|
29
|
+
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
29
30
|
var handler = ControllerDecorators_1.default.GetArgumentsHandler(controller, 'TestActionTwo');
|
|
30
31
|
var arr = handler === null || handler === void 0 ? void 0 : handler.CreateArgumentsList({ name: "adriano", age: 30 });
|
|
31
32
|
Reflect.apply(controller.TestActionTwo, controller, arr !== null && arr !== void 0 ? arr : []);
|
|
32
33
|
expect(arr).not.toBeNull();
|
|
33
34
|
}, 10 ^ 5);
|
|
34
35
|
test("controller route", () => {
|
|
35
|
-
var controller = new
|
|
36
|
+
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
36
37
|
var route = ControllerDecorators_1.default.GetRoute(controller);
|
|
37
38
|
expect(route).toBe("/test");
|
|
38
39
|
}, 10 ^ 5);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControllerDecorators.spec.js","sourceRoot":"","sources":["../../../../__tests__/tests/controllers/ControllerDecorators.spec.ts"],"names":[],"mappings":";;;;;AAAA,iEAA8D;AAC9D,gHAAyF;AACzF,kEAA+D;AAC/D,uEAAgE;AAEhE,QAAQ,CAAC,gCAAgC,EAAE,GAAE,EAAE;IAG3C,IAAI,CAAC,aAAa,EAAE,GAAE,EAAE;QAEpB,IAAI,UAAU,GAAG,IAAI,+BAAc,CAAC,IAAI,iCAAa,EAAE,CAAC,CAAC;QACzD,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,+BAAc,CAAC,IAAI,iCAAa,EAAE,CAAC,CAAC;QACzD,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,+BAAc,CAAC,IAAI,iCAAa,EAAE,CAAC,CAAC;QAEzD,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,+BAAc,CAAC,IAAI,iCAAa,EAAE,CAAC,CAAC;QAEzD,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,+BAAc,CAAC,IAAI,iCAAa,EAAE,CAAC,CAAC;QAEzD,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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
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 ControllerTest_1 = require("../../classes/ControllerTest");
|
|
7
|
+
const SampleServiceTest_1 = require("../../classes/SampleServiceTest");
|
|
8
|
+
const DependecyService_1 = __importDefault(require("../../../dependencyInjection/DependecyService"));
|
|
9
|
+
describe("testing the dependecy injection service", () => {
|
|
10
|
+
DependecyService_1.default.RegisterFor(SampleServiceTest_1.SampleServiceAbstract, SampleServiceTest_1.SampleService);
|
|
11
|
+
test("testing the creation of a controller", () => {
|
|
12
|
+
let controller = DependecyService_1.default.Build(ControllerTest_1.ControllerTest);
|
|
13
|
+
expect(controller).not.toBeNull();
|
|
14
|
+
});
|
|
15
|
+
test("testing Inject decorator", () => {
|
|
16
|
+
let controller = DependecyService_1.default.Build(ControllerTest_1.ControllerTest);
|
|
17
|
+
expect(controller).not.toBeNull();
|
|
18
|
+
expect(controller.SomeDepency).not.toBeNull();
|
|
19
|
+
expect(controller.SomeDepency instanceof SampleServiceTest_1.SampleService).toBeTruthy();
|
|
20
|
+
});
|
|
21
|
+
test("testing InjectAbstract decorator", () => {
|
|
22
|
+
let controller = DependecyService_1.default.Build(ControllerTest_1.ControllerTest);
|
|
23
|
+
expect(controller).not.toBeNull();
|
|
24
|
+
expect(controller.AnotherDepency).not.toBeNull();
|
|
25
|
+
expect(controller.AnotherDepency instanceof SampleServiceTest_1.SampleService).toBeTruthy();
|
|
26
|
+
});
|
|
27
|
+
test("testing injection on a private property", () => {
|
|
28
|
+
let controller = DependecyService_1.default.Build(ControllerTest_1.ControllerTest);
|
|
29
|
+
let prop = Reflect.get(controller, "_somePrivateDepency");
|
|
30
|
+
expect(prop).not.toBeNull();
|
|
31
|
+
expect(prop instanceof SampleServiceTest_1.SampleService).toBeTruthy();
|
|
32
|
+
});
|
|
33
|
+
test("test change implementation of a abstract class on DI service", () => {
|
|
34
|
+
let controller1 = DependecyService_1.default.Build(ControllerTest_1.ControllerTest);
|
|
35
|
+
DependecyService_1.default.RegisterFor(SampleServiceTest_1.SampleServiceAbstract, SampleServiceTest_1.AnotherService);
|
|
36
|
+
let controller2 = DependecyService_1.default.Build(ControllerTest_1.ControllerTest);
|
|
37
|
+
expect(controller1).not.toBeNull();
|
|
38
|
+
expect(controller1.AnotherDepency).not.toBeNull();
|
|
39
|
+
expect(controller1.AnotherDepency instanceof SampleServiceTest_1.SampleService).toBeTruthy();
|
|
40
|
+
expect(controller2).not.toBeNull();
|
|
41
|
+
expect(controller2.AnotherDepency).not.toBeNull();
|
|
42
|
+
expect(controller2.AnotherDepency instanceof SampleServiceTest_1.AnotherService).toBeTruthy();
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=DependecyInjection.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DependecyInjection.spec.js","sourceRoot":"","sources":["../../../../__tests__/tests/dependecyInjection/DependecyInjection.spec.ts"],"names":[],"mappings":";;;;;AAAA,iEAA8D;AAC9D,uEAAuG;AACvG,qGAA6E;AAK7E,QAAQ,CAAC,yCAAyC,EAAE,GAAE,EAAE;IAEpD,0BAAgB,CAAC,WAAW,CAAC,yCAAqB,EAAE,iCAAa,CAAC,CAAC;IAEnE,IAAI,CAAC,sCAAsC,EAAE,GAAE,EAAE;QAE7C,IAAI,UAAU,GAAG,0BAAgB,CAAC,KAAK,CAAC,+BAAc,CAA8B,CAAC;QAErF,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAEtC,CAAC,CAAC,CAAC;IAGH,IAAI,CAAC,0BAA0B,EAAE,GAAE,EAAE;QAEjC,IAAI,UAAU,GAAG,0BAAgB,CAAC,KAAK,CAAC,+BAAc,CAA8B,CAAC;QAErF,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAElC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,WAAW,YAAY,iCAAa,CAAC,CAAC,UAAU,EAAE,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE,GAAE,EAAE;QAEzC,IAAI,UAAU,GAAG,0BAAgB,CAAC,KAAK,CAAC,+BAAc,CAA8B,CAAC;QAErF,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAElC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEjD,MAAM,CAAC,UAAU,CAAC,cAAc,YAAY,iCAAa,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IAGH,IAAI,CAAC,yCAAyC,EAAE,GAAE,EAAE;QAEhD,IAAI,UAAU,GAAG,0BAAgB,CAAC,KAAK,CAAC,+BAAc,CAA8B,CAAC;QAErF,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;QAE1D,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,YAAY,iCAAa,CAAC,CAAC,UAAU,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAGH,IAAI,CAAC,8DAA8D,EAAE,GAAE,EAAE;QAErE,IAAI,WAAW,GAAG,0BAAgB,CAAC,KAAK,CAAC,+BAAc,CAA8B,CAAC;QAEtF,0BAAgB,CAAC,WAAW,CAAC,yCAAqB,EAAE,kCAAc,CAAC,CAAC;QAEpE,IAAI,WAAW,GAAG,0BAAgB,CAAC,KAAK,CAAC,+BAAc,CAA8B,CAAC;QAEtF,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAElD,MAAM,CAAC,WAAW,CAAC,cAAc,YAAY,iCAAa,CAAC,CAAC,UAAU,EAAE,CAAC;QAEzE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAElD,MAAM,CAAC,WAAW,CAAC,cAAc,YAAY,kCAAc,CAAC,CAAC,UAAU,EAAE,CAAC;IAE9E,CAAC,CAAC,CAAC;AAGP,CAAC,CAAC,CAAC"}
|
|
@@ -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.
|
|
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.
|
|
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;
|
|
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"}
|
package/dist/jest.config.js
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
module.exports = {
|
|
4
4
|
preset: 'ts-jest',
|
|
5
5
|
testEnvironment: 'node',
|
|
6
|
-
|
|
6
|
+
collectCoverage: true,
|
|
7
|
+
testPathIgnorePatterns: [
|
|
8
|
+
"__tests__/classes",
|
|
9
|
+
"__test__/*/*.d.ts"
|
|
10
|
+
]
|
|
7
11
|
};
|
|
8
12
|
//# sourceMappingURL=jest.config.js.map
|
package/dist/jest.config.js.map
CHANGED
|
@@ -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,
|
|
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.
|
|
3
|
+
"version": "2.6.1",
|
|
4
4
|
"description": "web api base",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,22 +16,21 @@
|
|
|
16
16
|
"author": "adriano.marino1992@gmail.com",
|
|
17
17
|
"repository": "https://github.com/adrianomarino1992/web_api_base.git",
|
|
18
18
|
"license": "ISC",
|
|
19
|
-
"dependencies": {
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"cors": "^2.8.5",
|
|
21
|
+
"express": "^4.18.2",
|
|
22
|
+
"platform-folders": "^0.6.0",
|
|
23
|
+
"reflect-metadata": "^0.1.13"
|
|
24
|
+
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
20
27
|
"@types/express": "^4.17.15",
|
|
21
28
|
"@types/jest": "^29.2.4",
|
|
22
29
|
"@types/node": "^18.11.17",
|
|
23
30
|
"@types/reflect-metadata": "^0.1.0",
|
|
24
|
-
"cors": "^2.8.5",
|
|
25
|
-
"express": "^4.18.2",
|
|
26
|
-
"formidable": "^2.1.1",
|
|
27
31
|
"jest": "^29.3.1",
|
|
28
|
-
"platform-folders": "^0.6.0",
|
|
29
|
-
"reflect-metadata": "^0.1.13",
|
|
30
32
|
"ts-jest": "^29.0.3",
|
|
31
|
-
"ts-node": "^10.9.1"
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
"devDependencies": {
|
|
35
|
-
"@types/formidable": "^2.0.5"
|
|
33
|
+
"ts-node": "^10.9.1"
|
|
34
|
+
|
|
36
35
|
}
|
|
37
36
|
}
|
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"}
|