exodus-framework 2.0.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/build/@types/app.d.ts +5 -0
- package/build/@types/app.d.ts.map +1 -0
- package/build/@types/app.js +5 -0
- package/build/@types/console.d.ts +2 -0
- package/build/@types/console.d.ts.map +1 -0
- package/build/@types/console.js +5 -0
- package/build/@types/entity.d.ts +42 -0
- package/build/@types/entity.d.ts.map +1 -0
- package/build/@types/entity.js +5 -0
- package/build/@types/express.d.js +5 -0
- package/build/@types/http.d.ts +62 -0
- package/build/@types/http.d.ts.map +1 -0
- package/build/@types/http.js +50 -0
- package/build/@types/index.d.ts +10 -0
- package/build/@types/index.d.ts.map +1 -0
- package/build/@types/index.js +93 -0
- package/build/@types/messaging.d.ts +22 -0
- package/build/@types/messaging.d.ts.map +1 -0
- package/build/@types/messaging.js +13 -0
- package/build/@types/service.d.ts +4 -0
- package/build/@types/service.d.ts.map +1 -0
- package/build/@types/service.js +5 -0
- package/build/@types/session.d.ts +9 -0
- package/build/@types/session.d.ts.map +1 -0
- package/build/@types/session.js +5 -0
- package/build/@types/singleton.d.ts +10 -0
- package/build/@types/singleton.d.ts.map +1 -0
- package/build/@types/singleton.js +5 -0
- package/build/@types/socket.d.ts +20 -0
- package/build/@types/socket.d.ts.map +1 -0
- package/build/@types/socket.js +11 -0
- package/build/app/app.d.ts +16 -0
- package/build/app/app.d.ts.map +1 -0
- package/build/app/app.js +68 -0
- package/build/app/controller.d.ts +28 -0
- package/build/app/controller.d.ts.map +1 -0
- package/build/app/controller.js +94 -0
- package/build/app/core.d.ts +7 -0
- package/build/app/core.d.ts.map +1 -0
- package/build/app/core.js +61 -0
- package/build/app/index.d.ts +8 -0
- package/build/app/index.d.ts.map +1 -0
- package/build/app/index.js +70 -0
- package/build/app/service.d.ts +6 -0
- package/build/app/service.d.ts.map +1 -0
- package/build/app/service.js +24 -0
- package/build/app/singleton.d.ts +9 -0
- package/build/app/singleton.d.ts.map +1 -0
- package/build/app/singleton.js +29 -0
- package/build/config/app.d.ts +16 -0
- package/build/config/app.d.ts.map +1 -0
- package/build/config/app.js +25 -0
- package/build/config/auth.d.ts +5 -0
- package/build/config/auth.d.ts.map +1 -0
- package/build/config/auth.js +11 -0
- package/build/config/cache.d.ts +7 -0
- package/build/config/cache.d.ts.map +1 -0
- package/build/config/cache.js +12 -0
- package/build/config/db.d.ts +13 -0
- package/build/config/db.d.ts.map +1 -0
- package/build/config/db.js +17 -0
- package/build/config/http.d.ts +5 -0
- package/build/config/http.d.ts.map +1 -0
- package/build/config/http.js +10 -0
- package/build/config/index.d.ts +9 -0
- package/build/config/index.d.ts.map +1 -0
- package/build/config/index.js +93 -0
- package/build/config/logger.d.ts +7 -0
- package/build/config/logger.d.ts.map +1 -0
- package/build/config/logger.js +33 -0
- package/build/config/messaging.d.ts +7 -0
- package/build/config/messaging.d.ts.map +1 -0
- package/build/config/messaging.js +12 -0
- package/build/config/task.d.ts +6 -0
- package/build/config/task.d.ts.map +1 -0
- package/build/config/task.js +13 -0
- package/build/controllers/api/file.d.ts +8 -0
- package/build/controllers/api/file.d.ts.map +1 -0
- package/build/controllers/api/file.js +24 -0
- package/build/controllers/api/index.d.ts +2 -0
- package/build/controllers/api/index.d.ts.map +1 -0
- package/build/controllers/api/index.js +16 -0
- package/build/controllers/index.d.ts +2 -0
- package/build/controllers/index.d.ts.map +1 -0
- package/build/controllers/index.js +16 -0
- package/build/index.d.ts +8 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +82 -0
- package/build/middlewares/access.d.ts +8 -0
- package/build/middlewares/access.d.ts.map +1 -0
- package/build/middlewares/access.js +21 -0
- package/build/middlewares/authentication.d.ts +7 -0
- package/build/middlewares/authentication.d.ts.map +1 -0
- package/build/middlewares/authentication.js +22 -0
- package/build/middlewares/file.d.ts +10 -0
- package/build/middlewares/file.d.ts.map +1 -0
- package/build/middlewares/file.js +41 -0
- package/build/middlewares/index.d.ts +4 -0
- package/build/middlewares/index.d.ts.map +1 -0
- package/build/middlewares/index.js +38 -0
- package/build/models/Connection.d.ts +11 -0
- package/build/models/Connection.d.ts.map +1 -0
- package/build/models/Connection.js +50 -0
- package/build/models/index.d.ts +5 -0
- package/build/models/index.d.ts.map +1 -0
- package/build/models/index.js +14 -0
- package/build/server.d.ts +2 -0
- package/build/server.d.ts.map +1 -0
- package/build/server.js +33 -0
- package/build/services/error.d.ts +21 -0
- package/build/services/error.d.ts.map +1 -0
- package/build/services/error.js +55 -0
- package/build/services/express.d.ts +21 -0
- package/build/services/express.d.ts.map +1 -0
- package/build/services/express.js +142 -0
- package/build/services/file.d.ts +12 -0
- package/build/services/file.d.ts.map +1 -0
- package/build/services/file.js +54 -0
- package/build/services/index.d.ts +9 -0
- package/build/services/index.d.ts.map +1 -0
- package/build/services/index.js +93 -0
- package/build/services/rabitmq.d.ts +19 -0
- package/build/services/rabitmq.d.ts.map +1 -0
- package/build/services/rabitmq.js +87 -0
- package/build/services/redis.d.ts +14 -0
- package/build/services/redis.d.ts.map +1 -0
- package/build/services/redis.js +60 -0
- package/build/services/sequelize.d.ts +20 -0
- package/build/services/sequelize.d.ts.map +1 -0
- package/build/services/sequelize.js +193 -0
- package/build/services/socket.d.ts +18 -0
- package/build/services/socket.d.ts.map +1 -0
- package/build/services/socket.js +56 -0
- package/build/services/task.d.ts +53 -0
- package/build/services/task.d.ts.map +1 -0
- package/build/services/task.js +160 -0
- package/build/utils/api.d.ts +15 -0
- package/build/utils/api.d.ts.map +1 -0
- package/build/utils/api.js +50 -0
- package/build/utils/database.d.ts +4 -0
- package/build/utils/database.d.ts.map +1 -0
- package/build/utils/database.js +36 -0
- package/build/utils/date.d.ts +2 -0
- package/build/utils/date.d.ts.map +1 -0
- package/build/utils/date.js +28 -0
- package/build/utils/index.d.ts +6 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +60 -0
- package/build/utils/logger.d.ts +3 -0
- package/build/utils/logger.d.ts.map +1 -0
- package/build/utils/logger.js +45 -0
- package/build/utils/session.d.ts +10 -0
- package/build/utils/session.d.ts.map +1 -0
- package/build/utils/session.js +21 -0
- package/package.json +80 -0
@@ -0,0 +1,142 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _service = _interopRequireDefault(require("../app/service"));
|
8
|
+
var _app = require("../config/app");
|
9
|
+
var _http = require("../config/http");
|
10
|
+
var _logger = _interopRequireDefault(require("../utils/logger"));
|
11
|
+
var _cors = _interopRequireDefault(require("cors"));
|
12
|
+
var _express = _interopRequireDefault(require("express"));
|
13
|
+
require("express-async-errors");
|
14
|
+
var http = _interopRequireWildcard(require("http"));
|
15
|
+
var _path = _interopRequireDefault(require("path"));
|
16
|
+
var _pinoHttp = _interopRequireDefault(require("pino-http"));
|
17
|
+
var _http3 = require("../@types/http");
|
18
|
+
var _error = require("./error");
|
19
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
22
|
+
class ExpressService extends _service.default {
|
23
|
+
server;
|
24
|
+
mainRouter;
|
25
|
+
async init() {
|
26
|
+
if (!this.mainRouter) throw new _error.ApplicationException('Need router'); //!sem router
|
27
|
+
|
28
|
+
const expss = (0, _express.default)();
|
29
|
+
const pino = (0, _pinoHttp.default)({
|
30
|
+
logger: (0, _logger.default)()
|
31
|
+
});
|
32
|
+
this.server = http.createServer(expss);
|
33
|
+
expss.use('/public', _express.default.static(_path.default.join(__dirname, '../../public')));
|
34
|
+
expss.use(pino);
|
35
|
+
expss.use('*', this.responseTypeMiddleware.bind(this));
|
36
|
+
expss.use(_express.default.json());
|
37
|
+
expss.use(_express.default.urlencoded({
|
38
|
+
extended: false
|
39
|
+
}));
|
40
|
+
expss.use((0, _cors.default)({
|
41
|
+
origin: '*'
|
42
|
+
}));
|
43
|
+
expss.use(this.mainRouter);
|
44
|
+
expss.use(this.handleAuthorizationFailure.bind(this));
|
45
|
+
expss.use(this.handleNotFoud.bind(this));
|
46
|
+
expss.use(this.handleRequestProcessFailure.bind(this));
|
47
|
+
this.server.listen(_app.AppConfig.port, () => {
|
48
|
+
(0, _logger.default)().info(`servidor iniciado na porta: ${_app.AppConfig.port}`);
|
49
|
+
this.log(`🌍 Http Server Listering On: ${_app.AppConfig.port}`, 'success');
|
50
|
+
});
|
51
|
+
}
|
52
|
+
getHttpServer() {
|
53
|
+
return this.server;
|
54
|
+
}
|
55
|
+
sendResponse(objResponse, res, next) {
|
56
|
+
objResponse.timestamp = Date.now();
|
57
|
+
if (!objResponse.code) objResponse.code = _http3.EHttpResponseCode.successfullyProcessedInformation;
|
58
|
+
res.status(objResponse.code);
|
59
|
+
if (objResponse.location) {
|
60
|
+
res.location(objResponse.location);
|
61
|
+
delete objResponse.location;
|
62
|
+
}
|
63
|
+
let FormulatedResponse;
|
64
|
+
switch (_http.HttpConfig.formulation) {
|
65
|
+
case 'direct':
|
66
|
+
if (objResponse['data']) {
|
67
|
+
FormulatedResponse = objResponse.data;
|
68
|
+
} else {
|
69
|
+
FormulatedResponse = objResponse;
|
70
|
+
}
|
71
|
+
break;
|
72
|
+
case 'standart':
|
73
|
+
FormulatedResponse = objResponse;
|
74
|
+
break;
|
75
|
+
default:
|
76
|
+
FormulatedResponse = objResponse;
|
77
|
+
break;
|
78
|
+
}
|
79
|
+
if (next) {
|
80
|
+
res.write(JSON.stringify(FormulatedResponse));
|
81
|
+
next();
|
82
|
+
} else {
|
83
|
+
res.send(JSON.stringify(FormulatedResponse));
|
84
|
+
}
|
85
|
+
}
|
86
|
+
responseTypeMiddleware(req, res, next) {
|
87
|
+
res.contentType('application/json');
|
88
|
+
next();
|
89
|
+
}
|
90
|
+
|
91
|
+
//* Handlers
|
92
|
+
handleNotFoud(req, res) {
|
93
|
+
this.sendResponse({
|
94
|
+
message: 'Endereço não encontrado',
|
95
|
+
type: 'warning',
|
96
|
+
status: false,
|
97
|
+
code: _http3.EHttpResponseCode.informationNotFound
|
98
|
+
}, res);
|
99
|
+
}
|
100
|
+
handleAuthorizationFailure(err, req, res, next) {
|
101
|
+
if (err.name === 'UnauthorizedError') {
|
102
|
+
throw new _error.ApplicationHttpException('Falha na autorização', _http3.EHttpResponseCode.informationUnauthorized);
|
103
|
+
} else {
|
104
|
+
next(err);
|
105
|
+
}
|
106
|
+
}
|
107
|
+
handleRequestProcessFailure = async (err, req, res, _) => {
|
108
|
+
if (err instanceof _error.ApplicationHttpException) {
|
109
|
+
return this.sendResponse({
|
110
|
+
message: err.message,
|
111
|
+
type: err.level,
|
112
|
+
status: false,
|
113
|
+
code: err.statusCode,
|
114
|
+
data: err.data
|
115
|
+
}, res);
|
116
|
+
}
|
117
|
+
this.sendResponse({
|
118
|
+
message: 'Houve um erro ao acessar este recurso',
|
119
|
+
type: 'error',
|
120
|
+
status: false,
|
121
|
+
code: 500
|
122
|
+
}, res);
|
123
|
+
new _error.ApplicationException('Erro não tratado em uma rota.', err);
|
124
|
+
};
|
125
|
+
async checkRequest(params) {
|
126
|
+
let pass = true;
|
127
|
+
const need = [];
|
128
|
+
for (const [key, param] of Object.entries(params)) {
|
129
|
+
if (!param || param === null || param.length < 1 || typeof param === 'string' && param === '' || typeof param === 'object' && Object.values(param).length < 1) {
|
130
|
+
pass = false;
|
131
|
+
need.push(key);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
if (!pass) throw new _error.ApplicationHttpException('Requisição incompleta', _http3.EHttpResponseCode.incompleteRequest, 'error', {
|
135
|
+
need
|
136
|
+
});
|
137
|
+
}
|
138
|
+
registerRouter(router) {
|
139
|
+
this.mainRouter = router;
|
140
|
+
}
|
141
|
+
}
|
142
|
+
var _default = exports.default = ExpressService;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import Service from '@app/service';
|
2
|
+
import { AppConfig } from '@config/app';
|
3
|
+
import { IService } from '../@types/service';
|
4
|
+
declare class FileService extends Service implements IService {
|
5
|
+
init(): Promise<void>;
|
6
|
+
private checkPaths;
|
7
|
+
private cleanTemp;
|
8
|
+
save(filename: string, destiny: keyof typeof AppConfig.filePaths): Promise<string | boolean>;
|
9
|
+
listFiles(origin: keyof typeof AppConfig.filePaths, cb: (file: string[]) => void): void;
|
10
|
+
}
|
11
|
+
export default FileService;
|
12
|
+
//# sourceMappingURL=file.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/services/file.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,cAAM,WAAY,SAAQ,OAAQ,YAAW,QAAQ;IAC7C,IAAI;YAKI,UAAU;YAKV,SAAS;IASjB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,SAAS,CAAC,SAAS;IAatE,SAAS,CAAC,MAAM,EAAE,MAAM,OAAO,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI;CAIjF;AACD,eAAe,WAAW,CAAC"}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _service = _interopRequireDefault(require("../app/service"));
|
8
|
+
var _app = require("../config/app");
|
9
|
+
var _logger = _interopRequireDefault(require("../utils/logger"));
|
10
|
+
var fs = _interopRequireWildcard(require("fs"));
|
11
|
+
var fsPromisses = _interopRequireWildcard(require("fs/promises"));
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
15
|
+
class FileService extends _service.default {
|
16
|
+
async init() {
|
17
|
+
await this.checkPaths();
|
18
|
+
await this.cleanTemp();
|
19
|
+
}
|
20
|
+
async checkPaths() {
|
21
|
+
for (const path of Object.values(_app.AppConfig.filePaths)) {
|
22
|
+
!fs.existsSync(path) && fs.mkdirSync(path, {
|
23
|
+
recursive: true
|
24
|
+
});
|
25
|
+
}
|
26
|
+
}
|
27
|
+
async cleanTemp() {
|
28
|
+
this.listFiles('temporary', files => {
|
29
|
+
files.forEach(file => {
|
30
|
+
const p = _app.AppConfig.filePaths.temporary + '/' + file;
|
31
|
+
fs.rmSync(p, {
|
32
|
+
recursive: true
|
33
|
+
});
|
34
|
+
});
|
35
|
+
});
|
36
|
+
}
|
37
|
+
async save(filename, destiny) {
|
38
|
+
const p = _app.AppConfig.filePaths.temporary + '/' + filename;
|
39
|
+
const d = _app.AppConfig.filePaths[destiny] + '/' + filename;
|
40
|
+
return await fsPromisses.rename(p, d).then(() => d).catch(e => {
|
41
|
+
(0, _logger.default)().error({
|
42
|
+
filename,
|
43
|
+
destiny,
|
44
|
+
erro: e
|
45
|
+
}, 'Não foi possível salvar o arquivo');
|
46
|
+
return false;
|
47
|
+
});
|
48
|
+
}
|
49
|
+
listFiles(origin, cb) {
|
50
|
+
const p = _app.AppConfig.filePaths[origin];
|
51
|
+
fs.readdir(p, (_, file) => cb(file));
|
52
|
+
}
|
53
|
+
}
|
54
|
+
var _default = exports.default = FileService;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
|
@@ -0,0 +1,93 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
var _error = require("./error");
|
7
|
+
Object.keys(_error).forEach(function (key) {
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
9
|
+
if (key in exports && exports[key] === _error[key]) return;
|
10
|
+
Object.defineProperty(exports, key, {
|
11
|
+
enumerable: true,
|
12
|
+
get: function () {
|
13
|
+
return _error[key];
|
14
|
+
}
|
15
|
+
});
|
16
|
+
});
|
17
|
+
var _express = require("./express");
|
18
|
+
Object.keys(_express).forEach(function (key) {
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
20
|
+
if (key in exports && exports[key] === _express[key]) return;
|
21
|
+
Object.defineProperty(exports, key, {
|
22
|
+
enumerable: true,
|
23
|
+
get: function () {
|
24
|
+
return _express[key];
|
25
|
+
}
|
26
|
+
});
|
27
|
+
});
|
28
|
+
var _file = require("./file");
|
29
|
+
Object.keys(_file).forEach(function (key) {
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
31
|
+
if (key in exports && exports[key] === _file[key]) return;
|
32
|
+
Object.defineProperty(exports, key, {
|
33
|
+
enumerable: true,
|
34
|
+
get: function () {
|
35
|
+
return _file[key];
|
36
|
+
}
|
37
|
+
});
|
38
|
+
});
|
39
|
+
var _rabitmq = require("./rabitmq");
|
40
|
+
Object.keys(_rabitmq).forEach(function (key) {
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
42
|
+
if (key in exports && exports[key] === _rabitmq[key]) return;
|
43
|
+
Object.defineProperty(exports, key, {
|
44
|
+
enumerable: true,
|
45
|
+
get: function () {
|
46
|
+
return _rabitmq[key];
|
47
|
+
}
|
48
|
+
});
|
49
|
+
});
|
50
|
+
var _redis = require("./redis");
|
51
|
+
Object.keys(_redis).forEach(function (key) {
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
53
|
+
if (key in exports && exports[key] === _redis[key]) return;
|
54
|
+
Object.defineProperty(exports, key, {
|
55
|
+
enumerable: true,
|
56
|
+
get: function () {
|
57
|
+
return _redis[key];
|
58
|
+
}
|
59
|
+
});
|
60
|
+
});
|
61
|
+
var _sequelize = require("./sequelize");
|
62
|
+
Object.keys(_sequelize).forEach(function (key) {
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
64
|
+
if (key in exports && exports[key] === _sequelize[key]) return;
|
65
|
+
Object.defineProperty(exports, key, {
|
66
|
+
enumerable: true,
|
67
|
+
get: function () {
|
68
|
+
return _sequelize[key];
|
69
|
+
}
|
70
|
+
});
|
71
|
+
});
|
72
|
+
var _socket = require("./socket");
|
73
|
+
Object.keys(_socket).forEach(function (key) {
|
74
|
+
if (key === "default" || key === "__esModule") return;
|
75
|
+
if (key in exports && exports[key] === _socket[key]) return;
|
76
|
+
Object.defineProperty(exports, key, {
|
77
|
+
enumerable: true,
|
78
|
+
get: function () {
|
79
|
+
return _socket[key];
|
80
|
+
}
|
81
|
+
});
|
82
|
+
});
|
83
|
+
var _task = require("./task");
|
84
|
+
Object.keys(_task).forEach(function (key) {
|
85
|
+
if (key === "default" || key === "__esModule") return;
|
86
|
+
if (key in exports && exports[key] === _task[key]) return;
|
87
|
+
Object.defineProperty(exports, key, {
|
88
|
+
enumerable: true,
|
89
|
+
get: function () {
|
90
|
+
return _task[key];
|
91
|
+
}
|
92
|
+
});
|
93
|
+
});
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import Service from '@app/service';
|
2
|
+
import { TMessageQueueDataMap, TMessagingQueueEventList, TMessagingQueueHandler } from '../@types';
|
3
|
+
import { Channel, Connection } from 'amqplib';
|
4
|
+
import { IService } from '../@types/service';
|
5
|
+
declare class RabbitMQService extends Service implements IService {
|
6
|
+
connection: Connection;
|
7
|
+
channel: Channel;
|
8
|
+
private connected;
|
9
|
+
private mainRouter;
|
10
|
+
constructor();
|
11
|
+
init(): Promise<void>;
|
12
|
+
registerHandles(): void;
|
13
|
+
connect(): Promise<void>;
|
14
|
+
sendToQueue<K extends keyof TMessageQueueDataMap>(queue: K, data: TMessageQueueDataMap[K]): Promise<void>;
|
15
|
+
consumeFromQueue<K extends keyof TMessageQueueDataMap>(queue: K, callBack: TMessagingQueueHandler<K>): Promise<void>;
|
16
|
+
registerRouter(router: TMessagingQueueEventList): void;
|
17
|
+
}
|
18
|
+
export default RabbitMQService;
|
19
|
+
//# sourceMappingURL=rabitmq.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rabitmq.d.ts","sourceRoot":"","sources":["../../src/services/rabitmq.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAEL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,WAAW,CAAC;AACnB,OAAe,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAU7C,cAAM,eAAgB,SAAQ,OAAQ,YAAW,QAAQ;IACvD,UAAU,EAAG,UAAU,CAAC;IACxB,OAAO,EAAG,OAAO,CAAC;IAClB,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,UAAU,CAA2B;;IAMvC,IAAI;IAIV,eAAe;IAKT,OAAO;IAmBP,WAAW,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAWzF,gBAAgB,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACzD,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;IA2BrC,cAAc,CAAC,MAAM,EAAE,wBAAwB;CAGhD;AAED,eAAe,eAAe,CAAC"}
|
@@ -0,0 +1,87 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _service = _interopRequireDefault(require("../app/service"));
|
8
|
+
var _messaging = _interopRequireDefault(require("../config/messaging"));
|
9
|
+
var _amqplib = _interopRequireDefault(require("amqplib"));
|
10
|
+
var _error = require("./error");
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
12
|
+
/**
|
13
|
+
* Serviço de Mensageria
|
14
|
+
*
|
15
|
+
* @class RabbitMQService
|
16
|
+
* @extends {Service}
|
17
|
+
* @implements {IService}
|
18
|
+
*/
|
19
|
+
class RabbitMQService extends _service.default {
|
20
|
+
connection;
|
21
|
+
channel;
|
22
|
+
connected;
|
23
|
+
mainRouter;
|
24
|
+
|
25
|
+
//# Initialization
|
26
|
+
constructor() {
|
27
|
+
super();
|
28
|
+
}
|
29
|
+
async init() {
|
30
|
+
if (!this.mainRouter) throw new _error.ApplicationException('Need router'); //!sem router
|
31
|
+
await this.connect();
|
32
|
+
}
|
33
|
+
registerHandles() {
|
34
|
+
for (const [queue, handle] of Object.entries(this.mainRouter)) {
|
35
|
+
this.consumeFromQueue(queue, handle);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
async connect() {
|
39
|
+
if (this.connected && this.channel) return;else this.connected = true;
|
40
|
+
try {
|
41
|
+
this.log(`⌛️ Connecting to Rabbit-MQ Server`);
|
42
|
+
this.connection = await _amqplib.default.connect(`amqp://${_messaging.default.user}:${_messaging.default.pass}@${_messaging.default.host}:5672`);
|
43
|
+
this.log(`✅ Rabbit MQ Connection is ready`);
|
44
|
+
this.channel = await this.connection.createChannel();
|
45
|
+
this.log(`🛸 Created RabbitMQ Channel successfully`);
|
46
|
+
this.registerHandles();
|
47
|
+
} catch (error) {
|
48
|
+
new _error.ApplicationException(`Not connected to MQ Server`, error);
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
//# Common
|
53
|
+
async sendToQueue(queue, data) {
|
54
|
+
try {
|
55
|
+
if (!this.channel) {
|
56
|
+
await this.connect();
|
57
|
+
}
|
58
|
+
this.channel.sendToQueue(queue, Buffer.from(JSON.stringify(data)));
|
59
|
+
} catch (error) {
|
60
|
+
new _error.ApplicationException('Houve um erro no envio de uma mensagem para o rabitmq', error);
|
61
|
+
}
|
62
|
+
}
|
63
|
+
async consumeFromQueue(queue, callBack) {
|
64
|
+
await this.channel.assertQueue(queue, {
|
65
|
+
durable: true
|
66
|
+
});
|
67
|
+
this.channel.consume(queue, msg => {
|
68
|
+
{
|
69
|
+
if (!msg) {
|
70
|
+
return this.log(`Invalid incoming message in`);
|
71
|
+
}
|
72
|
+
try {
|
73
|
+
callBack(JSON.parse(msg.content.toString()), () => this.channel.ack(msg));
|
74
|
+
} catch (error) {
|
75
|
+
this.channel.ack(msg);
|
76
|
+
new _error.ApplicationException('Error on parsing message from queue', error);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
}, {
|
80
|
+
noAck: false
|
81
|
+
});
|
82
|
+
}
|
83
|
+
registerRouter(router) {
|
84
|
+
this.mainRouter = router;
|
85
|
+
}
|
86
|
+
}
|
87
|
+
var _default = exports.default = RabbitMQService;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import Service from '@app/service';
|
2
|
+
import { IService } from '../@types/service';
|
3
|
+
declare class RedisService extends Service implements IService {
|
4
|
+
private client;
|
5
|
+
init(): Promise<void>;
|
6
|
+
private connect;
|
7
|
+
disconnect(): Promise<void>;
|
8
|
+
setValue(key: string, value: string): Promise<void>;
|
9
|
+
getValue(key: string): Promise<string | null>;
|
10
|
+
deleteValue(key: string): Promise<void>;
|
11
|
+
private onClientError;
|
12
|
+
}
|
13
|
+
export default RedisService;
|
14
|
+
//# sourceMappingURL=redis.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/services/redis.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAY7C,cAAM,YAAa,SAAQ,OAAQ,YAAW,QAAQ;IACpD,OAAO,CAAC,MAAM,CAAkB;IAG1B,IAAI;IAOV,OAAO,CAAC,OAAO;IAUT,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGnD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI7C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,OAAO,CAAC,aAAa;CAGtB;AAED,eAAe,YAAY,CAAC"}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
var _service = _interopRequireDefault(require("../app/service"));
|
8
|
+
var _redis = require("redis");
|
9
|
+
var _error = require("./error");
|
10
|
+
var _cache = _interopRequireDefault(require("../config/cache"));
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
12
|
+
/**
|
13
|
+
* Serviço de cache
|
14
|
+
*
|
15
|
+
* @class RedisService
|
16
|
+
* @extends {Service}
|
17
|
+
* @implements {IService}
|
18
|
+
*/
|
19
|
+
class RedisService extends _service.default {
|
20
|
+
client;
|
21
|
+
|
22
|
+
//* Initialization
|
23
|
+
async init() {
|
24
|
+
this.client = (0, _redis.createClient)({
|
25
|
+
url: `redis://${_cache.default.host}:${_cache.default.port}`,
|
26
|
+
password: _cache.default.password
|
27
|
+
});
|
28
|
+
await this.connect();
|
29
|
+
}
|
30
|
+
connect() {
|
31
|
+
this.client.on('error', this.onClientError.bind(this));
|
32
|
+
return new Promise(resolve => {
|
33
|
+
this.client.connect().then(() => {
|
34
|
+
this.log('Redis client connected.', 'success');
|
35
|
+
resolve(true);
|
36
|
+
});
|
37
|
+
});
|
38
|
+
}
|
39
|
+
async disconnect() {
|
40
|
+
await this.client.quit();
|
41
|
+
}
|
42
|
+
|
43
|
+
//* Common
|
44
|
+
async setValue(key, value) {
|
45
|
+
await this.client.set(key, value);
|
46
|
+
}
|
47
|
+
async getValue(key) {
|
48
|
+
const value = await this.client.get(key);
|
49
|
+
return value;
|
50
|
+
}
|
51
|
+
async deleteValue(key) {
|
52
|
+
await this.client.del(key);
|
53
|
+
}
|
54
|
+
|
55
|
+
//* Events
|
56
|
+
onClientError(err) {
|
57
|
+
new _error.ApplicationException('Error on init redis client', err);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
var _default = exports.default = RedisService;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import Service from '@app/service';
|
2
|
+
import { ModelStatic, Sequelize } from 'sequelize';
|
3
|
+
import { IService } from '../@types/service';
|
4
|
+
declare class SequelizeService extends Service implements IService {
|
5
|
+
serviceDB: Sequelize;
|
6
|
+
masterDB: Sequelize;
|
7
|
+
models: ModelStatic<any>[];
|
8
|
+
connections: Map<string, Sequelize>;
|
9
|
+
constructor();
|
10
|
+
init(): Promise<void>;
|
11
|
+
connectMainDatabase(): Promise<unknown>;
|
12
|
+
reconnect(db: Sequelize, attempts?: number): void;
|
13
|
+
getMasterConnection(): Sequelize;
|
14
|
+
createDB(connection_uuid: string, name: string): Promise<boolean>;
|
15
|
+
deleteDB(connection_uuid: string, name: string): Promise<boolean>;
|
16
|
+
getDB(uuid: string, name: string): Promise<Sequelize>;
|
17
|
+
initDB(uuid: string, name: string): Promise<unknown>;
|
18
|
+
}
|
19
|
+
export default SequelizeService;
|
20
|
+
//# sourceMappingURL=sequelize.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../src/services/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAMnC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAU7C,cAAM,gBAAiB,SAAQ,OAAQ,YAAW,QAAQ;IACxD,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;IAM9B,IAAI;IAOJ,mBAAmB;IA0BzB,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,SAAI;IAerC,mBAAmB;IAGb,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA6C9C,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAwC9C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAKhC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CA8CxC;AAED,eAAe,gBAAgB,CAAC"}
|