web_api_base 2.6.1 → 2.7.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.
- package/dist/Application.js +0 -5
- package/dist/Application.js.map +1 -1
- package/dist/ApplicationConfiguration.d.ts +3 -0
- package/dist/ApplicationConfiguration.js +48 -0
- package/dist/ApplicationConfiguration.js.map +1 -1
- package/dist/bin/CreateApplication.js +43 -0
- package/dist/bin/CreateApplication.js.map +1 -0
- package/dist/bin/CreateController.js +47 -0
- package/dist/bin/CreateController.js.map +1 -0
- package/dist/controllers/base/ControllerBase.d.ts +3 -1
- package/dist/controllers/base/ControllerBase.js +1 -0
- package/dist/controllers/base/ControllerBase.js.map +1 -1
- package/dist/decorators/controllers/ControllerDecorators.d.ts +2 -2
- package/dist/decorators/controllers/ControllerDecorators.js +12 -4
- package/dist/decorators/controllers/ControllerDecorators.js.map +1 -1
- package/dist/dependencyInjection/DependecyService.d.ts +17 -7
- package/dist/dependencyInjection/DependecyService.js +73 -17
- package/dist/dependencyInjection/DependecyService.js.map +1 -1
- package/dist/dependencyInjection/IDIContext.d.ts +7 -0
- package/dist/dependencyInjection/IDIContext.js +3 -0
- package/dist/dependencyInjection/IDIContext.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/interfaces/IApplicationConfiguration.d.ts +3 -1
- package/package.json +6 -1
- package/readme.md +24 -14
- package/dist/__tests__/classes/ControllerTest.d.ts +0 -10
- package/dist/__tests__/classes/ControllerTest.js +0 -63
- package/dist/__tests__/classes/ControllerTest.js.map +0 -1
- package/dist/__tests__/classes/SampleServiceTest.d.ts +0 -9
- package/dist/__tests__/classes/SampleServiceTest.js +0 -19
- package/dist/__tests__/classes/SampleServiceTest.js.map +0 -1
- package/dist/__tests__/tests/controllers/ControllerDecorators.spec.js +0 -41
- package/dist/__tests__/tests/controllers/ControllerDecorators.spec.js.map +0 -1
- package/dist/__tests__/tests/dependecyInjection/DependecyInjection.spec.js +0 -45
- package/dist/__tests__/tests/dependecyInjection/DependecyInjection.spec.js.map +0 -1
- package/dist/jest.config.d.ts +0 -0
- package/dist/jest.config.js +0 -12
- package/dist/jest.config.js.map +0 -1
- /package/dist/{__tests__/tests/controllers/ControllerDecorators.spec.d.ts → bin/CreateApplication.d.ts} +0 -0
- /package/dist/{__tests__/tests/dependecyInjection/DependecyInjection.spec.d.ts → bin/CreateController.d.ts} +0 -0
package/dist/Application.js
CHANGED
|
@@ -136,11 +136,6 @@ class Application {
|
|
|
136
136
|
pipeline.push({
|
|
137
137
|
Execute: () => {
|
|
138
138
|
pipeline.length - 1 == box.v ? handler(httpRequestContexts[box.v]) : midlewares[box.v](httpRequestContexts[box.v]);
|
|
139
|
-
},
|
|
140
|
-
Next: () => {
|
|
141
|
-
let call = pipeline.length - 1 == box.v ? undefined : pipeline[box.v + 1];
|
|
142
|
-
if (call != undefined)
|
|
143
|
-
call.Execute();
|
|
144
139
|
}
|
|
145
140
|
});
|
|
146
141
|
}
|
package/dist/Application.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../Application.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,0FAAiE;AAIjE,yGAAkF;AAClF,8FAAsE;AACtE,2DAAwD;AAGxD,4CAAsB;AACtB,gDAAwB;AAGxB,MAA8B,WAAW;IAQrC;QAEI,IAAI,CAAC,wBAAwB,GAAG,IAAI,kCAAwB,EAAE,CAAC;QAE/D,IAAI,CAAC,OAAO,GAAG,IAAA,iBAAa,GAAE,CAAC;IAEnC,CAAC;IAGY,UAAU;;YAEnB,
|
|
1
|
+
{"version":3,"file":"Application.js","sourceRoot":"","sources":["../Application.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,0FAAiE;AAIjE,yGAAkF;AAClF,8FAAsE;AACtE,2DAAwD;AAGxD,4CAAsB;AACtB,gDAAwB;AAGxB,MAA8B,WAAW;IAQrC;QAEI,IAAI,CAAC,wBAAwB,GAAG,IAAI,kCAAwB,EAAE,CAAC;QAE/D,IAAI,CAAC,OAAO,GAAG,IAAA,iBAAa,GAAE,CAAC;IAEnC,CAAC;IAGY,UAAU;;YAEnB,MAAO,IAAI,CAAC,wBAAqD,CAAC,UAAU,EAAE,CAAC;YAE/E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAa,CAAC,IAAI,CAAC,EAAC,KAAK,EAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAC,CAAC,CAAC,CAAC;YAEjE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAEzD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,GAAE,EAAE;gBAE5F,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,wBAAwB,CAAC,IAAI,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9G,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAEM,OAAO;QAEV,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAES,cAAc,CAAC,IAAc;QAEnC,OAAO,IAAI,OAAO,CAAO,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YAG/C,IAAI,eAAe,GAAY,cAAI,CAAC,IAAI,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAExG,OAAO,CAAC,KAAK,CAAC,0BAA0B,eAAe,EAAE,CAAC,CAAC;YAE3D,IAAG,CAAC,YAAI,CAAC,UAAU,CAAC,eAAe,CAAC;gBAChC,OAAO;YAEX,IAAI,KAAK,GAAc,YAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YAEtH,KAAI,IAAI,cAAc,IAAI,KAAK,EAC/B;gBACI,IAAG;oBAEH,IAAI,eAAe,GAAG,wDAAa,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,GAAC,CAAC;oBAE/E,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAgB,CAAC;oBAErG,IAAG,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,IAAI,EAChD;wBACI,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;qBACxE;iBAEA;gBAAA,WAAK,GAAE;aACX;YAED,OAAO,EAAE,CAAC;QAGd,CAAC,CAAA,CAAC,CAAA;IAGN,CAAC;IAGS,gBAAgB,CAAwB,IAAoC;QAElF,IAAI,KAAK,GAAG,IAAI,IAAI,EAAS,CAAC;QAE9B,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAE9D,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAE;QAC1C,CAAC,CAAC,CAAA;QAEN,IAAI,KAAK,GAAG,8BAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElD,IAAG,CAAC,KAAK;YACL,OAAO;QAGX,KAAI,IAAI,MAAM,IAAI,OAAO,EACzB;YACI,IAAI,MAAM,GAAG,8BAAqB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEvE,IAAG,CAAC,MAAM,EAAC;gBACP,SAAS;aACZ;YAED,IAAI,IAAI,GAAG,8BAAqB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEnE,IAAG,CAAC,IAAI;gBACJ,IAAI,GAAG,qBAAS,CAAC,GAAG,CAAC;YAEzB,OAAO,CAAC,KAAK,CAAC,aAAa,EAAG,IAAI,EAAC,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;YAEvD,IAAI,CAAC,OAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC,OAAiB,EAAE,QAAmB,EAAE,EAAE;gBAGjH,IAAI,UAAU,GAAG,8BAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBAEtE,UAAU,CAAC,IAAI,CAAC,GAAG,8BAAqB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEzF,IAAI,OAAO,GAAG,CAAC,OAA4B,EAAE,EAAE;oBAE3C,IAAI,IAAI,GAAG,8BAAqB,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC/E,IAAI,MAAM,GAAG,EAAE,CAAC;oBAEhB,IAAG,IAAI,EACP;wBACI,IAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAC5B;4BACI,IAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,qBAAS,CAAC,IAAI,IAAI,IAAI,IAAI,qBAAS,CAAC,GAAG,CAAC;gCACxE,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC5D,IAAG,OAAO,CAAC,OAAO,CAAC,KAAK;gCACpB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;yBACtE;qBACJ;oBAED,IAAI,UAAU,GAAG,0BAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAgB,CAAC;oBAEhF,IAAG,UAAU,IAAI,SAAS;wBACtB,UAAU,GAAG,IAAI,IAAI,EAAiB,CAAC;oBAE3C,0BAAgB,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;oBAE5D,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;oBACrC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;oBACtC,UAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;gBAC3C,CAAC,CAAA;gBAED,IAAG,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EACtC;oBAEI,IAAI,mBAAmB,GAA0B,EAAE,CAAC;oBAEpD,IAAI,QAAQ,GAAW,EAAE,CAAC;oBAE1B,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAC1C;wBAEI,mBAAmB,CAAC,IAAI,CACpB;4BACI,OAAO,EAAG,OAAO;4BACjB,QAAQ,EAAG,QAAQ;4BACnB,IAAI,EAAG,GAAE,EAAE,GAAE,CAAC;yBACjB,CAAC,CAAC;qBAEV;oBAED,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAClD;wBACI,IAAI,GAAG,GACP;4BACI,CAAC,EAAG,CAAC;yBACR,CAAC;wBAGF,QAAQ,CAAC,IAAI,CACT;4BACI,OAAO,EAAG,GAAG,EAAE;gCAEX,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;4BAEvH,CAAC;yBACJ,CAAC,CAAC;qBACV;oBAED,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EACvC;wBACI,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;qBACrG;oBAED,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;iBACzB;qBACG;oBAEA,OAAO,CAAC;wBACJ,OAAO,EAAG,OAAO;wBACjB,QAAQ,EAAG,QAAQ;wBACnB,IAAI,EAAG,GAAG,EAAE,GAAE,CAAC;qBAClB,CAAC,CAAC;iBACN;YAGL,CAAC,CAAC,CAAA;SACL;IAEL,CAAC;CAMJ;AA3MD,8BA2MC"}
|
|
@@ -4,6 +4,9 @@ export default class Configuration implements IApplicationConfiguration {
|
|
|
4
4
|
Port: number;
|
|
5
5
|
RootPath: string;
|
|
6
6
|
constructor();
|
|
7
|
+
AddScoped(type: Function, ctor?: (new (...args: any[]) => any) | undefined, builder?: (() => any) | undefined): void;
|
|
8
|
+
AddTransient(type: Function, ctor?: (new (...args: any[]) => any) | undefined, builder?: (() => any) | undefined): void;
|
|
9
|
+
AddSingleton(type: Function, ctor?: (new (...args: any[]) => any) | undefined, builder?: (() => any) | undefined): void;
|
|
7
10
|
StartAsync(): Promise<void>;
|
|
8
11
|
private CheckFileAsync;
|
|
9
12
|
private ReadFileAsync;
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -13,6 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
36
|
};
|
|
14
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
38
|
const fs_1 = __importDefault(require("fs"));
|
|
39
|
+
const DependecyService_1 = __importStar(require("./dependencyInjection/DependecyService"));
|
|
16
40
|
class Configuration {
|
|
17
41
|
constructor() {
|
|
18
42
|
var _a, _b;
|
|
@@ -20,6 +44,30 @@ class Configuration {
|
|
|
20
44
|
this.Port = 5555;
|
|
21
45
|
this.RootPath = (_b = (_a = process.mainModule) === null || _a === void 0 ? void 0 : _a.path) !== null && _b !== void 0 ? _b : __dirname;
|
|
22
46
|
}
|
|
47
|
+
AddScoped(type, ctor, builder) {
|
|
48
|
+
if (ctor) {
|
|
49
|
+
DependecyService_1.default.RegisterFor(type, ctor, DependecyService_1.DIEscope.SCOPED, builder);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
DependecyService_1.default.Register(type, DependecyService_1.DIEscope.SCOPED, builder);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
AddTransient(type, ctor, builder) {
|
|
56
|
+
if (ctor) {
|
|
57
|
+
DependecyService_1.default.RegisterFor(type, ctor, DependecyService_1.DIEscope.TRANSIENT, builder);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
DependecyService_1.default.Register(type, DependecyService_1.DIEscope.TRANSIENT, builder);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
AddSingleton(type, ctor, builder) {
|
|
64
|
+
if (ctor) {
|
|
65
|
+
DependecyService_1.default.RegisterFor(type, ctor, DependecyService_1.DIEscope.SINGLETON, builder);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
DependecyService_1.default.Register(type, DependecyService_1.DIEscope.SINGLETON, builder);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
23
71
|
StartAsync() {
|
|
24
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
73
|
if (!(yield this.CheckFileAsync())) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationConfiguration.js","sourceRoot":"","sources":["../ApplicationConfiguration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ApplicationConfiguration.js","sourceRoot":"","sources":["../ApplicationConfiguration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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 path_1 = __importDefault(require("path"));
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
var currentDirectoryPath = path_1.default.join(process.cwd());
|
|
9
|
+
var args = process.argv;
|
|
10
|
+
var AppName = "App";
|
|
11
|
+
if (args.length >= 3) {
|
|
12
|
+
AppName = args[2];
|
|
13
|
+
AppName = `${AppName[0].toLocaleUpperCase()}${AppName.substring(1)}`;
|
|
14
|
+
}
|
|
15
|
+
var app = `
|
|
16
|
+
import { Application, IApplicationConfiguration } from "web_api_base";
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
export default class ${AppName} extends Application
|
|
20
|
+
{
|
|
21
|
+
constructor()
|
|
22
|
+
{
|
|
23
|
+
super();
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public override async ConfigureAsync(appConfig: IApplicationConfiguration): Promise<void>
|
|
27
|
+
{
|
|
28
|
+
|
|
29
|
+
this.UseCors();
|
|
30
|
+
|
|
31
|
+
this.UseControllers();
|
|
32
|
+
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
}`;
|
|
37
|
+
if (fs_1.default.existsSync(path_1.default.join(currentDirectoryPath, `${AppName}.ts`)))
|
|
38
|
+
console.log(`The class ${AppName} already exists`);
|
|
39
|
+
else {
|
|
40
|
+
fs_1.default.writeFileSync(path_1.default.join(currentDirectoryPath, `${AppName}.ts`), app, 'utf-8');
|
|
41
|
+
console.log(`The cçass ${AppName} created : ${path_1.default.join(currentDirectoryPath, `${AppName}.ts`)}`);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=CreateApplication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateApplication.js","sourceRoot":"","sources":["../../bin/CreateApplication.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4CAAoB;AAEpB,IAAI,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAEpD,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACxB,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EACnB;IACI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;CACxE;AAED,IAAI,GAAG,GAAG;;;;uBAIa,OAAO;;;;;;;;;;;;;;;;;EAiB5B,CAAC;AAGH,IAAG,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,iBAAiB,CAAC,CAAC;KAEnD;IACI,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,OAAO,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,cAAc,cAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;CACrG"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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 path_1 = __importDefault(require("path"));
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
var currentDirectoryPath = path_1.default.join(process.cwd());
|
|
9
|
+
var args = process.argv;
|
|
10
|
+
var controllerName = "SampleController";
|
|
11
|
+
if (args.length >= 3) {
|
|
12
|
+
controllerName = args[2].trim().toLocaleLowerCase().replace("controller", "");
|
|
13
|
+
controllerName = `${controllerName[0].toLocaleUpperCase()}${controllerName.substring(1)}Controller`;
|
|
14
|
+
}
|
|
15
|
+
var controller = `
|
|
16
|
+
import { ControllerBase, Route, Verb, Action, HTTPVerbs as verbs, Inject, InjectAbstract, Use } from "web_api_base";
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@Route()
|
|
20
|
+
export default class ${controllerName} extends ControllerBase
|
|
21
|
+
{
|
|
22
|
+
|
|
23
|
+
constructor()
|
|
24
|
+
{
|
|
25
|
+
super();
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@Action()
|
|
29
|
+
public Ping() : void
|
|
30
|
+
{
|
|
31
|
+
this.OK({status : "pong"});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}`;
|
|
35
|
+
if (!(currentDirectoryPath.endsWith("controllers/") || currentDirectoryPath.endsWith("controllers"))) {
|
|
36
|
+
if (args.length >= 4 && (args[3] == "--createFolder" || args[3] == "-d"))
|
|
37
|
+
currentDirectoryPath = path_1.default.join(currentDirectoryPath, "controllers");
|
|
38
|
+
if (!fs_1.default.existsSync(currentDirectoryPath))
|
|
39
|
+
fs_1.default.mkdirSync(currentDirectoryPath);
|
|
40
|
+
}
|
|
41
|
+
if (fs_1.default.existsSync(path_1.default.join(currentDirectoryPath, `${controllerName}.ts`)))
|
|
42
|
+
console.log(`The controller ${controllerName} already exists`);
|
|
43
|
+
else {
|
|
44
|
+
fs_1.default.writeFileSync(path_1.default.join(currentDirectoryPath, `${controllerName}.ts`), controller, 'utf-8');
|
|
45
|
+
console.log(`The controller ${controllerName} created : ${path_1.default.join(currentDirectoryPath, `${controllerName}.ts`)}`);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=CreateController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CreateController.js","sourceRoot":"","sources":["../../bin/CreateController.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4CAAoB;AAEpB,IAAI,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAEpD,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACxB,IAAI,cAAc,GAAG,kBAAkB,CAAC;AAExC,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EACnB;IACI,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC9E,cAAc,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;CACvG;AAED,IAAI,UAAU,GAAG;;;;;uBAKM,cAAc;;;;;;;;;;;;;;EAcnC,CAAC;AAEH,IAAG,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EACnG;IACI,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QACnE,oBAAoB,GAAG,cAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;IAC1E,IAAG,CAAC,YAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACnC,YAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;CAC1C;AAED,IAAG,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,cAAc,KAAK,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,iBAAiB,CAAC,CAAC;KAE/D;IACI,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,cAAc,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,cAAc,cAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,cAAc,KAAK,CAAC,EAAE,CAAC,CAAC;CACxH"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import IDIContext, { IDIItem } from "../../dependencyInjection/IDIContext";
|
|
1
2
|
import IController from "../../interfaces/IController";
|
|
2
3
|
import { Request, Response } from 'express';
|
|
3
|
-
export declare class ControllerBase implements IController {
|
|
4
|
+
export declare class ControllerBase implements IController, IDIContext {
|
|
4
5
|
Request: Request;
|
|
5
6
|
Response: Response;
|
|
7
|
+
Intances: IDIItem[];
|
|
6
8
|
constructor();
|
|
7
9
|
OK<T>(result: T): void;
|
|
8
10
|
Created(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerBase.js","sourceRoot":"","sources":["../../../controllers/base/ControllerBase.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ControllerBase.js","sourceRoot":"","sources":["../../../controllers/base/ControllerBase.ts"],"names":[],"mappings":";;;AAKA,MAAa,cAAc;IAMvB;QAJA,YAAO,GAAa,EAAa,CAAC;QAClC,aAAQ,GAAc,EAAc,CAAC;QACrC,aAAQ,GAAc,EAAE,CAAC;IAKzB,CAAC;IAEM,EAAE,CAAI,MAAU;QAEnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEM,OAAO;QAEV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IAEM,UAAU,CAAI,MAAU;QAE3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAI,MAAU;QAEtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEM,YAAY,CAAI,MAAe,EAAE,MAAU;QAE9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CAEJ;AAzCD,wCAyCC"}
|
|
@@ -10,7 +10,7 @@ export default class ControllersDecorators {
|
|
|
10
10
|
private static ArgumentsHandlerKeyMetadata;
|
|
11
11
|
private static ControllerMidlewaresKeyMetadata;
|
|
12
12
|
private static ActionsMidlewaresKeyMetadata;
|
|
13
|
-
static Route(route
|
|
13
|
+
static Route(route?: string): (target: Function) => void;
|
|
14
14
|
static Use(midleware: IMidleware): (target: Function) => void;
|
|
15
15
|
static GetMidlewares(controller: IController): IMidleware[];
|
|
16
16
|
static Before(midleware: IMidleware): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
@@ -18,7 +18,7 @@ export default class ControllersDecorators {
|
|
|
18
18
|
static GetRoute(controller: IController): string | undefined;
|
|
19
19
|
static Verb(verb: HTTPVerbs): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
20
20
|
static GetVerb(target: IController, methodName: string): HTTPVerbs | undefined;
|
|
21
|
-
static Action(actionName
|
|
21
|
+
static Action(actionName?: String): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
22
22
|
static GetAction(target: IController, methodName: string): string | undefined;
|
|
23
23
|
static Argument<T>(argName1: string): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
24
24
|
static Argument<T, U>(argName1: string, argName2?: string): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
@@ -6,7 +6,8 @@ class ControllersDecorators {
|
|
|
6
6
|
}
|
|
7
7
|
static Route(route) {
|
|
8
8
|
return function (target) {
|
|
9
|
-
|
|
9
|
+
let value = route !== null && route !== void 0 ? route : target.name.toLocaleLowerCase().replace("controller", "");
|
|
10
|
+
Reflect.defineMetadata(ControllersDecorators.RouteKeyMetadata, value, target);
|
|
10
11
|
};
|
|
11
12
|
}
|
|
12
13
|
static Use(midleware) {
|
|
@@ -34,7 +35,11 @@ class ControllersDecorators {
|
|
|
34
35
|
return (_a = this.GetMetaData(ControllersDecorators.ActionsMidlewaresKeyMetadata, controller, methodName)) !== null && _a !== void 0 ? _a : [];
|
|
35
36
|
}
|
|
36
37
|
static GetRoute(controller) {
|
|
37
|
-
|
|
38
|
+
let meta = Reflect.getMetadata(ControllersDecorators.RouteKeyMetadata, controller.constructor);
|
|
39
|
+
if (meta && meta[0] != '/') {
|
|
40
|
+
return `/${meta}`.toLocaleLowerCase();
|
|
41
|
+
}
|
|
42
|
+
return meta === null || meta === void 0 ? void 0 : meta.toLocaleLowerCase();
|
|
38
43
|
}
|
|
39
44
|
static Verb(verb) {
|
|
40
45
|
return function (target, methodName, propertyDescriptor) {
|
|
@@ -47,12 +52,15 @@ class ControllersDecorators {
|
|
|
47
52
|
}
|
|
48
53
|
static Action(actionName) {
|
|
49
54
|
return function (target, methodName, propertyDescriptor) {
|
|
50
|
-
ControllersDecorators.SetMetaData(ControllersDecorators.ActionNameKeyMetadata, target, methodName, actionName);
|
|
55
|
+
ControllersDecorators.SetMetaData(ControllersDecorators.ActionNameKeyMetadata, target, methodName, actionName !== null && actionName !== void 0 ? actionName : methodName.toLocaleLowerCase());
|
|
51
56
|
};
|
|
52
57
|
}
|
|
53
58
|
static GetAction(target, methodName) {
|
|
54
59
|
let meta = this.GetMetaData(ControllersDecorators.ActionNameKeyMetadata, target, methodName);
|
|
55
|
-
|
|
60
|
+
if (meta && meta[0] != '/') {
|
|
61
|
+
return `/${meta}`.toLocaleLowerCase();
|
|
62
|
+
}
|
|
63
|
+
return meta === null || meta === void 0 ? void 0 : meta.toLocaleLowerCase();
|
|
56
64
|
}
|
|
57
65
|
static Argument(argName1, argName2, argName3, argName4, argName5, argName6) {
|
|
58
66
|
return function (target, methodName, propertyDescriptor) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerDecorators.js","sourceRoot":"","sources":["../../../decorators/controllers/ControllerDecorators.ts"],"names":[],"mappings":";;AACA,4BAA0B;AAM1B,MAAqB,qBAAqB;IAEtC;IAGA,CAAC;IAUM,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"ControllerDecorators.js","sourceRoot":"","sources":["../../../decorators/controllers/ControllerDecorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,28 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
+
import IDIContext from './IDIContext';
|
|
2
3
|
export default class DependecyService {
|
|
3
4
|
private static _services;
|
|
4
5
|
private static _injectableKey;
|
|
5
6
|
private static _injectableTypeKey;
|
|
6
7
|
static RegisterFor(type: Function, ctor: {
|
|
7
8
|
new (...args: any[]): any;
|
|
8
|
-
}, builder?: () => any): void;
|
|
9
|
-
static Register(type: Function, builder?: () => any): void;
|
|
10
|
-
static
|
|
11
|
-
static
|
|
9
|
+
}, scope?: DIEscope, builder?: () => any): void;
|
|
10
|
+
static Register(type: Function, scope?: DIEscope, builder?: () => any): void;
|
|
11
|
+
private static DefaultObjectBuilder;
|
|
12
|
+
static Resolve<T>(type: Function, context?: IDIContext): T | undefined;
|
|
13
|
+
static ResolveCtor(ctor: Function, context?: IDIContext): any | undefined;
|
|
12
14
|
static Injectable(): (target: Object, property: string | symbol) => void;
|
|
13
15
|
static IsInjectable(target: object, property: string): boolean;
|
|
14
|
-
static InjectOne(
|
|
15
|
-
static GetDIType(target: object, property: string):
|
|
16
|
-
|
|
16
|
+
static InjectOne(cTor: Function): (target: Object, property: string | symbol) => void;
|
|
17
|
+
static GetDIType(target: object, property: string): {
|
|
18
|
+
new (...args: any[]): unknown;
|
|
19
|
+
} | undefined;
|
|
20
|
+
static CheckForDependenciesAndResolve(object: any, context?: IDIContext): void;
|
|
17
21
|
static Build<T extends Function>(Ctor: T): T;
|
|
22
|
+
private static IsDIConext;
|
|
23
|
+
}
|
|
24
|
+
export declare enum DIEscope {
|
|
25
|
+
SCOPED = 0,
|
|
26
|
+
TRANSIENT = 1,
|
|
27
|
+
SINGLETON = 2
|
|
18
28
|
}
|
|
@@ -1,30 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DIEscope = void 0;
|
|
3
4
|
require("reflect-metadata");
|
|
4
5
|
class DependecyService {
|
|
5
|
-
static RegisterFor(type, ctor, builder) {
|
|
6
|
-
let defaultBuilder =
|
|
6
|
+
static RegisterFor(type, ctor, scope, builder) {
|
|
7
|
+
let defaultBuilder = DependecyService.DefaultObjectBuilder(type, ctor);
|
|
7
8
|
let exist = this._services.find(s => s.Type == type);
|
|
8
9
|
if (exist === undefined)
|
|
9
|
-
this._services.push({ Type: type, Builder: builder !== null && builder !== void 0 ? builder : defaultBuilder });
|
|
10
|
-
else
|
|
10
|
+
this._services.push({ Type: type, Builder: builder !== null && builder !== void 0 ? builder : defaultBuilder, Scope: scope !== null && scope !== void 0 ? scope : DIEscope.TRANSIENT });
|
|
11
|
+
else {
|
|
12
|
+
exist.Scope = scope !== null && scope !== void 0 ? scope : exist.Scope;
|
|
11
13
|
exist.Builder = builder !== null && builder !== void 0 ? builder : defaultBuilder;
|
|
14
|
+
}
|
|
12
15
|
}
|
|
13
|
-
static Register(type, builder) {
|
|
14
|
-
let defaultBuilder =
|
|
16
|
+
static Register(type, scope, builder) {
|
|
17
|
+
let defaultBuilder = DependecyService.DefaultObjectBuilder(type);
|
|
15
18
|
let exist = this._services.find(s => s.Type == type);
|
|
16
19
|
if (exist === undefined)
|
|
17
|
-
this._services.push({ Type: type, Builder: builder !== null && builder !== void 0 ? builder : defaultBuilder });
|
|
18
|
-
else
|
|
20
|
+
this._services.push({ Type: type, Builder: builder !== null && builder !== void 0 ? builder : defaultBuilder, Scope: scope !== null && scope !== void 0 ? scope : DIEscope.TRANSIENT });
|
|
21
|
+
else {
|
|
22
|
+
exist.Scope = scope !== null && scope !== void 0 ? scope : exist.Scope;
|
|
19
23
|
exist.Builder = builder !== null && builder !== void 0 ? builder : defaultBuilder;
|
|
24
|
+
}
|
|
20
25
|
}
|
|
21
|
-
static
|
|
22
|
-
|
|
23
|
-
|
|
26
|
+
static DefaultObjectBuilder(type, ctor) {
|
|
27
|
+
return function (context) {
|
|
28
|
+
let service = DependecyService._services.find(u => u.Type == type);
|
|
29
|
+
if (context && context.Intances && (service === null || service === void 0 ? void 0 : service.Scope) == DIEscope.SCOPED) {
|
|
30
|
+
let scopped = context.Intances.filter(s => s.Type == type);
|
|
31
|
+
if (scopped.length > 0 && scopped[0].Object) {
|
|
32
|
+
return scopped[0].Object;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
let insance = Reflect.construct(ctor !== null && ctor !== void 0 ? ctor : type, []);
|
|
36
|
+
DependecyService.CheckForDependenciesAndResolve(insance, (context !== null && context !== void 0 ? context : DependecyService.IsDIConext(insance)) ? insance : undefined);
|
|
37
|
+
return insance;
|
|
38
|
+
};
|
|
24
39
|
}
|
|
25
|
-
static
|
|
26
|
-
|
|
27
|
-
|
|
40
|
+
static Resolve(type, context) {
|
|
41
|
+
let service = this._services.find(u => u.Type == type);
|
|
42
|
+
if (!service)
|
|
43
|
+
return undefined;
|
|
44
|
+
let insance = service.Builder(context);
|
|
45
|
+
if (service.Scope == DIEscope.SINGLETON) {
|
|
46
|
+
service.Builder = () => insance;
|
|
47
|
+
}
|
|
48
|
+
return insance;
|
|
49
|
+
}
|
|
50
|
+
static ResolveCtor(ctor, context) {
|
|
51
|
+
let service = this._services.find(u => u.Type == ctor);
|
|
52
|
+
if (!service)
|
|
53
|
+
return undefined;
|
|
54
|
+
let insance = service.Builder(context);
|
|
55
|
+
if (service.Scope == DIEscope.SINGLETON) {
|
|
56
|
+
service.Builder = () => insance;
|
|
57
|
+
}
|
|
58
|
+
return insance;
|
|
28
59
|
}
|
|
29
60
|
static Injectable() {
|
|
30
61
|
return function (target, property) {
|
|
@@ -37,9 +68,9 @@ class DependecyService {
|
|
|
37
68
|
let type = Reflect.getMetadata(DependecyService._injectableTypeKey, target, property) != undefined;
|
|
38
69
|
return marked || type;
|
|
39
70
|
}
|
|
40
|
-
static InjectOne(
|
|
71
|
+
static InjectOne(cTor) {
|
|
41
72
|
return function (target, property) {
|
|
42
|
-
Reflect.defineMetadata(DependecyService._injectableTypeKey,
|
|
73
|
+
Reflect.defineMetadata(DependecyService._injectableTypeKey, cTor, target.constructor, property);
|
|
43
74
|
};
|
|
44
75
|
}
|
|
45
76
|
static GetDIType(target, property) {
|
|
@@ -48,16 +79,32 @@ class DependecyService {
|
|
|
48
79
|
type = Reflect.getMetadata("design:type", target, property);
|
|
49
80
|
return type;
|
|
50
81
|
}
|
|
51
|
-
static CheckForDependenciesAndResolve(object) {
|
|
82
|
+
static CheckForDependenciesAndResolve(object, context) {
|
|
52
83
|
for (let k of Object.keys(object)) {
|
|
53
84
|
if (object[k] != 'function') {
|
|
54
85
|
if (DependecyService.IsInjectable(object.constructor, k)) {
|
|
55
86
|
let tp = DependecyService.GetDIType(object, k);
|
|
56
87
|
if (tp == undefined)
|
|
57
88
|
throw new Error(`Can not resolve the dependecy of ${object.constructor.name}.${k}`);
|
|
89
|
+
let service = this._services.find(u => u.Type == tp);
|
|
90
|
+
if (context && context.Intances && (service === null || service === void 0 ? void 0 : service.Scope) == DIEscope.SCOPED) {
|
|
91
|
+
let scopped = context.Intances.filter(s => s.Type == tp);
|
|
92
|
+
if (scopped.length > 0 && scopped[0]) {
|
|
93
|
+
object[k] = scopped[0].Object;
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
58
97
|
let instance = DependecyService.Resolve(tp);
|
|
59
98
|
if (instance == undefined)
|
|
60
99
|
throw new Error(`Can not resolve the dependecy of ${object.constructor.name}.${k}`);
|
|
100
|
+
if (DependecyService.IsDIConext(object) && (service === null || service === void 0 ? void 0 : service.Scope) == DIEscope.SCOPED) {
|
|
101
|
+
if (!object.Intances)
|
|
102
|
+
object.Intances = [];
|
|
103
|
+
object.Intances.push({
|
|
104
|
+
Object: instance,
|
|
105
|
+
Type: tp
|
|
106
|
+
});
|
|
107
|
+
}
|
|
61
108
|
object[k] = instance;
|
|
62
109
|
}
|
|
63
110
|
}
|
|
@@ -68,9 +115,18 @@ class DependecyService {
|
|
|
68
115
|
this.CheckForDependenciesAndResolve(object);
|
|
69
116
|
return object;
|
|
70
117
|
}
|
|
118
|
+
static IsDIConext(object) {
|
|
119
|
+
return "Intances" in object;
|
|
120
|
+
}
|
|
71
121
|
}
|
|
72
122
|
exports.default = DependecyService;
|
|
73
123
|
DependecyService._services = [];
|
|
74
124
|
DependecyService._injectableKey = "di:injectable";
|
|
75
125
|
DependecyService._injectableTypeKey = "di:injectable-type";
|
|
126
|
+
var DIEscope;
|
|
127
|
+
(function (DIEscope) {
|
|
128
|
+
DIEscope[DIEscope["SCOPED"] = 0] = "SCOPED";
|
|
129
|
+
DIEscope[DIEscope["TRANSIENT"] = 1] = "TRANSIENT";
|
|
130
|
+
DIEscope[DIEscope["SINGLETON"] = 2] = "SINGLETON";
|
|
131
|
+
})(DIEscope = exports.DIEscope || (exports.DIEscope = {}));
|
|
76
132
|
//# sourceMappingURL=DependecyService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependecyService.js","sourceRoot":"","sources":["../../dependencyInjection/DependecyService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DependecyService.js","sourceRoot":"","sources":["../../dependencyInjection/DependecyService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IDIContext.js","sourceRoot":"","sources":["../../dependencyInjection/IDIContext.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,10 +13,10 @@ import IMidleware from "./midlewares/IMidleware";
|
|
|
13
13
|
export declare function Use(midleware: IMidleware): (target: Function) => void;
|
|
14
14
|
export declare function Run(midleware: IMidleware): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
15
15
|
export declare function Action(actionName: String): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
16
|
-
export declare function Route(route
|
|
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
18
|
export declare function Inject(): (target: Object, property: string | symbol) => void;
|
|
19
|
-
export declare function InjectAbstract(
|
|
19
|
+
export declare function InjectAbstract(cTor: Function): (target: Object, property: string | symbol) => void;
|
|
20
20
|
export declare function Argument<T>(argName1: string): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
21
21
|
export declare function Argument<T, U>(argName1: string, argName2?: string): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
|
22
22
|
export declare function Argument<T, U, K>(argName1: string, argName2?: string, argName3?: string): (target: Object, methodName: string, propertyDescriptor: PropertyDescriptor) => void;
|
package/dist/index.js
CHANGED
|
@@ -47,8 +47,8 @@ function Inject() {
|
|
|
47
47
|
return DependecyService_2.default.Injectable();
|
|
48
48
|
}
|
|
49
49
|
exports.Inject = Inject;
|
|
50
|
-
function InjectAbstract(
|
|
51
|
-
return DependecyService_2.default.InjectOne(
|
|
50
|
+
function InjectAbstract(cTor) {
|
|
51
|
+
return DependecyService_2.default.InjectOne(cTor);
|
|
52
52
|
}
|
|
53
53
|
exports.InjectAbstract = InjectAbstract;
|
|
54
54
|
function Argument(argName1, argName2, argName3, argName4, argName5) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +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,
|
|
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,KAAe;IAEjC,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,IAAe;IAE1C,OAAO,0BAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5C,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"}
|
|
@@ -2,5 +2,7 @@ export default interface IApplicationConfiguration {
|
|
|
2
2
|
Host: string;
|
|
3
3
|
Port: number;
|
|
4
4
|
RootPath: string;
|
|
5
|
-
|
|
5
|
+
AddScoped(type: Function, ctor?: (new (...args: any[]) => any) | undefined, builder?: (() => any) | undefined): void;
|
|
6
|
+
AddTransient(type: Function, ctor?: (new (...args: any[]) => any) | undefined, builder?: (() => any) | undefined): void;
|
|
7
|
+
AddSingleton(type: Function, ctor?: (new (...args: any[]) => any) | undefined, builder?: (() => any) | undefined): void;
|
|
6
8
|
}
|
package/package.json
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "web_api_base",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "web api base",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
8
|
"/dist"
|
|
9
9
|
],
|
|
10
|
+
"bin":
|
|
11
|
+
{
|
|
12
|
+
"create-controller" : "./dist/bin/CreateController.js",
|
|
13
|
+
"create-application" : "./dist/bin/CreateApplication.js"
|
|
14
|
+
},
|
|
10
15
|
"scripts": {
|
|
11
16
|
"test": "jest",
|
|
12
17
|
"debug": "node ./dist/Index.js",
|
package/readme.md
CHANGED
|
@@ -18,17 +18,23 @@ After that, we need to create some controllers and they must inherit the abstra
|
|
|
18
18
|
|
|
19
19
|
### ./controllers/SampleController.ts
|
|
20
20
|
|
|
21
|
+
We can create a controller using the __create-controller__ command :
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx create-controller "SampleController" -d
|
|
25
|
+
```
|
|
26
|
+
Where "SampleController" is the controller name and "__-d__" is the flag to create inside the __controller__ folder. If the folder not exists, the folder will be created.
|
|
27
|
+
|
|
21
28
|
```typescript
|
|
22
29
|
|
|
23
|
-
import { ControllerBase,
|
|
30
|
+
import { ControllerBase, Route, Action } from "web_api_base";
|
|
24
31
|
|
|
25
32
|
|
|
26
|
-
@Route(
|
|
33
|
+
@Route()
|
|
27
34
|
export default class SampleController extends ControllerBase
|
|
28
35
|
{
|
|
29
|
-
|
|
30
|
-
@
|
|
31
|
-
@Action("/hello")
|
|
36
|
+
|
|
37
|
+
@Action()
|
|
32
38
|
public Hello() : void
|
|
33
39
|
{
|
|
34
40
|
this.OK({message: "Hello Word!"})
|
|
@@ -38,7 +44,12 @@ export default class SampleController extends ControllerBase
|
|
|
38
44
|
```
|
|
39
45
|
|
|
40
46
|
### App.ts
|
|
47
|
+
We can create a app using the __create-application__ command :
|
|
41
48
|
|
|
49
|
+
```bash
|
|
50
|
+
npx create-application "App"
|
|
51
|
+
```
|
|
52
|
+
Where "App" is the application name.
|
|
42
53
|
```typescript
|
|
43
54
|
import SampleController from "./controllers/SampleController ";
|
|
44
55
|
|
|
@@ -68,7 +79,7 @@ import Application from './Application';
|
|
|
68
79
|
new Application().StartAsync();
|
|
69
80
|
```
|
|
70
81
|
|
|
71
|
-
## Dependecy
|
|
82
|
+
## Dependecy Injection
|
|
72
83
|
Consider this abstraction of a service and some imnplementations
|
|
73
84
|
|
|
74
85
|
### ./services/SampleService.ts
|
|
@@ -100,10 +111,10 @@ We can use the DI service like this
|
|
|
100
111
|
|
|
101
112
|
```typescript
|
|
102
113
|
|
|
103
|
-
import { ControllerBase,
|
|
114
|
+
import { ControllerBase, Route, Action, Inject } from "web_api_base";
|
|
104
115
|
import {SampleServiceAbstract } from '../services/SampleService.ts';
|
|
105
116
|
|
|
106
|
-
@Route(
|
|
117
|
+
@Route()
|
|
107
118
|
export default class SampleController extends ControllerBase
|
|
108
119
|
{
|
|
109
120
|
@Inject() // say to DI that this property will be inject on the instance
|
|
@@ -114,9 +125,8 @@ export default class SampleController extends ControllerBase
|
|
|
114
125
|
super();
|
|
115
126
|
this.SomeDepency = someDependecy ;
|
|
116
127
|
}
|
|
117
|
-
|
|
118
|
-
@
|
|
119
|
-
@Action("/hello")
|
|
128
|
+
|
|
129
|
+
@Action()
|
|
120
130
|
public Hello() : void
|
|
121
131
|
{
|
|
122
132
|
this.OK({message: "Hello Word!"})
|
|
@@ -131,7 +141,7 @@ And we can register our dependecies in Application ConfigureAsync method
|
|
|
131
141
|
|
|
132
142
|
```typescript
|
|
133
143
|
|
|
134
|
-
import { Application, IApplicationConfiguration
|
|
144
|
+
import { Application, IApplicationConfiguration} from "web_api_base";
|
|
135
145
|
|
|
136
146
|
import { SampleService, SampleServiceAbstract } from './service/SampleService';
|
|
137
147
|
|
|
@@ -147,8 +157,8 @@ export default class App extends Application
|
|
|
147
157
|
{
|
|
148
158
|
this.UseCors();
|
|
149
159
|
|
|
150
|
-
//
|
|
151
|
-
|
|
160
|
+
//DI AddScoped, AddTransient and AddSingleton
|
|
161
|
+
App.AddScoped(SampleServiceAbstract, SampleService);
|
|
152
162
|
|
|
153
163
|
this.UseControllers();
|
|
154
164
|
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,63 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.ControllerTest = void 0;
|
|
14
|
-
const SampleServiceTest_1 = require("./SampleServiceTest");
|
|
15
|
-
const index_1 = require("../../index");
|
|
16
|
-
let ControllerTest = class ControllerTest extends index_1.ControllerBase {
|
|
17
|
-
constructor(some) {
|
|
18
|
-
super();
|
|
19
|
-
this.SomeDepency = some;
|
|
20
|
-
this.AnotherDepency = some;
|
|
21
|
-
this._somePrivateDepency = some;
|
|
22
|
-
}
|
|
23
|
-
TestAction(name) {
|
|
24
|
-
console.log(name);
|
|
25
|
-
}
|
|
26
|
-
TestActionTwo(name, age) {
|
|
27
|
-
console.log(name, age);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
__decorate([
|
|
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'),
|
|
46
|
-
__metadata("design:type", Function),
|
|
47
|
-
__metadata("design:paramtypes", [String]),
|
|
48
|
-
__metadata("design:returntype", void 0)
|
|
49
|
-
], ControllerTest.prototype, "TestAction", null);
|
|
50
|
-
__decorate([
|
|
51
|
-
(0, index_1.Action)("Test"),
|
|
52
|
-
(0, index_1.Verb)(index_1.HTTPVerbs.GET),
|
|
53
|
-
(0, index_1.Argument)('name', 'age'),
|
|
54
|
-
__metadata("design:type", Function),
|
|
55
|
-
__metadata("design:paramtypes", [String, Number]),
|
|
56
|
-
__metadata("design:returntype", void 0)
|
|
57
|
-
], ControllerTest.prototype, "TestActionTwo", null);
|
|
58
|
-
ControllerTest = __decorate([
|
|
59
|
-
(0, index_1.Route)("/test"),
|
|
60
|
-
__metadata("design:paramtypes", [SampleServiceTest_1.SampleServiceAbstract])
|
|
61
|
-
], ControllerTest);
|
|
62
|
-
exports.ControllerTest = ControllerTest;
|
|
63
|
-
//# sourceMappingURL=ControllerTest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,41 +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 ControllerTest_1 = require("../../classes/ControllerTest");
|
|
7
|
-
const ControllerDecorators_1 = __importDefault(require("../../../decorators/controllers/ControllerDecorators"));
|
|
8
|
-
const HttpVerbs_1 = require("../../../enums/httpVerbs/HttpVerbs");
|
|
9
|
-
const SampleServiceTest_1 = require("../../classes/SampleServiceTest");
|
|
10
|
-
describe('testing controllers decorators', () => {
|
|
11
|
-
test("action name", () => {
|
|
12
|
-
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
13
|
-
let action = ControllerDecorators_1.default.GetAction(controller, "TestAction");
|
|
14
|
-
expect(action).toBe("Test");
|
|
15
|
-
}, 10 ^ 5);
|
|
16
|
-
test("http verb", () => {
|
|
17
|
-
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
18
|
-
let verb = ControllerDecorators_1.default.GetVerb(controller, "TestAction");
|
|
19
|
-
expect(verb).toBe(HttpVerbs_1.HTTPVerbs.GET);
|
|
20
|
-
}, 10 ^ 5);
|
|
21
|
-
test("action with one arg", () => {
|
|
22
|
-
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
23
|
-
var handler = ControllerDecorators_1.default.GetArgumentsHandler(controller, 'TestAction');
|
|
24
|
-
var arr = handler === null || handler === void 0 ? void 0 : handler.CreateArgumentsList({ name: "adriano" });
|
|
25
|
-
Reflect.apply(controller.TestAction, controller, arr !== null && arr !== void 0 ? arr : []);
|
|
26
|
-
expect(arr).not.toBeNull();
|
|
27
|
-
}, 10 ^ 5);
|
|
28
|
-
test("action with two args", () => {
|
|
29
|
-
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
30
|
-
var handler = ControllerDecorators_1.default.GetArgumentsHandler(controller, 'TestActionTwo');
|
|
31
|
-
var arr = handler === null || handler === void 0 ? void 0 : handler.CreateArgumentsList({ name: "adriano", age: 30 });
|
|
32
|
-
Reflect.apply(controller.TestActionTwo, controller, arr !== null && arr !== void 0 ? arr : []);
|
|
33
|
-
expect(arr).not.toBeNull();
|
|
34
|
-
}, 10 ^ 5);
|
|
35
|
-
test("controller route", () => {
|
|
36
|
-
var controller = new ControllerTest_1.ControllerTest(new SampleServiceTest_1.SampleService());
|
|
37
|
-
var route = ControllerDecorators_1.default.GetRoute(controller);
|
|
38
|
-
expect(route).toBe("/test");
|
|
39
|
-
}, 10 ^ 5);
|
|
40
|
-
});
|
|
41
|
-
//# sourceMappingURL=ControllerDecorators.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,45 +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 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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/jest.config.d.ts
DELETED
|
File without changes
|
package/dist/jest.config.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
|
|
3
|
-
module.exports = {
|
|
4
|
-
preset: 'ts-jest',
|
|
5
|
-
testEnvironment: 'node',
|
|
6
|
-
collectCoverage: true,
|
|
7
|
-
testPathIgnorePatterns: [
|
|
8
|
-
"__tests__/classes",
|
|
9
|
-
"__test__/*/*.d.ts"
|
|
10
|
-
]
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=jest.config.js.map
|
package/dist/jest.config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
File without changes
|
|
File without changes
|