@gaias/basenode 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +12 -0
- package/.drone.yml +54 -0
- package/.eslintignore +4 -0
- package/.ncurc.json +8 -0
- package/Dockerfile +15 -0
- package/README.adoc +44 -0
- package/README.md +47 -0
- package/dist/deps/Libs.d.ts +10 -0
- package/dist/deps/Libs.js +46 -0
- package/dist/deps/Libs.js.map +1 -0
- package/dist/deps/index.d.ts +1 -0
- package/dist/deps/index.js +18 -0
- package/dist/deps/index.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/libs/ApiGatewayLoader.d.ts +3 -0
- package/dist/libs/ApiGatewayLoader.js +82 -0
- package/dist/libs/ApiGatewayLoader.js.map +1 -0
- package/dist/libs/ApiRegisterController.d.ts +12 -0
- package/dist/libs/ApiRegisterController.js +245 -0
- package/dist/libs/ApiRegisterController.js.map +1 -0
- package/dist/libs/ApplicationConfig.d.ts +12 -0
- package/dist/libs/ApplicationConfig.js +3 -0
- package/dist/libs/ApplicationConfig.js.map +1 -0
- package/dist/libs/BizError.d.ts +8 -0
- package/dist/libs/BizError.js +14 -0
- package/dist/libs/BizError.js.map +1 -0
- package/dist/libs/CacheService.d.ts +57 -0
- package/dist/libs/CacheService.js +309 -0
- package/dist/libs/CacheService.js.map +1 -0
- package/dist/libs/ConfigManager.d.ts +19 -0
- package/dist/libs/ConfigManager.js +52 -0
- package/dist/libs/ConfigManager.js.map +1 -0
- package/dist/libs/Converter.d.ts +32 -0
- package/dist/libs/Converter.js +148 -0
- package/dist/libs/Converter.js.map +1 -0
- package/dist/libs/CurrentUserToken.d.ts +7 -0
- package/dist/libs/CurrentUserToken.js +3 -0
- package/dist/libs/CurrentUserToken.js.map +1 -0
- package/dist/libs/DistributedEvents.d.ts +13 -0
- package/dist/libs/DistributedEvents.js +102 -0
- package/dist/libs/DistributedEvents.js.map +1 -0
- package/dist/libs/DistributedEventsLoader.d.ts +6 -0
- package/dist/libs/DistributedEventsLoader.js +30 -0
- package/dist/libs/DistributedEventsLoader.js.map +1 -0
- package/dist/libs/EventsManager.d.ts +16 -0
- package/dist/libs/EventsManager.js +56 -0
- package/dist/libs/EventsManager.js.map +1 -0
- package/dist/libs/HealthCheckController.d.ts +24 -0
- package/dist/libs/HealthCheckController.js +83 -0
- package/dist/libs/HealthCheckController.js.map +1 -0
- package/dist/libs/HttpMethods.d.ts +8 -0
- package/dist/libs/HttpMethods.js +80 -0
- package/dist/libs/HttpMethods.js.map +1 -0
- package/dist/libs/IdGenerator.d.ts +1 -0
- package/dist/libs/IdGenerator.js +7 -0
- package/dist/libs/IdGenerator.js.map +1 -0
- package/dist/libs/KoaControllerReturnHandler.d.ts +6 -0
- package/dist/libs/KoaControllerReturnHandler.js +83 -0
- package/dist/libs/KoaControllerReturnHandler.js.map +1 -0
- package/dist/libs/KoaLoader.d.ts +20 -0
- package/dist/libs/KoaLoader.js +177 -0
- package/dist/libs/KoaLoader.js.map +1 -0
- package/dist/libs/Leader.d.ts +39 -0
- package/dist/libs/Leader.js +145 -0
- package/dist/libs/Leader.js.map +1 -0
- package/dist/libs/Logger.d.ts +8 -0
- package/dist/libs/Logger.js +48 -0
- package/dist/libs/Logger.js.map +1 -0
- package/dist/libs/Pagination.d.ts +23 -0
- package/dist/libs/Pagination.js +120 -0
- package/dist/libs/Pagination.js.map +1 -0
- package/dist/libs/RedisClient.d.ts +15 -0
- package/dist/libs/RedisClient.js +84 -0
- package/dist/libs/RedisClient.js.map +1 -0
- package/dist/libs/RedisLoader.d.ts +3 -0
- package/dist/libs/RedisLoader.js +31 -0
- package/dist/libs/RedisLoader.js.map +1 -0
- package/dist/libs/ResRegTypes.d.ts +17 -0
- package/dist/libs/ResRegTypes.js +3 -0
- package/dist/libs/ResRegTypes.js.map +1 -0
- package/dist/libs/Timer.d.ts +13 -0
- package/dist/libs/Timer.js +62 -0
- package/dist/libs/Timer.js.map +1 -0
- package/dist/libs/TypeormLoader.d.ts +8 -0
- package/dist/libs/TypeormLoader.js +49 -0
- package/dist/libs/TypeormLoader.js.map +1 -0
- package/dist/libs/ValidationHelper.d.ts +13 -0
- package/dist/libs/ValidationHelper.js +73 -0
- package/dist/libs/ValidationHelper.js.map +1 -0
- package/dist/libs/apisix/ApisixTemplate.d.ts +6 -0
- package/dist/libs/apisix/ApisixTemplate.js +88 -0
- package/dist/libs/apisix/ApisixTemplate.js.map +1 -0
- package/dist/libs/apisix/HttpPutter.d.ts +1 -0
- package/dist/libs/apisix/HttpPutter.js +51 -0
- package/dist/libs/apisix/HttpPutter.js.map +1 -0
- package/dist/libs/apisix/index.d.ts +2 -0
- package/dist/libs/apisix/index.js +19 -0
- package/dist/libs/apisix/index.js.map +1 -0
- package/dist/libs/i18nValidator.d.ts +3 -0
- package/dist/libs/i18nValidator.js +38 -0
- package/dist/libs/i18nValidator.js.map +1 -0
- package/dist/libs/index.d.ts +28 -0
- package/dist/libs/index.js +45 -0
- package/dist/libs/index.js.map +1 -0
- package/dist/libs/types.d.ts +3 -0
- package/dist/libs/types.js +3 -0
- package/dist/libs/types.js.map +1 -0
- package/dist/server/bootstrap.d.ts +14 -0
- package/dist/server/bootstrap.js +63 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +18 -0
- package/dist/server/index.js.map +1 -0
- package/dist/utils/YamlUtil.d.ts +1 -0
- package/dist/utils/YamlUtil.js +43 -0
- package/dist/utils/YamlUtil.js.map +1 -0
- package/dist/utils/crypto.d.ts +9 -0
- package/dist/utils/crypto.js +34 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/jwtUtil.d.ts +9 -0
- package/dist/utils/jwtUtil.js +41 -0
- package/dist/utils/jwtUtil.js.map +1 -0
- package/dist/utils/transformer.d.ts +9 -0
- package/dist/utils/transformer.js +44 -0
- package/dist/utils/transformer.js.map +1 -0
- package/gen_db.json +7 -0
- package/package.json +127 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
var DistributedEvents_1;
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.DistributedEvents = void 0;
|
|
23
|
+
const amqplib_1 = __importDefault(require("amqplib"));
|
|
24
|
+
const eventemitter3_1 = __importDefault(require("eventemitter3"));
|
|
25
|
+
const typedi_1 = require("typedi");
|
|
26
|
+
const Logger_1 = require("./Logger");
|
|
27
|
+
const EVENTS_EXCHANGE = 'BizEvents';
|
|
28
|
+
const DEAD_LETTER_EXCHANGE = 'BizEventDeadLetter';
|
|
29
|
+
const DEAD_LETTER_QUEUE = 'DeadLetters';
|
|
30
|
+
const DEAD_LETTER_ROUTING_KEY = 'DeadLetter';
|
|
31
|
+
let DistributedEvents = DistributedEvents_1 = class DistributedEvents extends eventemitter3_1.default {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(...arguments);
|
|
34
|
+
this.logger = Logger_1.Logger.getLogger(DistributedEvents_1);
|
|
35
|
+
}
|
|
36
|
+
static open(config, queueName) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
const conn = yield amqplib_1.default.connect(config.connection);
|
|
39
|
+
const channel = yield conn.createChannel();
|
|
40
|
+
const events = new DistributedEvents_1();
|
|
41
|
+
events.channel = channel;
|
|
42
|
+
events.queueName = queueName;
|
|
43
|
+
yield channel.assertExchange(DEAD_LETTER_EXCHANGE, 'direct', { durable: true });
|
|
44
|
+
yield channel.assertQueue(queueName, {
|
|
45
|
+
durable: true,
|
|
46
|
+
arguments: {
|
|
47
|
+
'x-dead-letter-exchange': DEAD_LETTER_EXCHANGE,
|
|
48
|
+
'x-dead-letter-routing-key': DEAD_LETTER_ROUTING_KEY,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
yield channel.assertQueue(DEAD_LETTER_QUEUE, {
|
|
52
|
+
durable: true,
|
|
53
|
+
});
|
|
54
|
+
yield channel.assertExchange(EVENTS_EXCHANGE, 'topic', { durable: true });
|
|
55
|
+
yield channel.bindQueue(DEAD_LETTER_QUEUE, DEAD_LETTER_EXCHANGE, DEAD_LETTER_ROUTING_KEY);
|
|
56
|
+
return events;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
sub(events) {
|
|
60
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
yield Promise.all(events.map((event) => this.channel.bindQueue(this.queueName, EVENTS_EXCHANGE, event)));
|
|
62
|
+
this.channel.consume(this.queueName, (msg) => {
|
|
63
|
+
if (msg) {
|
|
64
|
+
const eventName = msg.properties.headers['x-eventName'];
|
|
65
|
+
const content = msg.content.toString();
|
|
66
|
+
const data = JSON.parse(content);
|
|
67
|
+
try {
|
|
68
|
+
this.logger.debug(`Received event: ${eventName}, Content: ${content}`);
|
|
69
|
+
this.emit('RemoteEvent', eventName, data);
|
|
70
|
+
this.channel.ack(msg);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
this.logger.debug(`Message rejected: ${eventName} with error: ${error}`);
|
|
74
|
+
this.channel.reject(msg, !msg.fields.redelivered);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
pub(event, data) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
this.channel.publish(EVENTS_EXCHANGE, event, Buffer.from(JSON.stringify(data)), {
|
|
83
|
+
contentEncoding: 'UTF-8',
|
|
84
|
+
contentType: 'text/json',
|
|
85
|
+
deliveryMode: 2,
|
|
86
|
+
headers: {
|
|
87
|
+
'x-eventName': event,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
close() {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
yield this.channel.close();
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
DistributedEvents = DistributedEvents_1 = __decorate([
|
|
99
|
+
(0, typedi_1.Service)()
|
|
100
|
+
], DistributedEvents);
|
|
101
|
+
exports.DistributedEvents = DistributedEvents;
|
|
102
|
+
//# sourceMappingURL=DistributedEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DistributedEvents.js","sourceRoot":"","sources":["../../../src/libs/DistributedEvents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { MicroframeworkSettings } from 'microframework';
|
|
2
|
+
import { ClassType } from './types';
|
|
3
|
+
export declare type DistributedEventsLoaderOption = {
|
|
4
|
+
eventsHandlers?: ClassType[];
|
|
5
|
+
};
|
|
6
|
+
export declare const distributedEventsLoader: (option: DistributedEventsLoaderOption) => (settings?: MicroframeworkSettings) => Promise<void>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.distributedEventsLoader = void 0;
|
|
13
|
+
const typedi_1 = require("typedi");
|
|
14
|
+
const _1 = require(".");
|
|
15
|
+
const ConfigManager_1 = require("./ConfigManager");
|
|
16
|
+
const DistributedEvents_1 = require("./DistributedEvents");
|
|
17
|
+
const Logger_1 = require("./Logger");
|
|
18
|
+
const distributedEventsLoader = (option) => (settings) => {
|
|
19
|
+
const appCfg = ConfigManager_1.ConfigManager.getConfig('application');
|
|
20
|
+
const rabbitmqCfg = ConfigManager_1.ConfigManager.getConfig('rabbitmq');
|
|
21
|
+
return DistributedEvents_1.DistributedEvents.open(rabbitmqCfg, appCfg.appName).then((events) => {
|
|
22
|
+
typedi_1.Container.set(DistributedEvents_1.DistributedEvents, events);
|
|
23
|
+
settings === null || settings === void 0 ? void 0 : settings.onShutdown(() => __awaiter(void 0, void 0, void 0, function* () { return events.close(); }));
|
|
24
|
+
return _1.EventsManager.start(events, option.eventsHandlers).then(() => {
|
|
25
|
+
Logger_1.Logger.getLogger('DistributedEventsLoader').info(`🔗RabbitMQ connected.`);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
exports.distributedEventsLoader = distributedEventsLoader;
|
|
30
|
+
//# sourceMappingURL=DistributedEventsLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DistributedEventsLoader.js","sourceRoot":"","sources":["../../../src/libs/DistributedEventsLoader.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAmC;AACnC,wBAAqD;AACrD,mDAAgD;AAChD,2DAAwE;AACxE,qCAAkC;AAQ3B,MAAM,uBAAuB,GAAG,CAAC,MAAqC,EAAE,EAAE,CAAC,CAAC,QAAiC,EAAE,EAAE;IACtH,MAAM,MAAM,GAAG,6BAAa,CAAC,SAAS,CAAoB,aAAa,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,6BAAa,CAAC,SAAS,CAAiB,UAAU,CAAC,CAAC;IACxE,OAAO,qCAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACzE,kBAAS,CAAC,GAAG,CAAC,qCAAiB,EAAE,MAAM,CAAC,CAAC;QACzC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,GAAS,EAAE,kDAAC,OAAA,MAAM,CAAC,KAAK,EAAE,CAAA,GAAA,CAAC,CAAC;QACjD,OAAO,gBAAa,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YAClE,eAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAVW,QAAA,uBAAuB,2BAUlC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DistributedEvents } from './DistributedEvents';
|
|
2
|
+
import { ClassType } from './types';
|
|
3
|
+
export declare function onEvent(event: string): (target: any, propertyKey: string) => void;
|
|
4
|
+
export interface Registry {
|
|
5
|
+
[event: string]: Array<DistributedEventListener>;
|
|
6
|
+
}
|
|
7
|
+
export declare type DistributedEventListener = {
|
|
8
|
+
clazz: ClassType;
|
|
9
|
+
method: string;
|
|
10
|
+
};
|
|
11
|
+
export declare class EventsManager {
|
|
12
|
+
static readonly registry: Registry;
|
|
13
|
+
private logger;
|
|
14
|
+
static addDistributedEventListener(event: string, listener: DistributedEventListener): void;
|
|
15
|
+
static start(de: DistributedEvents, listeners?: ClassType[]): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EventsManager = exports.onEvent = void 0;
|
|
13
|
+
const typedi_1 = require("typedi");
|
|
14
|
+
const Logger_1 = require("./Logger");
|
|
15
|
+
function onEvent(event) {
|
|
16
|
+
return (target, propertyKey) => {
|
|
17
|
+
EventsManager.addDistributedEventListener(event, {
|
|
18
|
+
clazz: target.constructor,
|
|
19
|
+
method: propertyKey,
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
exports.onEvent = onEvent;
|
|
24
|
+
class EventsManager {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.logger = Logger_1.Logger.getLogger(EventsManager);
|
|
27
|
+
}
|
|
28
|
+
static addDistributedEventListener(event, listener) {
|
|
29
|
+
if (EventsManager.registry[event] === undefined) {
|
|
30
|
+
EventsManager.registry[event] = [];
|
|
31
|
+
}
|
|
32
|
+
EventsManager.registry[event].push(listener);
|
|
33
|
+
}
|
|
34
|
+
static start(de, listeners = []) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
de.on('RemoteEvent', (event, data) => {
|
|
37
|
+
const regs = EventsManager.registry[event];
|
|
38
|
+
if (regs) {
|
|
39
|
+
return Promise.all(regs.map((reg) => {
|
|
40
|
+
const claz = listeners.find((lis) => lis === reg.clazz);
|
|
41
|
+
if (claz) {
|
|
42
|
+
const instance = typedi_1.Container.get(claz);
|
|
43
|
+
return instance[reg.method](data);
|
|
44
|
+
}
|
|
45
|
+
})).catch((e) => {
|
|
46
|
+
console.log(e);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
yield de.sub(Object.keys(EventsManager.registry));
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.EventsManager = EventsManager;
|
|
55
|
+
EventsManager.registry = {};
|
|
56
|
+
//# sourceMappingURL=EventsManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventsManager.js","sourceRoot":"","sources":["../../../src/libs/EventsManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAmC;AAEnC,qCAAkC;AAGlC,SAAgB,OAAO,CAAC,KAAa;IACnC,OAAO,CAAC,MAAW,EAAE,WAAmB,EAAE,EAAE;QAC1C,aAAa,CAAC,2BAA2B,CAAC,KAAK,EAAE;YAC/C,KAAK,EAAE,MAAM,CAAC,WAAW;YACzB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAPD,0BAOC;AAWD,MAAa,aAAa;IAA1B;QAGU,WAAM,GAAG,eAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IA4BnD,CAAC;IA1BC,MAAM,CAAC,2BAA2B,CAAC,KAAa,EAAE,QAAkC;QAClF,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;YAC/C,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACpC;QACD,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAO,KAAK,CAAC,EAAqB,EAAE,YAAyB,EAAE;;YACnE,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,IAAI,EAAE;oBACR,OAAO,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBACf,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;wBACxD,IAAI,IAAI,EAAE;4BACR,MAAM,QAAQ,GAAG,kBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;4BACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;yBACnC;oBACH,CAAC,CAAC,CACH,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;wBACZ,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACjB,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;YACH,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,CAAC;KAAA;;AA9BH,sCA+BC;AA9BiB,sBAAQ,GAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
export declare class HealthCheckController {
|
|
3
|
+
private logger;
|
|
4
|
+
private redisClient;
|
|
5
|
+
healthCheck(showOs: string): Promise<{
|
|
6
|
+
healthy: any;
|
|
7
|
+
osInfo: {
|
|
8
|
+
hostname: string;
|
|
9
|
+
type: string;
|
|
10
|
+
platform: NodeJS.Platform;
|
|
11
|
+
arch: string;
|
|
12
|
+
release: string;
|
|
13
|
+
uptime: number;
|
|
14
|
+
loadavg: number[];
|
|
15
|
+
totalmem: number;
|
|
16
|
+
freemem: number;
|
|
17
|
+
cpus: string;
|
|
18
|
+
networks: string | undefined;
|
|
19
|
+
};
|
|
20
|
+
} | {
|
|
21
|
+
healthy: any;
|
|
22
|
+
osInfo?: undefined;
|
|
23
|
+
}>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
15
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
16
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
17
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
18
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
19
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
20
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
24
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
|
+
};
|
|
26
|
+
var HealthCheckController_1;
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.HealthCheckController = void 0;
|
|
29
|
+
const internal_ip_1 = __importDefault(require("internal-ip"));
|
|
30
|
+
const os_1 = __importDefault(require("os"));
|
|
31
|
+
const routing_controllers_1 = require("routing-controllers");
|
|
32
|
+
const typedi_1 = require("typedi");
|
|
33
|
+
const typeorm_1 = require("typeorm");
|
|
34
|
+
const _1 = require(".");
|
|
35
|
+
let HealthCheckController = HealthCheckController_1 = class HealthCheckController {
|
|
36
|
+
constructor() {
|
|
37
|
+
this.logger = _1.Logger.getLogger(HealthCheckController_1);
|
|
38
|
+
}
|
|
39
|
+
healthCheck(showOs) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const conn = (0, typeorm_1.getConnectionManager)().get();
|
|
42
|
+
const dbAlive = yield conn.query('select "true"');
|
|
43
|
+
const redisAlive = yield this.redisClient.redis.ping('true');
|
|
44
|
+
const healthy = dbAlive && redisAlive;
|
|
45
|
+
if (showOs) {
|
|
46
|
+
const osInfo = {
|
|
47
|
+
hostname: os_1.default.hostname(),
|
|
48
|
+
type: os_1.default.type(),
|
|
49
|
+
platform: os_1.default.platform(),
|
|
50
|
+
arch: os_1.default.arch(),
|
|
51
|
+
release: os_1.default.release(),
|
|
52
|
+
uptime: os_1.default.uptime(),
|
|
53
|
+
loadavg: os_1.default.loadavg(),
|
|
54
|
+
totalmem: os_1.default.totalmem(),
|
|
55
|
+
freemem: os_1.default.freemem(),
|
|
56
|
+
cpus: `${os_1.default.cpus()[0].model} x ${os_1.default.cpus().length}`,
|
|
57
|
+
networks: yield internal_ip_1.default.v4(),
|
|
58
|
+
};
|
|
59
|
+
return { healthy, osInfo };
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
healthy,
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
__decorate([
|
|
68
|
+
(0, typedi_1.Inject)(() => _1.RedisClient),
|
|
69
|
+
__metadata("design:type", _1.RedisClient)
|
|
70
|
+
], HealthCheckController.prototype, "redisClient", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
(0, routing_controllers_1.Get)('/_healthcheck'),
|
|
73
|
+
__param(0, (0, routing_controllers_1.QueryParam)('os')),
|
|
74
|
+
__metadata("design:type", Function),
|
|
75
|
+
__metadata("design:paramtypes", [String]),
|
|
76
|
+
__metadata("design:returntype", Promise)
|
|
77
|
+
], HealthCheckController.prototype, "healthCheck", null);
|
|
78
|
+
HealthCheckController = HealthCheckController_1 = __decorate([
|
|
79
|
+
(0, routing_controllers_1.JsonController)(),
|
|
80
|
+
(0, typedi_1.Service)()
|
|
81
|
+
], HealthCheckController);
|
|
82
|
+
exports.HealthCheckController = HealthCheckController;
|
|
83
|
+
//# sourceMappingURL=HealthCheckController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HealthCheckController.js","sourceRoot":"","sources":["../../../src/libs/HealthCheckController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAqC;AACrC,4CAAoB;AACpB,6DAAsE;AACtE,mCAAyC;AACzC,qCAA+C;AAC/C,wBAAwC;AAIjC,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAA3B;QACG,WAAM,GAAG,SAAM,CAAC,SAAS,CAAC,uBAAqB,CAAC,CAAC;IAmC3D,CAAC;IA7BO,WAAW,CAAmB,MAAc;;YAChD,MAAM,IAAI,GAAG,IAAA,8BAAoB,GAAE,CAAC,GAAG,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAElD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAG7D,MAAM,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC;YAEtC,IAAI,MAAM,EAAE;gBACV,MAAM,MAAM,GAAG;oBACb,QAAQ,EAAE,YAAE,CAAC,QAAQ,EAAE;oBACvB,IAAI,EAAE,YAAE,CAAC,IAAI,EAAE;oBACf,QAAQ,EAAE,YAAE,CAAC,QAAQ,EAAE;oBACvB,IAAI,EAAE,YAAE,CAAC,IAAI,EAAE;oBACf,OAAO,EAAE,YAAE,CAAC,OAAO,EAAE;oBACrB,MAAM,EAAE,YAAE,CAAC,MAAM,EAAE;oBACnB,OAAO,EAAE,YAAE,CAAC,OAAO,EAAE;oBACrB,QAAQ,EAAE,YAAE,CAAC,QAAQ,EAAE;oBACvB,OAAO,EAAE,YAAE,CAAC,OAAO,EAAE;oBACrB,IAAI,EAAE,GAAG,YAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;oBACnD,QAAQ,EAAE,MAAM,qBAAU,CAAC,EAAE,EAAE;iBAChC,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAC5B;YACD,OAAO;gBACL,OAAO;aACR,CAAC;QACJ,CAAC;KAAA;CACF,CAAA;AAjCC;IAAC,IAAA,eAAM,EAAC,GAAG,EAAE,CAAC,cAAW,CAAC;8BACL,cAAW;0DAAC;AAG3B;IADL,IAAA,yBAAG,EAAC,eAAe,CAAC;IACF,WAAA,IAAA,gCAAU,EAAC,IAAI,CAAC,CAAA;;;;wDA4BlC;AAnCU,qBAAqB;IAFjC,IAAA,oCAAc,GAAE;IAChB,IAAA,gBAAO,GAAE;GACG,qBAAqB,CAoCjC;AApCY,sDAAqB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HttpMethodsRegistry } from './ResRegTypes';
|
|
2
|
+
export declare const httpMethodsRegistry: HttpMethodsRegistry;
|
|
3
|
+
export declare const Get: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
|
|
4
|
+
export declare const Post: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
|
|
5
|
+
export declare const Put: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
|
|
6
|
+
export declare const Delete: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
|
|
7
|
+
export declare const All: (route: string, app?: string | string[], functionName?: string) => MethodDecorator;
|
|
8
|
+
export declare const JsonController: (baseRoute?: string) => ClassDecorator;
|
|
@@ -0,0 +1,80 @@
|
|
|
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
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.JsonController = exports.All = exports.Delete = exports.Put = exports.Post = exports.Get = exports.httpMethodsRegistry = void 0;
|
|
27
|
+
const rc = __importStar(require("routing-controllers"));
|
|
28
|
+
const typedi_1 = require("typedi");
|
|
29
|
+
const ConfigManager_1 = require("./ConfigManager");
|
|
30
|
+
const DEFAULT_KEY = '____';
|
|
31
|
+
exports.httpMethodsRegistry = {};
|
|
32
|
+
const tempRegistry = {
|
|
33
|
+
[DEFAULT_KEY]: {},
|
|
34
|
+
};
|
|
35
|
+
const HttpMethod = (mName, method, route, app, functionName) => {
|
|
36
|
+
const decorator = (target, propertyKey, descriptor) => {
|
|
37
|
+
const { appName } = ConfigManager_1.ConfigManager.getConfig('application');
|
|
38
|
+
app = app !== null && app !== void 0 ? app : '*';
|
|
39
|
+
const apiName = `${functionName ? '' : 'internal.'}${appName}.${target.constructor.name.replace('Controller', '')}.${propertyKey.toString()}`;
|
|
40
|
+
if (!tempRegistry[DEFAULT_KEY][route]) {
|
|
41
|
+
tempRegistry[DEFAULT_KEY][route] = [];
|
|
42
|
+
}
|
|
43
|
+
tempRegistry[DEFAULT_KEY][route].push({ app, functionName: functionName !== null && functionName !== void 0 ? functionName : 'internal', method: mName, _apiName: apiName });
|
|
44
|
+
method(route)(target, propertyKey, descriptor);
|
|
45
|
+
};
|
|
46
|
+
return decorator;
|
|
47
|
+
};
|
|
48
|
+
const Get = (route, app, functionName) => {
|
|
49
|
+
return HttpMethod('GET', rc.Get, route, app, functionName);
|
|
50
|
+
};
|
|
51
|
+
exports.Get = Get;
|
|
52
|
+
const Post = (route, app, functionName) => {
|
|
53
|
+
return HttpMethod('POST', rc.Post, route, app, functionName);
|
|
54
|
+
};
|
|
55
|
+
exports.Post = Post;
|
|
56
|
+
const Put = (route, app, functionName) => {
|
|
57
|
+
return HttpMethod('PUT', rc.Put, route, app, functionName);
|
|
58
|
+
};
|
|
59
|
+
exports.Put = Put;
|
|
60
|
+
const Delete = (route, app, functionName) => {
|
|
61
|
+
return HttpMethod('DELETE', rc.Delete, route, app, functionName);
|
|
62
|
+
};
|
|
63
|
+
exports.Delete = Delete;
|
|
64
|
+
const All = (route, app, functionName) => {
|
|
65
|
+
return HttpMethod('ALL', rc.All, route, app, functionName);
|
|
66
|
+
};
|
|
67
|
+
exports.All = All;
|
|
68
|
+
const JsonController = (baseRoute) => {
|
|
69
|
+
const decorator = (target) => {
|
|
70
|
+
if (Object.keys(tempRegistry[DEFAULT_KEY]).length > 0) {
|
|
71
|
+
exports.httpMethodsRegistry[baseRoute !== null && baseRoute !== void 0 ? baseRoute : ''] = Object.assign({}, exports.httpMethodsRegistry[baseRoute !== null && baseRoute !== void 0 ? baseRoute : ''], tempRegistry[DEFAULT_KEY]);
|
|
72
|
+
}
|
|
73
|
+
tempRegistry[DEFAULT_KEY] = {};
|
|
74
|
+
rc.JsonController(baseRoute)(target);
|
|
75
|
+
(0, typedi_1.Service)()(target);
|
|
76
|
+
};
|
|
77
|
+
return decorator;
|
|
78
|
+
};
|
|
79
|
+
exports.JsonController = JsonController;
|
|
80
|
+
//# sourceMappingURL=HttpMethods.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HttpMethods.js","sourceRoot":"","sources":["../../../src/libs/HttpMethods.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const id: (size?: number) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdGenerator.js","sourceRoot":"","sources":["../../../src/libs/IdGenerator.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEzB,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC;AAAjC,QAAA,EAAE,MAA+B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Context } from 'koa';
|
|
2
|
+
import { KoaMiddlewareInterface } from 'routing-controllers';
|
|
3
|
+
export declare class KoaControllerReturnHandler implements KoaMiddlewareInterface {
|
|
4
|
+
private logger;
|
|
5
|
+
use(ctx: Context, next: (err?: any) => Promise<any>): Promise<any>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var KoaControllerReturnHandler_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.KoaControllerReturnHandler = void 0;
|
|
11
|
+
const routing_controllers_1 = require("routing-controllers");
|
|
12
|
+
const typedi_1 = require("typedi");
|
|
13
|
+
const BizError_1 = require("./BizError");
|
|
14
|
+
const Logger_1 = require("./Logger");
|
|
15
|
+
const transformer = (errors) => {
|
|
16
|
+
const err = {};
|
|
17
|
+
errors.forEach((e) => {
|
|
18
|
+
if (e.constraints) {
|
|
19
|
+
err[e.property] = [];
|
|
20
|
+
Object.values(e.constraints)
|
|
21
|
+
.map((str) => {
|
|
22
|
+
try {
|
|
23
|
+
return JSON.parse(str);
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
return str;
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
.forEach((constr) => {
|
|
30
|
+
if (constr.param) {
|
|
31
|
+
err[e.property].push([constr.key, constr.param]);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
err[e.property].push([constr.key]);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return err;
|
|
40
|
+
};
|
|
41
|
+
let KoaControllerReturnHandler = KoaControllerReturnHandler_1 = class KoaControllerReturnHandler {
|
|
42
|
+
constructor() {
|
|
43
|
+
this.logger = Logger_1.Logger.getLogger(KoaControllerReturnHandler_1);
|
|
44
|
+
}
|
|
45
|
+
use(ctx, next) {
|
|
46
|
+
return next()
|
|
47
|
+
.then(() => {
|
|
48
|
+
if (ctx.response.body === null) {
|
|
49
|
+
throw new routing_controllers_1.NotFoundError();
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
.catch((error) => {
|
|
53
|
+
var _a;
|
|
54
|
+
if (typeof error === 'string') {
|
|
55
|
+
ctx.response.status = 500;
|
|
56
|
+
ctx.response.body = new BizError_1.BizError(error);
|
|
57
|
+
}
|
|
58
|
+
else if (error.isError && error.code) {
|
|
59
|
+
ctx.response.status = error.code;
|
|
60
|
+
ctx.response.body = error;
|
|
61
|
+
}
|
|
62
|
+
else if (error.name === 'BadRequestError' && error.errors && error.errors.length > 0) {
|
|
63
|
+
ctx.response.status = 400;
|
|
64
|
+
ctx.response.body = new BizError_1.BizError('error:validationError', transformer(error.errors));
|
|
65
|
+
}
|
|
66
|
+
else if (error.name === 'NotFoundError') {
|
|
67
|
+
ctx.response.status = 404;
|
|
68
|
+
ctx.response.body = error.message;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
ctx.response.status = (_a = error.httpCode) !== null && _a !== void 0 ? _a : 500;
|
|
72
|
+
ctx.response.body = error.message;
|
|
73
|
+
this.logger.error(error);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
KoaControllerReturnHandler = KoaControllerReturnHandler_1 = __decorate([
|
|
79
|
+
(0, typedi_1.Service)(),
|
|
80
|
+
(0, routing_controllers_1.Middleware)({ type: 'before' })
|
|
81
|
+
], KoaControllerReturnHandler);
|
|
82
|
+
exports.KoaControllerReturnHandler = KoaControllerReturnHandler;
|
|
83
|
+
//# sourceMappingURL=KoaControllerReturnHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KoaControllerReturnHandler.js","sourceRoot":"","sources":["../../../src/libs/KoaControllerReturnHandler.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,6DAAwF;AACxF,mCAAiC;AACjC,yCAAsC;AACtC,qCAAkC;AAElC,MAAM,WAAW,GAAG,CAAC,MAAyB,EAAE,EAAE;IAChD,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACnB,IAAI,CAAC,CAAC,WAAW,EAAE;YACjB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI;oBACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACxB;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,GAAG,CAAC;iBACZ;YACH,CAAC,CAAC;iBACD,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAClB,IAAI,MAAM,CAAC,KAAK,EAAE;oBAChB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBAClD;qBAAM;oBACL,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;iBACpC;YACH,CAAC,CAAC,CAAC;SACN;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAIK,IAAM,0BAA0B,kCAAhC,MAAM,0BAA0B;IAAhC;QACG,WAAM,GAAG,eAAM,CAAC,SAAS,CAAC,4BAA0B,CAAC,CAAC;IA4BhE,CAAC;IA3BC,GAAG,CAAC,GAAY,EAAE,IAAiC;QACjD,OAAO,IAAI,EAAE;aACV,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC9B,MAAM,IAAI,mCAAa,EAAE,CAAC;aAC3B;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;;YACf,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;gBAC1B,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,mBAAQ,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;gBACtC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;gBACjC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;aAC3B;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtF,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;gBAC1B,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,mBAAQ,CAAC,uBAAuB,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aACtF;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE;gBACzC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;gBAC1B,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;aACnC;iBAAM;gBACL,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAA,KAAK,CAAC,QAAQ,mCAAI,GAAG,CAAC;gBAC5C,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;IACP,CAAC;CACF,CAAA;AA7BY,0BAA0B;IAFtC,IAAA,gBAAO,GAAE;IACT,IAAA,gCAAU,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;GAClB,0BAA0B,CA6BtC;AA7BY,gEAA0B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="koa-bodyparser" />
|
|
2
|
+
/// <reference types="koa__multer" />
|
|
3
|
+
import { default as Application, default as Koa } from 'koa';
|
|
4
|
+
import { MicroframeworkSettings } from 'microframework';
|
|
5
|
+
import 'reflect-metadata';
|
|
6
|
+
import { AuthorizationChecker } from 'routing-controllers/types/AuthorizationChecker';
|
|
7
|
+
import { CurrentUserChecker } from 'routing-controllers/types/CurrentUserChecker';
|
|
8
|
+
import { ClassType } from '..';
|
|
9
|
+
export interface KoaLoaderOption {
|
|
10
|
+
restfulControllers?: ClassType[];
|
|
11
|
+
wsControllers?: ClassType[];
|
|
12
|
+
authorizationChecker?: AuthorizationChecker;
|
|
13
|
+
currentUserChecker?: CurrentUserChecker;
|
|
14
|
+
use?: Application.Middleware[];
|
|
15
|
+
noListening?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const KoaHolder: {
|
|
18
|
+
koa?: Koa;
|
|
19
|
+
};
|
|
20
|
+
export declare const koaLoader: (option: KoaLoaderOption) => (options?: MicroframeworkSettings) => Promise<unknown> | undefined;
|