web_api_base 2.6.2 → 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.d.ts +1 -0
- package/dist/bin/CreateApplication.js +43 -0
- package/dist/bin/CreateApplication.js.map +1 -0
- package/dist/bin/CreateController.d.ts +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.js +4 -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 +1 -1
- 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/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":"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"}
|
|
@@ -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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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"}
|
|
@@ -37,9 +37,9 @@ class ControllersDecorators {
|
|
|
37
37
|
static GetRoute(controller) {
|
|
38
38
|
let meta = Reflect.getMetadata(ControllersDecorators.RouteKeyMetadata, controller.constructor);
|
|
39
39
|
if (meta && meta[0] != '/') {
|
|
40
|
-
return `/${meta}
|
|
40
|
+
return `/${meta}`.toLocaleLowerCase();
|
|
41
41
|
}
|
|
42
|
-
return meta;
|
|
42
|
+
return meta === null || meta === void 0 ? void 0 : meta.toLocaleLowerCase();
|
|
43
43
|
}
|
|
44
44
|
static Verb(verb) {
|
|
45
45
|
return function (target, methodName, propertyDescriptor) {
|
|
@@ -58,9 +58,9 @@ class ControllersDecorators {
|
|
|
58
58
|
static GetAction(target, methodName) {
|
|
59
59
|
let meta = this.GetMetaData(ControllersDecorators.ActionNameKeyMetadata, target, methodName);
|
|
60
60
|
if (meta && meta[0] != '/') {
|
|
61
|
-
return `/${meta}
|
|
61
|
+
return `/${meta}`.toLocaleLowerCase();
|
|
62
62
|
}
|
|
63
|
-
return meta;
|
|
63
|
+
return meta === null || meta === void 0 ? void 0 : meta.toLocaleLowerCase();
|
|
64
64
|
}
|
|
65
65
|
static Argument(argName1, argName2, argName3, argName4, argName5, argName6) {
|
|
66
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,KAAe;QAE/B,OAAO,UAAU,MAAiB;YAE9B,IAAI,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,YAAY,EAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAElF,CAAC,CAAA;IACL,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,SAAsB;QAEpC,OAAO,UAAU,MAAiB;;YAE9B,IAAI,OAAO,GAAkB,MAAA,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,+BAA+B,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;YAEtH,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAExB,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,+BAA+B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACnG,CAAC,CAAA;IACL,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,UAAwB;;QAEjD,OAAO,MAAA,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,+BAA+B,EAAE,UAAU,CAAC,WAAW,CAAC,mCAAI,EAAE,CAAC;IACnH,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,SAAsB;QAEvC,OAAO,UAAU,MAAe,EAAE,UAAmB,EAAE,kBAAuC;;YAE1F,IAAI,OAAO,GAAkB,MAAA,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,4BAA4B,EAAE,MAAM,EAAE,UAAU,CAAC,mCAAI,EAAE,CAAC;YAE/H,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAExB,qBAAqB,CAAC,WAAW,CAAC,qBAAqB,CAAC,4BAA4B,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAEvH,CAAC,CAAA;IACL,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,UAAwB,EAAE,UAAmB;;QAEnE,OAAO,MAAA,IAAI,CAAC,WAAW,CAAe,qBAAqB,CAAC,4BAA4B,EAAE,UAAU,EAAE,UAAU,CAAC,mCAAI,EAAE,CAAC;IAC3H,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,UAAwB;QAE5C,IAAI,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAE/F,IAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EACzB;YACK,OAAO,IAAI,IAAI,EAAE,CAAC;
|
|
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,KAAe;QAE/B,OAAO,UAAU,MAAiB;YAE9B,IAAI,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,YAAY,EAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAElF,CAAC,CAAA;IACL,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,SAAsB;QAEpC,OAAO,UAAU,MAAiB;;YAE9B,IAAI,OAAO,GAAkB,MAAA,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,+BAA+B,EAAE,MAAM,CAAC,mCAAI,EAAE,CAAC;YAEtH,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAExB,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,+BAA+B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACnG,CAAC,CAAA;IACL,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,UAAwB;;QAEjD,OAAO,MAAA,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,+BAA+B,EAAE,UAAU,CAAC,WAAW,CAAC,mCAAI,EAAE,CAAC;IACnH,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,SAAsB;QAEvC,OAAO,UAAU,MAAe,EAAE,UAAmB,EAAE,kBAAuC;;YAE1F,IAAI,OAAO,GAAkB,MAAA,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,4BAA4B,EAAE,MAAM,EAAE,UAAU,CAAC,mCAAI,EAAE,CAAC;YAE/H,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAExB,qBAAqB,CAAC,WAAW,CAAC,qBAAqB,CAAC,4BAA4B,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAEvH,CAAC,CAAA;IACL,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,UAAwB,EAAE,UAAmB;;QAEnE,OAAO,MAAA,IAAI,CAAC,WAAW,CAAe,qBAAqB,CAAC,4BAA4B,EAAE,UAAU,EAAE,UAAU,CAAC,mCAAI,EAAE,CAAC;IAC3H,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,UAAwB;QAE5C,IAAI,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,gBAAgB,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QAE/F,IAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EACzB;YACK,OAAO,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;SAC1C;QAED,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,EAAE,CAAC;IAEpC,CAAC;IAGM,MAAM,CAAC,IAAI,CAAC,IAAgB;QAE/B,OAAO,UAAU,MAAe,EAAE,UAAmB,EAAE,kBAAuC;YAE1F,qBAAqB,CAAC,WAAW,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAE7G,CAAC,CAAA;IACL,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,MAAoB,EAAE,UAAmB;QAE3D,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAY,qBAAqB,CAAC,qBAAqB,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAExG,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,UAAoB;QAErC,OAAO,UAAU,MAAe,EAAE,UAAmB,EAAE,kBAAuC;YAE1F,qBAAqB,CAAC,WAAW,CAAC,qBAAqB,CAAC,qBAAqB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAErJ,CAAC,CAAA;IACL,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,MAAoB,EAAE,UAAmB;QAE7D,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAS,qBAAqB,CAAC,qBAAqB,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAErG,IAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EACzB;YACI,OAAO,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;SACzC;QAED,OAAO,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,iBAAiB,EAAE,CAAC;IACrC,CAAC;IAQM,MAAM,CAAC,QAAQ,CAAmB,QAAiB,EAAE,QAAiB,EAAE,QAAkB,EAAE,QAAkB,EAAE,QAAkB,EAAE,QAAkB;QAEzJ,OAAO,UAAU,MAAe,EAAE,UAAmB,EAAE,kBAAuC;YAE1F,qBAAqB,CAAC,WAAW,CAAC,qBAAqB,CAAC,2BAA2B,EAAE,MAAM,EAAE,UAAU,EACnG;gBAGI,SAAS,EAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBAExE,mBAAmB,EAAG,CAAC,IAAU,EAAE,EAAE;oBAEjC,IAAI,OAAO,GAAG,EAAW,CAAC;oBAG1B,IAAI,QAAQ,IAAK,IAAI,CAAC,QAAQ,CAAkB,IAAI,SAAS;wBACzD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAM,CAAC;oBAErC,IAAI,QAAQ,IAAK,IAAI,CAAC,QAAQ,CAAkB,IAAI,SAAS;wBACzD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAM,CAAC;oBAErC,IAAI,QAAQ,IAAK,IAAI,CAAC,QAAQ,CAAkB,IAAI,SAAS;wBACzD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAM,CAAC;oBAErC,IAAI,QAAQ,IAAK,IAAI,CAAC,QAAQ,CAAkB,IAAI,SAAS;wBACzD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAM,CAAC;oBAErC,IAAI,QAAQ,IAAK,IAAI,CAAC,QAAQ,CAAkB,IAAI,SAAS;wBACzD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAM,CAAC;oBAErC,IAAI,QAAQ,IAAK,IAAI,CAAC,QAAQ,CAAkB,IAAI,SAAS;wBACzD,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAM,CAAC;oBAErC,OAAO,OAAO,CAAC;gBAEnB,CAAC;aACJ,CAAC,CAAC;QAEX,CAAC,CAAA;IACL,CAAC;IAIM,MAAM,CAAC,mBAAmB,CAAC,MAAoB,EAAE,UAAmB;QAEvE,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAA2B,qBAAqB,CAAC,2BAA2B,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAEhI,OAAO,OAAO,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,WAAW,CAAI,GAAW,EAAE,MAAe,EAAE,UAAmB,EAAE,KAAS;QAEtF,IAAI,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,MAAgB,EAAE,UAAU,CAAC,CAAC;QAErE,IAAG,CAAC,IAAI;YACJ,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,MAAgB,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC;IAGO,MAAM,CAAC,WAAW,CAAI,GAAW,EAAE,MAAe,EAAE,UAAmB;QAE3E,IAAI,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAExD,IAAG,IAAI,IAAI,SAAS;YAChB,OAAO,IAAS,CAAC;;YAEjB,OAAO,SAAS,CAAC;IACzB,CAAC;;AAxLL,wCA0LC;AAnLkB,sCAAgB,GAAG,sBAAsB,CAAC;AAC1C,2CAAqB,GAAG,iBAAiB,CAAC;AAC1C,2CAAqB,GAAG,iBAAiB,CAAC;AAC1C,iDAA2B,GAAG,iBAAiB,CAAC;AAChD,qDAA+B,GAAG,8BAA8B,CAAC;AACjE,kDAA4B,GAAG,0BAA0B,CAAC"}
|
|
@@ -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
|
@@ -16,7 +16,7 @@ export declare function Action(actionName: String): (target: Object, methodName:
|
|
|
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
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,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,
|
|
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
|
|