skyeye-svc-common-utils 2.0.0-dev0.17 → 2.0.0-dev0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/azure/cognitiveSearch/QueryType.d.ts +8 -0
- package/dist/lib/azure/cognitiveSearch/QueryType.js +13 -0
- package/dist/lib/azure/cognitiveSearch/QueryType.js.map +1 -0
- package/dist/lib/azure/cognitiveSearch/SearchClient.d.ts +42 -0
- package/dist/lib/azure/cognitiveSearch/SearchClient.js +166 -0
- package/dist/lib/azure/cognitiveSearch/SearchClient.js.map +1 -0
- package/dist/lib/azure/cognitiveSearch/SearchFacets.d.ts +16 -0
- package/dist/lib/azure/cognitiveSearch/SearchFacets.js +3 -0
- package/dist/lib/azure/cognitiveSearch/SearchFacets.js.map +1 -0
- package/dist/lib/azure/cognitiveSearch/SearchFilter.d.ts +68 -0
- package/dist/lib/azure/cognitiveSearch/SearchFilter.js +125 -0
- package/dist/lib/azure/cognitiveSearch/SearchFilter.js.map +1 -0
- package/dist/lib/azure/cognitiveSearch/SearchMode.d.ts +9 -0
- package/dist/lib/azure/cognitiveSearch/SearchMode.js +14 -0
- package/dist/lib/azure/cognitiveSearch/SearchMode.js.map +1 -0
- package/dist/lib/azure/cognitiveSearch/SearchOption.d.ts +88 -0
- package/dist/lib/azure/cognitiveSearch/SearchOption.js +104 -0
- package/dist/lib/azure/cognitiveSearch/SearchOption.js.map +1 -0
- package/dist/lib/azure/cognitiveSearch/SearchOrder.d.ts +9 -0
- package/dist/lib/azure/cognitiveSearch/SearchOrder.js +3 -0
- package/dist/lib/azure/cognitiveSearch/SearchOrder.js.map +1 -0
- package/dist/lib/azure/cognitiveSearch/index.d.ts +7 -0
- package/dist/lib/azure/cognitiveSearch/index.js +24 -0
- package/dist/lib/azure/cognitiveSearch/index.js.map +1 -0
- package/dist/lib/azure/index.d.ts +7 -0
- package/dist/lib/azure/index.js +24 -0
- package/dist/lib/azure/index.js.map +1 -0
- package/dist/lib/fetch/index.d.ts +2 -0
- package/dist/lib/fetch/index.js +19 -0
- package/dist/lib/fetch/index.js.map +1 -0
- package/dist/lib/fetch/sendRequest.d.ts +7 -0
- package/dist/lib/fetch/sendRequest.js +25 -0
- package/dist/lib/fetch/sendRequest.js.map +1 -0
- package/dist/lib/fetch/sendRequest.test.d.ts +1 -0
- package/dist/lib/fetch/sendRequest.test.js +27 -0
- package/dist/lib/fetch/sendRequest.test.js.map +1 -0
- package/dist/lib/fetch/sendRequestWithTimeout.d.ts +9 -0
- package/dist/lib/fetch/sendRequestWithTimeout.js +53 -0
- package/dist/lib/fetch/sendRequestWithTimeout.js.map +1 -0
- package/dist/lib/fetch/sendRequestWithTimeout.test.d.ts +1 -0
- package/dist/lib/fetch/sendRequestWithTimeout.test.js +43 -0
- package/dist/lib/fetch/sendRequestWithTimeout.test.js.map +1 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.js +21 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/logger/index.d.ts +2 -0
- package/dist/lib/logger/index.js +19 -0
- package/dist/lib/logger/index.js.map +1 -0
- package/dist/lib/logger/logger.d.ts +16 -0
- package/dist/lib/logger/logger.js +120 -0
- package/dist/lib/logger/logger.js.map +1 -0
- package/dist/lib/logger/morganLogger.d.ts +4 -0
- package/dist/lib/logger/morganLogger.js +27 -0
- package/dist/lib/logger/morganLogger.js.map +1 -0
- package/dist/lib/teams/LogMessage.d.ts +51 -0
- package/dist/lib/teams/LogMessage.js +33 -0
- package/dist/lib/teams/LogMessage.js.map +1 -0
- package/dist/lib/teams/broadcastLogMessage.d.ts +8 -0
- package/dist/lib/teams/broadcastLogMessage.js +81 -0
- package/dist/lib/teams/broadcastLogMessage.js.map +1 -0
- package/dist/lib/teams/broadcastLogMessage.test.d.ts +1 -0
- package/dist/lib/teams/broadcastLogMessage.test.js +25 -0
- package/dist/lib/teams/broadcastLogMessage.test.js.map +1 -0
- package/dist/lib/teams/index.d.ts +2 -0
- package/dist/lib/teams/index.js +19 -0
- package/dist/lib/teams/index.js.map +1 -0
- package/dist/test/setup-tests.d.ts +0 -0
- package/dist/test/setup-tests.js +3 -0
- package/dist/test/setup-tests.js.map +1 -0
- package/dist/types/ServiceResponse.d.ts +16 -0
- package/dist/types/ServiceResponse.js +3 -0
- package/dist/types/ServiceResponse.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/baseClass/appDataSource.d.ts +7 -0
- package/dist/utils/baseClass/appDataSource.js +31 -0
- package/dist/utils/baseClass/appDataSource.js.map +1 -0
- package/dist/utils/baseClass/baseController.js +8 -8
- package/dist/utils/baseClass/baseController.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/middleware/loadConfig.d.ts +128 -0
- package/dist/utils/middleware/loadConfig.js +143 -0
- package/dist/utils/middleware/loadConfig.js.map +1 -0
- package/dist/utils/middleware/startdbConnection.js +3 -5
- package/dist/utils/middleware/startdbConnection.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +1 -2
- package/src/utils/baseClass/appDataSource.ts +23 -0
- package/src/utils/baseClass/baseController.ts +9 -9
- package/dist/utils/baseClass/dataSourceManager.d.ts +0 -11
- package/dist/utils/baseClass/dataSourceManager.js +0 -59
- package/dist/utils/baseClass/dataSourceManager.js.map +0 -1
- package/src/utils/baseClass/dataSourceManager.ts +0 -49
- package/src/utils/middleware/startdbConnection.ts +0 -20
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SearchOption = void 0;
|
|
4
|
+
const SearchFilter_1 = require("./SearchFilter");
|
|
5
|
+
const SearchMode_1 = require("./SearchMode");
|
|
6
|
+
/**
|
|
7
|
+
* @classdesc the class is to wrap an option when retrieving the data from
|
|
8
|
+
* @azure/search-documents/query
|
|
9
|
+
* @property searchOptionType - to store the interface of the option, noted that
|
|
10
|
+
* when calling the query, you should use SearchOption.value() instead of using
|
|
11
|
+
* this attribute.
|
|
12
|
+
*/
|
|
13
|
+
class SearchOption {
|
|
14
|
+
constructor(searchOptionType) {
|
|
15
|
+
/**
|
|
16
|
+
* @description as an adaptor to transform the type for @azure/search-documents
|
|
17
|
+
* @returns {Object} object which can be accepted by @azure/search-documents
|
|
18
|
+
*/
|
|
19
|
+
this.value = () => {
|
|
20
|
+
let value = {};
|
|
21
|
+
value.includeTotalCount = this.searchOptionType.count;
|
|
22
|
+
value.select = this.searchOptionType.select;
|
|
23
|
+
value.skip = this.searchOptionType.skip;
|
|
24
|
+
value.top = this.searchOptionType.top;
|
|
25
|
+
value.searchMode = this.searchOptionType.searchMode;
|
|
26
|
+
value.searchFields = this.searchOptionType.searchFields;
|
|
27
|
+
value.scoringProfile = this.searchOptionType.scoringProfile;
|
|
28
|
+
value.highlightFields = this.searchOptionType.highlightFields;
|
|
29
|
+
value.highlightPreTag = this.searchOptionType.highlightPreTag;
|
|
30
|
+
value.highlightPostTag = this.searchOptionType.highlightPostTag;
|
|
31
|
+
value.queryType = this.searchOptionType.queryType;
|
|
32
|
+
if (!!this.searchOptionType.filter) {
|
|
33
|
+
value.filter = this.composeFilter();
|
|
34
|
+
}
|
|
35
|
+
if (!!this.searchOptionType.select && this.searchOptionType.select.length) {
|
|
36
|
+
value.select = this.searchOptionType.select;
|
|
37
|
+
}
|
|
38
|
+
if (!!this.searchOptionType.orderBy && this.searchOptionType.orderBy.length) {
|
|
39
|
+
value.orderBy = this.composeOrder();
|
|
40
|
+
}
|
|
41
|
+
if (!!this.searchOptionType.facets && this.searchOptionType.facets.length) {
|
|
42
|
+
value.facets = this.composeFacets();
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
};
|
|
46
|
+
// override the default settings if the value is empty from the given OptionType
|
|
47
|
+
this.searchOptionType = Object.assign(Object.assign({}, SearchOption.defaultSearchOption), searchOptionType);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @description to compose flatten-filter string for @azure/search-documents
|
|
51
|
+
* @returns {string} flatten-filter string
|
|
52
|
+
*/
|
|
53
|
+
composeFilter() {
|
|
54
|
+
if (typeof (this.searchOptionType.filter) === 'string') {
|
|
55
|
+
return this.searchOptionType.filter;
|
|
56
|
+
}
|
|
57
|
+
return this.searchOptionType.filterCombinationType === "and" /* CombinationType.and */ ?
|
|
58
|
+
(0, SearchFilter_1.AND)(...this.searchOptionType.filter)
|
|
59
|
+
:
|
|
60
|
+
(0, SearchFilter_1.OR)(...this.searchOptionType.filter);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* @description to compose flatten-order string for @azure/search-documents
|
|
64
|
+
* @returns {Array<string>} flatten-order string
|
|
65
|
+
*/
|
|
66
|
+
composeOrder() {
|
|
67
|
+
return this.searchOptionType.orderBy.map((s) => `${s.attr} ${s.orderBy}`);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @description to compose flatten-facets string for @azure/search-documents
|
|
71
|
+
* @returns {Array<string>} flatten-facets string
|
|
72
|
+
*/
|
|
73
|
+
composeFacets() {
|
|
74
|
+
return this.searchOptionType.facets.map((s) => {
|
|
75
|
+
let res = `${s.attr}`;
|
|
76
|
+
if (s.count !== null && s.count !== undefined) {
|
|
77
|
+
res += `,count:${s.count}`;
|
|
78
|
+
}
|
|
79
|
+
if (!!s.sort) {
|
|
80
|
+
res += `,sort:${s.sort}`;
|
|
81
|
+
}
|
|
82
|
+
if (s.interval !== null && s.interval !== undefined) {
|
|
83
|
+
res += `,interval:${s.interval}`;
|
|
84
|
+
}
|
|
85
|
+
if (!!s.timeoffset) {
|
|
86
|
+
res += `,timeoffset:${s.timeoffset}`;
|
|
87
|
+
}
|
|
88
|
+
return res;
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.SearchOption = SearchOption;
|
|
93
|
+
/**
|
|
94
|
+
* @description when initializing a SearchOption, the defaultSearchOption
|
|
95
|
+
* will override the undefined props
|
|
96
|
+
*/
|
|
97
|
+
SearchOption.defaultSearchOption = {
|
|
98
|
+
count: false,
|
|
99
|
+
top: 50,
|
|
100
|
+
skip: 0,
|
|
101
|
+
searchMode: SearchMode_1.SearchMode.all,
|
|
102
|
+
filterCombinationType: "and" /* CombinationType.and */
|
|
103
|
+
};
|
|
104
|
+
//# sourceMappingURL=SearchOption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchOption.js","sourceRoot":"","sources":["../../../../src/lib/azure/cognitiveSearch/SearchOption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description SearchOrder as a type to depict the orderBy props
|
|
3
|
+
* @property {string} attr - the search field which is used to be sorted
|
|
4
|
+
* @property {'desc' | 'asc'} orderBy - descent or ascent
|
|
5
|
+
*/
|
|
6
|
+
export type SearchOrder = {
|
|
7
|
+
attr: string;
|
|
8
|
+
orderBy: 'desc' | 'asc';
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchOrder.js","sourceRoot":"","sources":["../../../../src/lib/azure/cognitiveSearch/SearchOrder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
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("./QueryType"), exports);
|
|
18
|
+
__exportStar(require("./SearchClient"), exports);
|
|
19
|
+
__exportStar(require("./SearchFacets"), exports);
|
|
20
|
+
__exportStar(require("./SearchFilter"), exports);
|
|
21
|
+
__exportStar(require("./SearchMode"), exports);
|
|
22
|
+
__exportStar(require("./SearchOption"), exports);
|
|
23
|
+
__exportStar(require("./SearchOrder"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/azure/cognitiveSearch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B;AAC/B,+CAA6B;AAC7B,iDAA+B;AAC/B,gDAA8B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './cognitiveSearch';
|
|
2
|
+
export * from './azureBlobStorage';
|
|
3
|
+
export * from './azureKeyVault';
|
|
4
|
+
export * from './azureServiceBusClient';
|
|
5
|
+
export * from './azureServiceBusQueue';
|
|
6
|
+
export * from './azureStorageQueue';
|
|
7
|
+
export * from './azureTableStorage';
|
|
@@ -0,0 +1,24 @@
|
|
|
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("./cognitiveSearch"), exports);
|
|
18
|
+
__exportStar(require("./azureBlobStorage"), exports);
|
|
19
|
+
__exportStar(require("./azureKeyVault"), exports);
|
|
20
|
+
__exportStar(require("./azureServiceBusClient"), exports);
|
|
21
|
+
__exportStar(require("./azureServiceBusQueue"), exports);
|
|
22
|
+
__exportStar(require("./azureStorageQueue"), exports);
|
|
23
|
+
__exportStar(require("./azureTableStorage"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/azure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC;AAChC,0DAAwC;AACxC,yDAAuC;AACvC,sDAAoC;AACpC,sDAAoC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./sendRequest"), exports);
|
|
18
|
+
__exportStar(require("./sendRequestWithTimeout"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/fetch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,2DAAyC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.sendRequest = void 0;
|
|
16
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
17
|
+
/**
|
|
18
|
+
* @description wrapper of node-fetch
|
|
19
|
+
* @param {string} url - request endpoint
|
|
20
|
+
* @param {any} options - fetch options
|
|
21
|
+
* @returns {any} response
|
|
22
|
+
*/
|
|
23
|
+
const sendRequest = (url, options) => __awaiter(void 0, void 0, void 0, function* () { return yield (0, node_fetch_1.default)(url, options); });
|
|
24
|
+
exports.sendRequest = sendRequest;
|
|
25
|
+
//# sourceMappingURL=sendRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendRequest.js","sourceRoot":"","sources":["../../../src/lib/fetch/sendRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4DAA+B;AAG/B;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CAAO,GAAW,EAAE,OAAY,EAAE,EAAE,kDAAC,OAAA,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE,OAAO,CAAC,CAAA,GAAA,CAAC;AAA7E,QAAA,WAAW,eAAkE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
const sendRequest_1 = require("./sendRequest");
|
|
13
|
+
const utils_1 = require("../../utils");
|
|
14
|
+
const loadConfig_1 = require("../../utils/middleware/loadConfig");
|
|
15
|
+
beforeAll(() => { return (0, loadConfig_1.loadConfig)(); });
|
|
16
|
+
jest.setTimeout(utils_1.QAConst.jestDefaultTimeoutMsec);
|
|
17
|
+
describe('/fetch/sendRequest()', () => {
|
|
18
|
+
test(`By given google's homepage, sendRequest() should response 200 status code by GET request`, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
const resp = yield (0, sendRequest_1.sendRequest)('https://www.google.com', { method: 'GET' });
|
|
20
|
+
expect(resp.status).toEqual(200);
|
|
21
|
+
}));
|
|
22
|
+
test(`By given google's homepage, sendRequest() should response 405 status code by POST request`, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
const resp = yield (0, sendRequest_1.sendRequest)('https://www.google.com', { method: 'POST' });
|
|
24
|
+
expect(resp.status).toEqual(405);
|
|
25
|
+
}));
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=sendRequest.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendRequest.test.js","sourceRoot":"","sources":["../../../src/lib/fetch/sendRequest.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+CAA4C;AAC5C,uCAAsC;AACtC,kEAA+D;AAG/D,SAAS,CAAC,GAAG,EAAE,GAAG,OAAO,IAAA,uBAAU,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,CAAC,UAAU,CAAC,eAAO,CAAC,sBAAsB,CAAC,CAAC;AAEhD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,0FAA0F,EAAE,GAAS,EAAE;QACxG,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAW,EAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,2FAA2F,EAAE,GAAS,EAAE;QACzG,MAAM,IAAI,GAAG,MAAM,IAAA,yBAAW,EAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC,CAAA,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description send a request which will automatically abort within a given time
|
|
3
|
+
* if the request is not response yet
|
|
4
|
+
* @param {string} url - url of request endpoint
|
|
5
|
+
* @param {any} options - fetch option
|
|
6
|
+
* @param {number} abortWithinMs - automatically abort after given millisecond
|
|
7
|
+
* @returns {any} response
|
|
8
|
+
*/
|
|
9
|
+
export declare function sendRequestWithTimeout(url: string, options: any, abortWithinMs?: number): Promise<any>;
|
|
@@ -0,0 +1,53 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.sendRequestWithTimeout = void 0;
|
|
16
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
17
|
+
const abort_controller_1 = require("@azure/abort-controller");
|
|
18
|
+
const appConst_1 = require("../../utils/appConst");
|
|
19
|
+
/**
|
|
20
|
+
* @description to store the current processing request, it should only be called
|
|
21
|
+
* by function sendRequestWithTimeout
|
|
22
|
+
*/
|
|
23
|
+
const abortedSet = new Set();
|
|
24
|
+
/**
|
|
25
|
+
* @description send a request which will automatically abort within a given time
|
|
26
|
+
* if the request is not response yet
|
|
27
|
+
* @param {string} url - url of request endpoint
|
|
28
|
+
* @param {any} options - fetch option
|
|
29
|
+
* @param {number} abortWithinMs - automatically abort after given millisecond
|
|
30
|
+
* @returns {any} response
|
|
31
|
+
*/
|
|
32
|
+
function sendRequestWithTimeout(url, options, abortWithinMs = appConst_1.thirdPartyRegulation.requestLimitationMsec) {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
const controller = new abort_controller_1.AbortController();
|
|
35
|
+
const timeout = setTimeout(() => {
|
|
36
|
+
abortedSet.add(url);
|
|
37
|
+
controller.abort();
|
|
38
|
+
}, abortWithinMs);
|
|
39
|
+
try {
|
|
40
|
+
const response = yield (0, node_fetch_1.default)(url, Object.assign({ signal: controller.signal }, options));
|
|
41
|
+
clearTimeout(timeout);
|
|
42
|
+
return response;
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
if (abortedSet.has(url) && err.name === 'AbortError') {
|
|
46
|
+
abortedSet.delete(url);
|
|
47
|
+
}
|
|
48
|
+
throw err;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
exports.sendRequestWithTimeout = sendRequestWithTimeout;
|
|
53
|
+
//# sourceMappingURL=sendRequestWithTimeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendRequestWithTimeout.js","sourceRoot":"","sources":["../../../src/lib/fetch/sendRequestWithTimeout.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4DAA+B;AAC/B,8DAA0D;AAC1D,mDAA4D;AAG5D;;;GAGG;AACH,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAU,CAAC;AAElD;;;;;;;GAOG;AACH,SAAsB,sBAAsB,CACxC,GAAW,EACX,OAAY,EACZ,gBAAwB,+BAAoB,CAAC,qBAAqB;;QAElE,MAAM,UAAU,GAAG,IAAI,kCAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC,EAAE,aAAa,CAAC,CAAC;QAClB,IAAI;YACA,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,kBAAI,MAAM,EAAE,UAAU,CAAC,MAAM,IAAK,OAAO,EAAE,CAAC;YAC5E,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,QAAQ,CAAC;SACnB;QAAC,OAAO,GAAG,EAAE;YACV,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAK,GAAa,CAAC,IAAI,KAAK,YAAY,EAAE;gBAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAAE;YAC5F,MAAM,GAAG,CAAC;SACb;IACL,CAAC;CAAA;AAlBD,wDAkBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
const sendRequestWithTimeout_1 = require("./sendRequestWithTimeout");
|
|
13
|
+
const utils_1 = require("../../utils");
|
|
14
|
+
const loadConfig_1 = require("../../utils/middleware/loadConfig");
|
|
15
|
+
beforeAll(() => { return (0, loadConfig_1.loadConfig)(); });
|
|
16
|
+
jest.setTimeout(utils_1.QAConst.jestDefaultTimeoutMsec);
|
|
17
|
+
describe('/fetch/sendRequestWithTimeout()', () => {
|
|
18
|
+
test(`By given google's homepage, request should response 200 status code by GET request within 1000 ms`, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
const resp = yield (0, sendRequestWithTimeout_1.sendRequestWithTimeout)('http://www.google.com', { method: 'GET' }, 1000);
|
|
20
|
+
expect(resp.status).toEqual(200);
|
|
21
|
+
}));
|
|
22
|
+
test(`By given google's homepage, request should be aborted by GET request within 1 ms`, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
try {
|
|
24
|
+
yield (0, sendRequestWithTimeout_1.sendRequestWithTimeout)('http://www.google.com', { method: 'GET' }, 1);
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
expect(err.name).toEqual('AbortError');
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
test(`By given google's homepage, request should response 405 status code by POST request within 1000 ms`, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
+
const resp = yield (0, sendRequestWithTimeout_1.sendRequestWithTimeout)('https://www.google.com', { method: 'POST' }, 1000);
|
|
32
|
+
expect(resp.status).toEqual(405);
|
|
33
|
+
}));
|
|
34
|
+
test(`By given google's homepage, request should be aborted by POST request within 1 ms`, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
try {
|
|
36
|
+
yield (0, sendRequestWithTimeout_1.sendRequestWithTimeout)('http://www.google.com', { method: 'POST' }, 1);
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
expect(err.name).toEqual('AbortError');
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=sendRequestWithTimeout.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendRequestWithTimeout.test.js","sourceRoot":"","sources":["../../../src/lib/fetch/sendRequestWithTimeout.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,qEAAkE;AAClE,uCAAsC;AACtC,kEAA+D;AAG/D,SAAS,CAAC,GAAG,EAAE,GAAG,OAAO,IAAA,uBAAU,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,IAAI,CAAC,UAAU,CAAC,eAAO,CAAC,sBAAsB,CAAC,CAAC;AAEhD,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC7C,IAAI,CAAC,mGAAmG,EAAE,GAAS,EAAE;QACjH,MAAM,IAAI,GAAG,MAAM,IAAA,+CAAsB,EAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5F,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,kFAAkF,EAAE,GAAS,EAAE;QAChG,IAAI;YACA,MAAM,IAAA,+CAAsB,EAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;SAC/E;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,CAAE,GAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SACrD;IACL,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,oGAAoG,EAAE,GAAS,EAAE;QAClH,MAAM,IAAI,GAAG,MAAM,IAAA,+CAAsB,EAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9F,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC,CAAA,CAAC,CAAC;IAEH,IAAI,CAAC,mFAAmF,EAAE,GAAS,EAAE;QACjG,IAAI;YACA,MAAM,IAAA,+CAAsB,EAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;SAChF;QAAC,OAAO,GAAG,EAAE;YACV,MAAM,CAAE,GAAa,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SACrD;IACL,CAAC,CAAA,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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("./azure"), exports);
|
|
18
|
+
__exportStar(require("./fetch"), exports);
|
|
19
|
+
__exportStar(require("./logger"), exports);
|
|
20
|
+
__exportStar(require("./teams"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyB;AACzB,0CAAwB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./logger"), exports);
|
|
18
|
+
__exportStar(require("./morganLogger"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/logger/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,iDAA+B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description only be used in the override native `console` with function `verbose`
|
|
3
|
+
*/
|
|
4
|
+
interface ConsoleExtension {
|
|
5
|
+
verbose: Function;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @description custom logger will be controlled by two environment values:
|
|
9
|
+
* - `NODE_ENV`: The environment decides the default log level
|
|
10
|
+
* - `LOG_LEVEL`: if there's any pre-defined LOG_LEVEL, it will then override
|
|
11
|
+
* the default log level. Noted that you may expect in some services, i.e. Azure Function,
|
|
12
|
+
* you may not able to use the local storage. Set LOG_LEVEL = `disabled` can close
|
|
13
|
+
* custom logger.
|
|
14
|
+
*/
|
|
15
|
+
export declare const logger: import("winston").Logger | (Console & ConsoleExtension);
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,120 @@
|
|
|
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
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.logger = void 0;
|
|
27
|
+
const winston_1 = require("winston");
|
|
28
|
+
const fs_1 = __importDefault(require("fs"));
|
|
29
|
+
const winston_daily_rotate_file_1 = __importDefault(require("winston-daily-rotate-file"));
|
|
30
|
+
const appConst_1 = require("../../utils/appConst");
|
|
31
|
+
const teams_1 = require("../teams");
|
|
32
|
+
/**
|
|
33
|
+
* @description make `verbose()` as an alias of `console.debug()`
|
|
34
|
+
*/
|
|
35
|
+
const customConsole = Object.assign(Object.assign({}, console), { verbose: (message, ...optionalParams) => {
|
|
36
|
+
console.debug(message, ...optionalParams);
|
|
37
|
+
} });
|
|
38
|
+
/**
|
|
39
|
+
* @description custom logger will be controlled by two environment values:
|
|
40
|
+
* - `NODE_ENV`: The environment decides the default log level
|
|
41
|
+
* - `LOG_LEVEL`: if there's any pre-defined LOG_LEVEL, it will then override
|
|
42
|
+
* the default log level. Noted that you may expect in some services, i.e. Azure Function,
|
|
43
|
+
* you may not able to use the local storage. Set LOG_LEVEL = `disabled` can close
|
|
44
|
+
* custom logger.
|
|
45
|
+
*/
|
|
46
|
+
exports.logger = (() => {
|
|
47
|
+
// since const environment value is loaded in compile time, we fetch directly here
|
|
48
|
+
const environment = appConst_1.zEnvironment.safeParse(process.env.NODE_ENV).success ?
|
|
49
|
+
process.env.NODE_ENV : appConst_1.zEnvironment.enum.development;
|
|
50
|
+
const customLogLevel = process.env.LOG_LEVEL;
|
|
51
|
+
// Use default console if the LOG_LEVEL is specified as `disabled`
|
|
52
|
+
if (customLogLevel === teams_1.zLogLevel.enum.disabled) {
|
|
53
|
+
return customConsole;
|
|
54
|
+
}
|
|
55
|
+
fs_1.default.existsSync(appConst_1.loggerSettings.path) || fs_1.default.mkdirSync(appConst_1.loggerSettings.path, { recursive: true });
|
|
56
|
+
const logLevel = (() => {
|
|
57
|
+
// override the Log level if there's non-empty env
|
|
58
|
+
if (teams_1.zLogLevel.safeParse(customLogLevel).success) {
|
|
59
|
+
return customLogLevel;
|
|
60
|
+
}
|
|
61
|
+
switch (environment) {
|
|
62
|
+
case appConst_1.zEnvironment.enum.test:
|
|
63
|
+
case appConst_1.zEnvironment.enum.dev:
|
|
64
|
+
case appConst_1.zEnvironment.enum.development:
|
|
65
|
+
return teams_1.zLogLevel.enum.verbose;
|
|
66
|
+
case appConst_1.zEnvironment.enum.preview:
|
|
67
|
+
case appConst_1.zEnvironment.enum.staging:
|
|
68
|
+
case appConst_1.zEnvironment.enum.beta:
|
|
69
|
+
case appConst_1.zEnvironment.enum.production:
|
|
70
|
+
return teams_1.zLogLevel.enum.info;
|
|
71
|
+
}
|
|
72
|
+
})();
|
|
73
|
+
const self = (0, winston_1.createLogger)({
|
|
74
|
+
level: logLevel,
|
|
75
|
+
format: winston_1.format.combine(winston_1.format.json(), winston_1.format.timestamp(), winston_1.format.printf((_a) => {
|
|
76
|
+
var { timestamp, level, message } = _a, metadata = __rest(_a, ["timestamp", "level", "message"]);
|
|
77
|
+
return JSON.stringify(Object.assign({ timestamp,
|
|
78
|
+
level,
|
|
79
|
+
message }, (metadata || {})));
|
|
80
|
+
})),
|
|
81
|
+
transports: [
|
|
82
|
+
new winston_daily_rotate_file_1.default({
|
|
83
|
+
filename: `${appConst_1.loggerSettings.path}backend-error-%DATE%.log`,
|
|
84
|
+
level: 'error',
|
|
85
|
+
datePattern: 'YYYY-MM-DD'
|
|
86
|
+
}),
|
|
87
|
+
new winston_daily_rotate_file_1.default({
|
|
88
|
+
filename: `${appConst_1.loggerSettings.path}backend-combined-%DATE%.log`,
|
|
89
|
+
datePattern: 'YYYY-MM-DD'
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
});
|
|
93
|
+
// if (environment !== zEnvironment.enum.production) {
|
|
94
|
+
self.add(new winston_1.transports.Console({ format: winston_1.format.combine(winston_1.format.json(), winston_1.format.timestamp(), winston_1.format.printf((_a) => {
|
|
95
|
+
var { timestamp, level, message } = _a, metadata = __rest(_a, ["timestamp", "level", "message"]);
|
|
96
|
+
return JSON.stringify(Object.assign({ timestamp,
|
|
97
|
+
level,
|
|
98
|
+
message }, (metadata || {})));
|
|
99
|
+
})) }));
|
|
100
|
+
// }
|
|
101
|
+
// we broadcast the messages on Teams only if the environment is not `test` nor `development`.
|
|
102
|
+
if (appConst_1.loggerSettings.teamsChannelDisabled && environment !== appConst_1.zEnvironment.enum.test && environment !== appConst_1.zEnvironment.enum.development) {
|
|
103
|
+
self.on('data', (context) => __awaiter(void 0, void 0, void 0, function* () {
|
|
104
|
+
switch (context.level) {
|
|
105
|
+
case teams_1.zLogLevel.enum.verbose:
|
|
106
|
+
case teams_1.zLogLevel.enum.info:
|
|
107
|
+
return;
|
|
108
|
+
case teams_1.zLogLevel.enum.warn:
|
|
109
|
+
(0, teams_1.broadcastLogMessage)(teams_1.zLogLevel.enum.warn, context.message.startsWith('\t') ? context.message.substring(1) : context.message);
|
|
110
|
+
return;
|
|
111
|
+
case teams_1.zLogLevel.enum.error:
|
|
112
|
+
(0, teams_1.broadcastLogMessage)(teams_1.zLogLevel.enum.error, context.message.startsWith('\t') ? context.message.substring(1) : context.message);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
;
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
return self;
|
|
119
|
+
})();
|
|
120
|
+
//# sourceMappingURL=logger.js.map
|