@xitkov/core 2.4.9

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.
Files changed (98) hide show
  1. package/README.md +256 -0
  2. package/lib/app.d.ts +75 -0
  3. package/lib/app.js +143 -0
  4. package/lib/app.js.map +1 -0
  5. package/lib/errors/index.d.ts +25 -0
  6. package/lib/errors/index.js +41 -0
  7. package/lib/errors/index.js.map +1 -0
  8. package/lib/hooks/business.d.ts +1 -0
  9. package/lib/hooks/business.js +26 -0
  10. package/lib/hooks/business.js.map +1 -0
  11. package/lib/hooks/hooks.d.ts +4 -0
  12. package/lib/hooks/hooks.js +66 -0
  13. package/lib/hooks/hooks.js.map +1 -0
  14. package/lib/hooks/index.d.ts +3 -0
  15. package/lib/hooks/index.js +20 -0
  16. package/lib/hooks/index.js.map +1 -0
  17. package/lib/hooks/types.d.ts +9 -0
  18. package/lib/hooks/types.js +3 -0
  19. package/lib/hooks/types.js.map +1 -0
  20. package/lib/index.d.ts +17 -0
  21. package/lib/index.js +23 -0
  22. package/lib/index.js.map +1 -0
  23. package/lib/libs/cache.d.ts +7 -0
  24. package/lib/libs/cache.js +22 -0
  25. package/lib/libs/cache.js.map +1 -0
  26. package/lib/libs/index.d.ts +5 -0
  27. package/lib/libs/index.js +22 -0
  28. package/lib/libs/index.js.map +1 -0
  29. package/lib/libs/logs.d.ts +5 -0
  30. package/lib/libs/logs.js +26 -0
  31. package/lib/libs/logs.js.map +1 -0
  32. package/lib/libs/queue.d.ts +21 -0
  33. package/lib/libs/queue.js +49 -0
  34. package/lib/libs/queue.js.map +1 -0
  35. package/lib/libs/socket.d.ts +8 -0
  36. package/lib/libs/socket.js +26 -0
  37. package/lib/libs/socket.js.map +1 -0
  38. package/lib/libs/utils.d.ts +8 -0
  39. package/lib/libs/utils.js +28 -0
  40. package/lib/libs/utils.js.map +1 -0
  41. package/lib/logger/index.d.ts +11 -0
  42. package/lib/logger/index.js +50 -0
  43. package/lib/logger/index.js.map +1 -0
  44. package/lib/services/auth.d.ts +19 -0
  45. package/lib/services/auth.js +41 -0
  46. package/lib/services/auth.js.map +1 -0
  47. package/lib/services/databases/index.d.ts +3 -0
  48. package/lib/services/databases/index.js +20 -0
  49. package/lib/services/databases/index.js.map +1 -0
  50. package/lib/services/databases/mongo-service.d.ts +26 -0
  51. package/lib/services/databases/mongo-service.js +55 -0
  52. package/lib/services/databases/mongo-service.js.map +1 -0
  53. package/lib/services/databases/postgres-service.d.ts +28 -0
  54. package/lib/services/databases/postgres-service.js +126 -0
  55. package/lib/services/databases/postgres-service.js.map +1 -0
  56. package/lib/services/databases/types.d.ts +26 -0
  57. package/lib/services/databases/types.js +3 -0
  58. package/lib/services/databases/types.js.map +1 -0
  59. package/lib/services/index.d.ts +6 -0
  60. package/lib/services/index.js +23 -0
  61. package/lib/services/index.js.map +1 -0
  62. package/lib/services/micro-service.d.ts +60 -0
  63. package/lib/services/micro-service.js +146 -0
  64. package/lib/services/micro-service.js.map +1 -0
  65. package/lib/services/register-micro-services.d.ts +1 -0
  66. package/lib/services/register-micro-services.js +41 -0
  67. package/lib/services/register-micro-services.js.map +1 -0
  68. package/lib/services/register-services.d.ts +5 -0
  69. package/lib/services/register-services.js +272 -0
  70. package/lib/services/register-services.js.map +1 -0
  71. package/lib/services/service.d.ts +46 -0
  72. package/lib/services/service.js +63 -0
  73. package/lib/services/service.js.map +1 -0
  74. package/package.json +49 -0
  75. package/src/app.ts +182 -0
  76. package/src/errors/index.ts +37 -0
  77. package/src/hooks/business.ts +23 -0
  78. package/src/hooks/hooks.ts +60 -0
  79. package/src/hooks/index.ts +3 -0
  80. package/src/hooks/types.ts +9 -0
  81. package/src/index.ts +18 -0
  82. package/src/libs/cache.ts +25 -0
  83. package/src/libs/index.ts +5 -0
  84. package/src/libs/logs.ts +21 -0
  85. package/src/libs/queue.ts +48 -0
  86. package/src/libs/socket.ts +28 -0
  87. package/src/libs/utils.ts +28 -0
  88. package/src/logger/index.ts +49 -0
  89. package/src/services/auth.ts +48 -0
  90. package/src/services/databases/index.ts +3 -0
  91. package/src/services/databases/mongo-service.ts +75 -0
  92. package/src/services/databases/postgres-service.ts +149 -0
  93. package/src/services/databases/types.ts +29 -0
  94. package/src/services/index.ts +6 -0
  95. package/src/services/micro-service.ts +188 -0
  96. package/src/services/register-micro-services.ts +37 -0
  97. package/src/services/register-services.ts +268 -0
  98. package/src/services/service.ts +118 -0
@@ -0,0 +1,28 @@
1
+ import { Request, Response } from "express";
2
+ import { ModelStatic, DestroyOptions } from 'sequelize';
3
+ import { FindResponse, InternalServiceMethods, Query, User } from "./types";
4
+ export interface PostgresInternalServiceMethods<T = any> extends InternalServiceMethods<any> {
5
+ model: ModelStatic<any>;
6
+ }
7
+ export interface PostgresInternalServiceOptions<T = any> {
8
+ Model: ModelStatic<any>;
9
+ pagination?: boolean;
10
+ }
11
+ export declare class PostgreSQLService<T = any> implements PostgresInternalServiceMethods<T> {
12
+ protected readonly Model: ModelStatic<any>;
13
+ pagination?: boolean | undefined;
14
+ constructor({ Model, pagination }: PostgresInternalServiceOptions<T>);
15
+ find(query?: any, user?: User, req?: Request): Promise<FindResponse<T>>;
16
+ get(id: string | null, query?: Query, user?: User, req?: Request, res?: Response): Promise<T | null>;
17
+ create(data: Partial<T> | Partial<T>[], query?: Query, user?: User, req?: Request, res?: Response): Promise<T | T[]>;
18
+ update(id: string, data: any, query?: Query, user?: User, req?: Request, res?: Response): Promise<any>;
19
+ patch(id: string, data: Partial<T>, query?: Query, user?: User, req?: Request, res?: Response): Promise<any>;
20
+ remove(id: string, query?: DestroyOptions, user?: User, req?: Request, res?: Response): Promise<any>;
21
+ get model(): ModelStatic<any>;
22
+ _find(query?: Query, user?: User, req?: Request): Promise<FindResponse<T>>;
23
+ _get(id: string | null, query?: Query): Promise<T | null>;
24
+ _create(data: Partial<T> | Partial<T>[]): Promise<T | T[]>;
25
+ _update(id: string, data: Partial<any>): Promise<any>;
26
+ _patch(id: string, data: Partial<T>): Promise<any>;
27
+ _remove(id: string, query?: Query): Promise<any>;
28
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostgreSQLService = void 0;
4
+ class PostgreSQLService {
5
+ constructor({ Model, pagination }) {
6
+ this.Model = Model;
7
+ this.pagination = pagination;
8
+ }
9
+ async find(query, user, req) {
10
+ const { $limit, $offset, ...restQuery } = query !== null && query !== void 0 ? query : {};
11
+ const modelQuery = {
12
+ where: {
13
+ ...(restQuery !== null && restQuery !== void 0 ? restQuery : {})
14
+ },
15
+ };
16
+ if ($limit) {
17
+ modelQuery.limit = $limit;
18
+ }
19
+ if ($offset) {
20
+ modelQuery.offset = $offset;
21
+ }
22
+ if (this.pagination) {
23
+ return await this.Model.findAndCountAll(modelQuery);
24
+ }
25
+ return await this.Model.findAll(modelQuery);
26
+ }
27
+ async get(id, query, user, req, res) {
28
+ if (id) {
29
+ return await this.Model.findByPk(id);
30
+ }
31
+ return await this.Model.findOne({
32
+ where: {
33
+ ...(query !== null && query !== void 0 ? query : {})
34
+ }
35
+ });
36
+ }
37
+ async create(data, query, user, req, res) {
38
+ return await this.Model.create(data);
39
+ }
40
+ async update(id, data, query, user, req, res) {
41
+ return await this.Model.update({ ...data }, {
42
+ where: {
43
+ id,
44
+ ...(query !== null && query !== void 0 ? query : {})
45
+ },
46
+ });
47
+ }
48
+ async patch(id, data, query, user, req, res) {
49
+ return await this.Model.update({ ...data }, {
50
+ where: {
51
+ id,
52
+ ...(query !== null && query !== void 0 ? query : {})
53
+ },
54
+ });
55
+ }
56
+ async remove(id, query, user, req, res) {
57
+ return await this.Model.destroy({
58
+ where: {
59
+ id,
60
+ ...(query !== null && query !== void 0 ? query : {})
61
+ }
62
+ });
63
+ }
64
+ get model() {
65
+ return this.Model;
66
+ }
67
+ async _find(query, user, req) {
68
+ const { $limit, $offset, ...restQuery } = query !== null && query !== void 0 ? query : {};
69
+ const modelQuery = {
70
+ where: {
71
+ ...(restQuery !== null && restQuery !== void 0 ? restQuery : {})
72
+ },
73
+ };
74
+ if ($limit) {
75
+ modelQuery.limit = $limit;
76
+ }
77
+ if ($offset) {
78
+ modelQuery.offset = $offset;
79
+ }
80
+ if (this.pagination) {
81
+ return await this.Model.findAndCountAll(modelQuery);
82
+ }
83
+ return await this.Model.findAll(modelQuery);
84
+ }
85
+ async _get(id, query) {
86
+ if (id) {
87
+ return await this.Model.findByPk(id);
88
+ }
89
+ return await this.Model.findOne({
90
+ where: {
91
+ ...(query !== null && query !== void 0 ? query : {})
92
+ }
93
+ });
94
+ }
95
+ async _create(data) {
96
+ return await this.Model.create(data);
97
+ }
98
+ async _update(id, data) {
99
+ const [, updatedData] = await this.Model.update({ ...data }, {
100
+ where: {
101
+ id
102
+ },
103
+ returning: true
104
+ });
105
+ return updatedData;
106
+ }
107
+ async _patch(id, data) {
108
+ const [, updatedData] = await this.Model.update({ ...data }, {
109
+ where: {
110
+ id
111
+ },
112
+ returning: true,
113
+ });
114
+ return updatedData;
115
+ }
116
+ async _remove(id, query) {
117
+ return await this.Model.destroy({
118
+ where: {
119
+ id,
120
+ ...(query !== null && query !== void 0 ? query : {})
121
+ }
122
+ });
123
+ }
124
+ }
125
+ exports.PostgreSQLService = PostgreSQLService;
126
+ //# sourceMappingURL=postgres-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-service.js","sourceRoot":"","sources":["../../../src/services/databases/postgres-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Request, Response } from "express";
2
+ export type Query = {
3
+ [key: string]: any;
4
+ };
5
+ export type User = any;
6
+ export type FindResponse<T> = T[] | {
7
+ rows: T[];
8
+ count: number;
9
+ };
10
+ export interface InternalServiceMethods<T = any> {
11
+ find(query: Query, user?: any, req?: Request, res?: Response): Promise<FindResponse<T>>;
12
+ get(id: string | null, query?: Query, user?: User, req?: Request, res?: Response): Promise<T | null>;
13
+ create(data: Partial<T> | Partial<T>[], query?: Query, user?: User, req?: Request, res?: Response): Promise<T | T[]>;
14
+ update(id: string, data: T, query?: Query, user?: User, req?: Request, res?: Response): Promise<T | null>;
15
+ patch(id: string, data: Partial<T>, query?: Query, user?: User, req?: Request, res?: Response): Promise<T | T[] | null>;
16
+ remove(id: string, query?: Query, user?: User, req?: Request, res?: Response): Promise<T | T[] | null>;
17
+ _find: InternalServiceMethods<T>['find'];
18
+ _get: InternalServiceMethods<T>['get'];
19
+ _create: InternalServiceMethods<T>['create'];
20
+ _patch: InternalServiceMethods<T>['patch'];
21
+ _update: InternalServiceMethods<T>['update'];
22
+ _remove: InternalServiceMethods<T>['remove'];
23
+ pagination?: boolean;
24
+ filtering?: boolean;
25
+ auth?: boolean;
26
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/databases/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export * from './service';
2
+ export * from './micro-service';
3
+ export * from './register-services';
4
+ export * from './register-micro-services';
5
+ export * from './auth';
6
+ export * from './databases';
@@ -0,0 +1,23 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./service"), exports);
18
+ __exportStar(require("./micro-service"), exports);
19
+ __exportStar(require("./register-services"), exports);
20
+ __exportStar(require("./register-micro-services"), exports);
21
+ __exportStar(require("./auth"), exports);
22
+ __exportStar(require("./databases"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,kDAAgC;AAChC,sDAAoC;AACpC,4DAA0C;AAC1C,yCAAuB;AACvB,8CAA2B"}
@@ -0,0 +1,60 @@
1
+ import { AxiosInstance, AxiosRequestConfig } from 'axios';
2
+ export type MicroServiceQuery = {
3
+ [key: string]: any;
4
+ };
5
+ export interface InternalMicroServiceMethods {
6
+ find<T = any>(query: MicroServiceQuery, config?: IConfig<T>): Promise<T[]>;
7
+ get<T = any>(id: string | null, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | null>;
8
+ create<T = any, U = any>(data: Partial<U>, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | null>;
9
+ update<T = any, U = any>(id: string, data: U, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | null>;
10
+ patch<T = any, U = any>(id: string, data: Partial<U>, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | null>;
11
+ remove<T = any>(id: string, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | T[] | null>;
12
+ readonly request: AxiosInstance;
13
+ readonly call: AxiosInstance;
14
+ readonly name: string;
15
+ readonly baseURL: string;
16
+ readonly service: string;
17
+ readonly url: string;
18
+ }
19
+ export interface InternalMicroServiceOptions {
20
+ axiosConfig?: AxiosRequestConfig;
21
+ name: string;
22
+ baseURL: string;
23
+ service: string;
24
+ }
25
+ interface IExceptionConfig<T = any> {
26
+ handle?: boolean;
27
+ defaultValue?: Partial<T> | null;
28
+ }
29
+ interface IConfig<T = any> {
30
+ axiosConfig?: AxiosRequestConfig;
31
+ exception?: IExceptionConfig<T>;
32
+ /** @deprecated typo alias, use `exception` */
33
+ execption?: IExceptionConfig<T>;
34
+ }
35
+ export declare class MicroService implements InternalMicroServiceMethods {
36
+ readonly request: AxiosInstance;
37
+ readonly name: string;
38
+ readonly baseURL: string;
39
+ readonly service: string;
40
+ readonly url: string;
41
+ constructor({ axiosConfig, name, service, baseURL }: InternalMicroServiceOptions);
42
+ throwError(err: any): Error;
43
+ find<T = any>(query?: MicroServiceQuery, config?: IConfig<T>): Promise<T[]>;
44
+ get<T = any>(id: string | null, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | null>;
45
+ create<T = any, U = any>(payload: Partial<U>, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | null>;
46
+ update<T = any, U = any>(id: string, payload: U, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | null>;
47
+ patch<T = any, U = any>(id: string, payload: Partial<U>, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | null>;
48
+ remove<T = any>(id: string, query?: MicroServiceQuery, config?: IConfig<T>): Promise<T | T[] | null>;
49
+ get call(): AxiosInstance;
50
+ private getLog;
51
+ private getConfig;
52
+ private handleException;
53
+ }
54
+ export interface IMicroService {
55
+ name: string;
56
+ baseURL: string;
57
+ config?: AxiosRequestConfig;
58
+ services: string[];
59
+ }
60
+ export {};
@@ -0,0 +1,146 @@
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
+ exports.MicroService = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const errors_1 = require("../errors");
9
+ const logger_1 = require("../logger");
10
+ class MicroService {
11
+ constructor({ axiosConfig, name, service, baseURL }) {
12
+ var _a;
13
+ const providedAxiosConfig = (axiosConfig !== null && axiosConfig !== void 0 ? axiosConfig : {});
14
+ this.request = axios_1.default.create({
15
+ baseURL,
16
+ headers: {
17
+ InternalToken: (_a = process.env.INTERNAL_TOKEN) !== null && _a !== void 0 ? _a : 'internal_token',
18
+ ...providedAxiosConfig.headers,
19
+ },
20
+ ...providedAxiosConfig,
21
+ });
22
+ this.name = name;
23
+ this.baseURL = baseURL;
24
+ this.service = service;
25
+ this.url = `/${service}`;
26
+ }
27
+ throwError(err) {
28
+ var _a, _b, _c, _d;
29
+ const message = (_b = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message;
30
+ const status = (_c = err === null || err === void 0 ? void 0 : err.response) === null || _c === void 0 ? void 0 : _c.status;
31
+ if (message) {
32
+ switch (status) {
33
+ case 401: return new errors_1.Unauthorized(message);
34
+ case 400: return new errors_1.BadRequest(message);
35
+ case 500: return new errors_1.InternalServer(message);
36
+ case 204: return new errors_1.NoContent(message);
37
+ default: return new errors_1.InternalServer(message);
38
+ }
39
+ }
40
+ return new errors_1.InternalServer((_d = err === null || err === void 0 ? void 0 : err.message) !== null && _d !== void 0 ? _d : String(err));
41
+ }
42
+ async find(query, config = {}) {
43
+ var _a;
44
+ const defaultValue = [];
45
+ const { axiosConfig, exception } = this.getConfig(config, defaultValue);
46
+ try {
47
+ const { data } = await this.request.get(`${this.url}`, { ...axiosConfig, params: query });
48
+ return (_a = data === null || data === void 0 ? void 0 : data.data) !== null && _a !== void 0 ? _a : data;
49
+ }
50
+ catch (err) {
51
+ return this.handleException(exception, defaultValue, err);
52
+ }
53
+ }
54
+ async get(id, query, config = {}) {
55
+ var _a;
56
+ const defaultValue = {};
57
+ const { axiosConfig, exception } = this.getConfig(config, defaultValue);
58
+ try {
59
+ const { data } = await this.request.get(`${this.url}/${id}`, { ...axiosConfig, params: query });
60
+ return (_a = data === null || data === void 0 ? void 0 : data.data) !== null && _a !== void 0 ? _a : data;
61
+ }
62
+ catch (err) {
63
+ return this.handleException(exception, defaultValue, err);
64
+ }
65
+ }
66
+ async create(payload, query, config = {}) {
67
+ var _a;
68
+ const defaultValue = {};
69
+ const { axiosConfig, exception } = this.getConfig(config, defaultValue);
70
+ try {
71
+ const { data } = await this.request.post(`${this.url}`, payload, { ...axiosConfig, params: query });
72
+ return (_a = data === null || data === void 0 ? void 0 : data.data) !== null && _a !== void 0 ? _a : data;
73
+ }
74
+ catch (err) {
75
+ return this.handleException(exception, defaultValue, err);
76
+ }
77
+ }
78
+ async update(id, payload, query, config = {}) {
79
+ var _a;
80
+ const defaultValue = {};
81
+ const { axiosConfig, exception } = this.getConfig(config, defaultValue);
82
+ try {
83
+ const { data } = await this.request.put(`${this.url}/${id}`, payload, { ...axiosConfig, params: query });
84
+ return (_a = data === null || data === void 0 ? void 0 : data.data) !== null && _a !== void 0 ? _a : data;
85
+ }
86
+ catch (err) {
87
+ return this.handleException(exception, defaultValue, err);
88
+ }
89
+ }
90
+ async patch(id, payload, query, config = {}) {
91
+ var _a;
92
+ const defaultValue = {};
93
+ const { axiosConfig, exception } = this.getConfig(config, defaultValue);
94
+ try {
95
+ const { data } = await this.request.patch(`${this.url}/${id}`, payload, { ...axiosConfig, params: query });
96
+ return (_a = data === null || data === void 0 ? void 0 : data.data) !== null && _a !== void 0 ? _a : data;
97
+ }
98
+ catch (err) {
99
+ return this.handleException(exception, defaultValue, err);
100
+ }
101
+ }
102
+ async remove(id, query, config = {}) {
103
+ var _a;
104
+ const defaultValue = {};
105
+ const { axiosConfig, exception } = this.getConfig(config, defaultValue);
106
+ try {
107
+ const { data } = await this.request.delete(`${this.url}/${id}`, { ...axiosConfig, params: query });
108
+ return (_a = data === null || data === void 0 ? void 0 : data.data) !== null && _a !== void 0 ? _a : data;
109
+ }
110
+ catch (err) {
111
+ return this.handleException(exception, defaultValue, err);
112
+ }
113
+ }
114
+ get call() {
115
+ return this.request;
116
+ }
117
+ getLog(err) {
118
+ var _a, _b, _c, _d, _e, _f, _g;
119
+ const message = (_b = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message;
120
+ const status = (_c = err === null || err === void 0 ? void 0 : err.response) === null || _c === void 0 ? void 0 : _c.status;
121
+ logger_1.Logger.error(`Error ${this.name}`, {
122
+ message,
123
+ status,
124
+ url: this.url,
125
+ errorMessage: (_d = message !== null && message !== void 0 ? message : err === null || err === void 0 ? void 0 : err.message) !== null && _d !== void 0 ? _d : err,
126
+ error: (_g = (_f = (_e = err === null || err === void 0 ? void 0 : err.response) === null || _e === void 0 ? void 0 : _e.data) !== null && _f !== void 0 ? _f : err === null || err === void 0 ? void 0 : err.response) !== null && _g !== void 0 ? _g : err,
127
+ });
128
+ }
129
+ getConfig(config, defaultValue) {
130
+ var _a, _b, _c;
131
+ const src = config !== null && config !== void 0 ? config : {};
132
+ const axiosConfig = (_a = src.axiosConfig) !== null && _a !== void 0 ? _a : {};
133
+ const exception = (_c = (_b = src.exception) !== null && _b !== void 0 ? _b : src.execption) !== null && _c !== void 0 ? _c : { defaultValue, handle: false };
134
+ return { axiosConfig, exception };
135
+ }
136
+ handleException(exception, defaultInitialValue, err) {
137
+ const { defaultValue = defaultInitialValue, handle = false } = exception !== null && exception !== void 0 ? exception : {};
138
+ if (handle) {
139
+ this.getLog(err);
140
+ return defaultValue;
141
+ }
142
+ throw this.throwError(err);
143
+ }
144
+ }
145
+ exports.MicroService = MicroService;
146
+ //# sourceMappingURL=micro-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"micro-service.js","sourceRoot":"","sources":["../../src/services/micro-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function registerMicroServices(): Promise<any>;
@@ -0,0 +1,41 @@
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
+ exports.registerMicroServices = void 0;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ const logger_1 = require("../logger");
10
+ const micro_service_1 = require("./micro-service");
11
+ async function registerMicroServices() {
12
+ var _a, _b, _c;
13
+ if (((_a = require.main) === null || _a === void 0 ? void 0 : _a.filename) == undefined) {
14
+ throw new Error("Please provide service path");
15
+ }
16
+ const appDir = path_1.default.dirname((_b = require.main) === null || _b === void 0 ? void 0 : _b.filename);
17
+ const serviceDirPath = appDir + '/micro-services';
18
+ const servicesNames = (await fs_1.promises.readdir(serviceDirPath)).filter(file => !/^(index|types)\.(ts|js|d\.ts)$/.test(file) && !/\.map$/.test(file));
19
+ const services = {};
20
+ for (const serviceName of servicesNames) {
21
+ const servicePath = `${serviceDirPath}/${serviceName}`;
22
+ try {
23
+ const instance = new (require(servicePath).default);
24
+ if (instance) {
25
+ const { baseURL, name, services: subServicesNames, config } = instance;
26
+ services[name] = (_c = services[name]) !== null && _c !== void 0 ? _c : {};
27
+ subServicesNames === null || subServicesNames === void 0 ? void 0 : subServicesNames.forEach((subService) => {
28
+ services[name][subService] = new micro_service_1.MicroService({ axiosConfig: config, name, service: subService, baseURL });
29
+ });
30
+ }
31
+ }
32
+ catch (error) {
33
+ logger_1.Logger.warn("No micro services", {
34
+ error
35
+ });
36
+ }
37
+ }
38
+ return services;
39
+ }
40
+ exports.registerMicroServices = registerMicroServices;
41
+ //# sourceMappingURL=register-micro-services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-micro-services.js","sourceRoot":"","sources":["../../src/services/register-micro-services.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA4B;AAC5B,gDAAwB;AACxB,sCAAmC;AACnC,mDAA+C;AAExC,KAAK,UAAU,qBAAqB;;IACzC,IAAI,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,KAAI,SAAS,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;KAC/C;IACD,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAkB,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,MAAM,GAAG,iBAAiB,CAAC;IAElD,MAAM,aAAa,GAAG,CAAC,MAAM,aAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CACnE,IAAI,CAAC,EAAE,CAAC,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7E,CAAC;IAEF,MAAM,QAAQ,GAAQ,EAAE,CAAA;IAExB,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE;QACvC,MAAM,WAAW,GAAG,GAAG,cAAc,IAAI,WAAW,EAAE,CAAC;QACvD,IAAI;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,QAAQ,EAAE;gBACZ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAA;gBACtE,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAA,QAAQ,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAA;gBACrC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,CAAC,CAAC,UAAkB,EAAE,EAAE;oBAC/C,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,4BAAY,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC5G,CAAC,CAAC,CAAA;aACH;SACF;QAAC,OAAM,KAAK,EAAE;YACb,eAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC/B,KAAK;aACN,CAAC,CAAA;SACH;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AA/BD,sDA+BC"}
@@ -0,0 +1,5 @@
1
+ import type { Application } from 'express';
2
+ import { Config, IAuth } from '..';
3
+ export declare function registerServices(app: Application, auth?: IAuth, database?: Config['database']): Promise<{
4
+ [serviceName: string]: any;
5
+ }>;