@beforeyoubid/logger-adapter 1.0.11 → 1.0.12

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/util.js CHANGED
@@ -1,55 +1,200 @@
1
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());
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
9
  });
10
+ }
11
+ _export(exports, {
12
+ isLogDNAEnabled: function() {
13
+ return isLogDNAEnabled;
14
+ },
15
+ flushAll: function() {
16
+ return flushAll;
17
+ },
18
+ ensureFlushAll: function() {
19
+ return ensureFlushAll;
20
+ },
21
+ ensureFlushAllCallback: function() {
22
+ return ensureFlushAllCallback;
23
+ }
24
+ });
25
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
26
+ try {
27
+ var info = gen[key](arg);
28
+ var value = info.value;
29
+ } catch (error) {
30
+ reject(error);
31
+ return;
32
+ }
33
+ if (info.done) {
34
+ resolve(value);
35
+ } else {
36
+ Promise.resolve(value).then(_next, _throw);
37
+ }
38
+ }
39
+ function _asyncToGenerator(fn) {
40
+ return function() {
41
+ var self = this, args = arguments;
42
+ return new Promise(function(resolve, reject) {
43
+ var gen = fn.apply(self, args);
44
+ function _next(value) {
45
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
46
+ }
47
+ function _throw(err) {
48
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
49
+ }
50
+ _next(undefined);
51
+ });
52
+ };
53
+ }
54
+ var __generator = (void 0) && (void 0).__generator || function(thisArg, body) {
55
+ var f, y, t, g, _ = {
56
+ label: 0,
57
+ sent: function() {
58
+ if (t[0] & 1) throw t[1];
59
+ return t[1];
60
+ },
61
+ trys: [],
62
+ ops: []
63
+ };
64
+ return(g = {
65
+ next: verb(0),
66
+ "throw": verb(1),
67
+ "return": verb(2)
68
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
69
+ return this;
70
+ }), g);
71
+ function verb(n) {
72
+ return function(v) {
73
+ return step([
74
+ n,
75
+ v
76
+ ]);
77
+ };
78
+ }
79
+ function step(op) {
80
+ if (f) throw new TypeError("Generator is already executing.");
81
+ while(_)try {
82
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
83
+ if (y = 0, t) op = [
84
+ op[0] & 2,
85
+ t.value
86
+ ];
87
+ switch(op[0]){
88
+ case 0:
89
+ case 1:
90
+ t = op;
91
+ break;
92
+ case 4:
93
+ _.label++;
94
+ return {
95
+ value: op[1],
96
+ done: false
97
+ };
98
+ case 5:
99
+ _.label++;
100
+ y = op[1];
101
+ op = [
102
+ 0
103
+ ];
104
+ continue;
105
+ case 7:
106
+ op = _.ops.pop();
107
+ _.trys.pop();
108
+ continue;
109
+ default:
110
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
111
+ _ = 0;
112
+ continue;
113
+ }
114
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
115
+ _.label = op[1];
116
+ break;
117
+ }
118
+ if (op[0] === 6 && _.label < t[1]) {
119
+ _.label = t[1];
120
+ t = op;
121
+ break;
122
+ }
123
+ if (t && _.label < t[2]) {
124
+ _.label = t[2];
125
+ _.ops.push(op);
126
+ break;
127
+ }
128
+ if (t[2]) _.ops.pop();
129
+ _.trys.pop();
130
+ continue;
131
+ }
132
+ op = body.call(thisArg, _);
133
+ } catch (e) {
134
+ op = [
135
+ 6,
136
+ e
137
+ ];
138
+ y = 0;
139
+ } finally{
140
+ f = t = 0;
141
+ }
142
+ if (op[0] & 5) throw op[1];
143
+ return {
144
+ value: op[0] ? op[1] : void 0,
145
+ done: true
146
+ };
147
+ }
10
148
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ensureFlushAllCallback = exports.ensureFlushAll = exports.flushAll = exports.isLogDNAEnabled = void 0;
13
- const LogDNALogger = require('logdna');
14
- const debug = require('util').debuglog('logger-adapter');
15
- const { FALLBACK_TIMEOUT_AFTER_FLUSHING } = require('./consts');
16
- const { getLogParams } = require('./params');
149
+ var LogDNALogger = require("logdna");
150
+ var debug = require("util").debuglog("logger-adapter");
151
+ var FALLBACK_TIMEOUT_AFTER_FLUSHING = require("./consts").FALLBACK_TIMEOUT_AFTER_FLUSHING;
152
+ var getLogParams = require("./params").getLogParams;
17
153
  // timeout
18
- let timeout;
154
+ var timeout;
19
155
  /**
20
156
  * Handy function to check if we are sending to LogDNA
21
157
  * @param logDNAKey
22
158
  * @param sendToRemote
23
- */
24
- const isLogDNAEnabled = (logDNAKey, sendToRemote) => !!logDNAKey && sendToRemote;
25
- exports.isLogDNAEnabled = isLogDNAEnabled;
159
+ */ var isLogDNAEnabled = function(logDNAKey, sendToRemote) {
160
+ return !!logDNAKey && sendToRemote;
161
+ };
26
162
  /**
27
163
  * REturn if we need to suppress flushAll on a local machine
28
- */
29
- const suppressFlushAll = () => { var _a; return ((_a = getLogParams()) === null || _a === void 0 ? void 0 : _a.logDNASuppressFlushAll) || false; };
164
+ */ var suppressFlushAll = function() {
165
+ var _getLogParams;
166
+ return ((_getLogParams = getLogParams()) === null || _getLogParams === void 0 ? void 0 : _getLogParams.logDNASuppressFlushAll) || false;
167
+ };
30
168
  /**
31
169
  * Send all log messages to LogDNA before lambda is terminated
32
- */
33
- const flushAll = () => __awaiter(void 0, void 0, void 0, function* () {
34
- return new Promise(resolve => {
35
- debug('Flushing all logs...');
36
- LogDNALogger.flushAll(() => {
37
- debug('Completed flushing all log messages');
38
- if (timeout) {
39
- clearTimeout(timeout);
40
- }
41
- resolve();
170
+ */ var flushAll = function() {
171
+ var _ref = _asyncToGenerator(function() {
172
+ return __generator(this, function(_state) {
173
+ return [
174
+ 2,
175
+ new Promise(function(resolve) {
176
+ debug("Flushing all logs...");
177
+ LogDNALogger.flushAll(function() {
178
+ debug("Completed flushing all log messages");
179
+ if (timeout) {
180
+ clearTimeout(timeout);
181
+ }
182
+ resolve();
183
+ });
184
+ })
185
+ ];
42
186
  });
43
187
  });
44
- });
45
- exports.flushAll = flushAll;
188
+ return function flushAll() {
189
+ return _ref.apply(this, arguments);
190
+ };
191
+ }();
46
192
  /**
47
193
  * Fallback promise just in
48
- */
49
- const timeoutPromise = () => {
50
- return new Promise(resolve => {
51
- timeout = setTimeout(() => {
52
- debug('Flushing timeout has reached. Ignore flushing messages...');
194
+ */ var timeoutPromise = function() {
195
+ return new Promise(function(resolve) {
196
+ timeout = setTimeout(function() {
197
+ debug("Flushing timeout has reached. Ignore flushing messages...");
53
198
  resolve();
54
199
  }, FALLBACK_TIMEOUT_AFTER_FLUSHING);
55
200
  });
@@ -57,23 +202,74 @@ const timeoutPromise = () => {
57
202
  /**
58
203
  * Lambda wrapper to ensure we flush messages before returning the response
59
204
  * @param lambdaHandler
60
- */
61
- const ensureFlushAll = (lambdaHandler) => {
62
- return (event, context) => __awaiter(void 0, void 0, void 0, function* () {
63
- try {
64
- const result = yield lambdaHandler(event, context);
65
- if (!suppressFlushAll())
66
- yield Promise.race([flushAll(), timeoutPromise()]);
67
- return result;
68
- }
69
- catch (e) {
70
- if (!suppressFlushAll())
71
- yield Promise.race([flushAll(), timeoutPromise()]);
72
- throw e;
73
- }
74
- });
205
+ */ var ensureFlushAll = function(lambdaHandler) {
206
+ return function() {
207
+ var _ref = _asyncToGenerator(function(event, context) {
208
+ var result, e;
209
+ return __generator(this, function(_state) {
210
+ switch(_state.label){
211
+ case 0:
212
+ _state.trys.push([
213
+ 0,
214
+ 4,
215
+ ,
216
+ 7
217
+ ]);
218
+ return [
219
+ 4,
220
+ lambdaHandler(event, context)
221
+ ];
222
+ case 1:
223
+ result = _state.sent();
224
+ if (!!suppressFlushAll()) return [
225
+ 3,
226
+ 3
227
+ ];
228
+ return [
229
+ 4,
230
+ Promise.race([
231
+ flushAll(),
232
+ timeoutPromise()
233
+ ])
234
+ ];
235
+ case 2:
236
+ _state.sent();
237
+ _state.label = 3;
238
+ case 3:
239
+ return [
240
+ 2,
241
+ result
242
+ ];
243
+ case 4:
244
+ e = _state.sent();
245
+ if (!!suppressFlushAll()) return [
246
+ 3,
247
+ 6
248
+ ];
249
+ return [
250
+ 4,
251
+ Promise.race([
252
+ flushAll(),
253
+ timeoutPromise()
254
+ ])
255
+ ];
256
+ case 5:
257
+ _state.sent();
258
+ _state.label = 6;
259
+ case 6:
260
+ throw e;
261
+ case 7:
262
+ return [
263
+ 2
264
+ ];
265
+ }
266
+ });
267
+ });
268
+ return function(event, context) {
269
+ return _ref.apply(this, arguments);
270
+ };
271
+ }();
75
272
  };
76
- exports.ensureFlushAll = ensureFlushAll;
77
273
  /**
78
274
  * A Lambda wrapper to ensure we flush messages before a Lambda function get terminated
79
275
  * NOTE: For non-async handlers, AWS Lambda will wait until the event loop is completed.
@@ -82,15 +278,14 @@ exports.ensureFlushAll = ensureFlushAll;
82
278
  * REF: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html
83
279
  *
84
280
  * @param lambdaHandler
85
- */
86
- const ensureFlushAllCallback = (lambdaHandler) => {
87
- return (event, context, callback) => {
88
- const thisCallback = (error, result) => {
281
+ */ var ensureFlushAllCallback = function(lambdaHandler) {
282
+ return function(event, context, callback) {
283
+ var thisCallback = function(error, result) {
89
284
  callback(error, result);
90
- if (!suppressFlushAll())
91
- flushAll();
285
+ if (!suppressFlushAll()) flushAll();
92
286
  };
93
287
  lambdaHandler(event, context, thisCallback);
94
288
  };
95
289
  };
96
- exports.ensureFlushAllCallback = ensureFlushAllCallback;
290
+
291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbWJkYUhhbmRsZXJXaXRoQXN5bmNGdW5jdGlvbiwgTGFtYmRhSGFuZGxlcldpdGhDYWxsYmFja0Z1bmN0aW9uLCBDYWxsYmFja0Z1bmN0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IExvZ0ROQUxvZ2dlciA9IHJlcXVpcmUoJ2xvZ2RuYScpO1xuY29uc3QgZGVidWcgPSByZXF1aXJlKCd1dGlsJykuZGVidWdsb2coJ2xvZ2dlci1hZGFwdGVyJyk7XG5jb25zdCB7IEZBTExCQUNLX1RJTUVPVVRfQUZURVJfRkxVU0hJTkcgfSA9IHJlcXVpcmUoJy4vY29uc3RzJyk7XG5jb25zdCB7IGdldExvZ1BhcmFtcyB9ID0gcmVxdWlyZSgnLi9wYXJhbXMnKTtcblxuLy8gdGltZW91dFxubGV0IHRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0O1xuXG4vKipcbiAqIEhhbmR5IGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHdlIGFyZSBzZW5kaW5nIHRvIExvZ0ROQVxuICogQHBhcmFtIGxvZ0ROQUtleVxuICogQHBhcmFtIHNlbmRUb1JlbW90ZVxuICovXG5jb25zdCBpc0xvZ0ROQUVuYWJsZWQgPSAobG9nRE5BS2V5OiBzdHJpbmcsIHNlbmRUb1JlbW90ZTogYm9vbGVhbik6IGJvb2xlYW4gPT4gISFsb2dETkFLZXkgJiYgc2VuZFRvUmVtb3RlO1xuXG4vKipcbiAqIFJFdHVybiBpZiB3ZSBuZWVkIHRvIHN1cHByZXNzIGZsdXNoQWxsIG9uIGEgbG9jYWwgbWFjaGluZVxuICovXG5jb25zdCBzdXBwcmVzc0ZsdXNoQWxsID0gKCk6IGJvb2xlYW4gPT4gZ2V0TG9nUGFyYW1zKCk/LmxvZ0ROQVN1cHByZXNzRmx1c2hBbGwgfHwgZmFsc2U7XG5cbi8qKlxuICogU2VuZCBhbGwgbG9nIG1lc3NhZ2VzIHRvIExvZ0ROQSBiZWZvcmUgbGFtYmRhIGlzIHRlcm1pbmF0ZWRcbiAqL1xuY29uc3QgZmx1c2hBbGwgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICBkZWJ1ZygnRmx1c2hpbmcgYWxsIGxvZ3MuLi4nKTtcbiAgICBMb2dETkFMb2dnZXIuZmx1c2hBbGwoKCkgPT4ge1xuICAgICAgZGVidWcoJ0NvbXBsZXRlZCBmbHVzaGluZyBhbGwgbG9nIG1lc3NhZ2VzJyk7XG4gICAgICBpZiAodGltZW91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICB9XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBGYWxsYmFjayBwcm9taXNlIGp1c3QgaW5cbiAqL1xuY29uc3QgdGltZW91dFByb21pc2UgPSAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBkZWJ1ZygnRmx1c2hpbmcgdGltZW91dCBoYXMgcmVhY2hlZC4gSWdub3JlIGZsdXNoaW5nIG1lc3NhZ2VzLi4uJyk7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSwgRkFMTEJBQ0tfVElNRU9VVF9BRlRFUl9GTFVTSElORyk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBMYW1iZGEgd3JhcHBlciB0byBlbnN1cmUgd2UgZmx1c2ggbWVzc2FnZXMgYmVmb3JlIHJldHVybmluZyB0aGUgcmVzcG9uc2VcbiAqIEBwYXJhbSBsYW1iZGFIYW5kbGVyXG4gKi9cbmNvbnN0IGVuc3VyZUZsdXNoQWxsID0gKGxhbWJkYUhhbmRsZXI6IExhbWJkYUhhbmRsZXJXaXRoQXN5bmNGdW5jdGlvbik6IExhbWJkYUhhbmRsZXJXaXRoQXN5bmNGdW5jdGlvbiA9PiB7XG4gIHJldHVybiBhc3luYyAoZXZlbnQ6IGFueSwgY29udGV4dDogYW55KTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbGFtYmRhSGFuZGxlcihldmVudCwgY29udGV4dCk7XG4gICAgICBpZiAoIXN1cHByZXNzRmx1c2hBbGwoKSkgYXdhaXQgUHJvbWlzZS5yYWNlKFtmbHVzaEFsbCgpLCB0aW1lb3V0UHJvbWlzZSgpXSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghc3VwcHJlc3NGbHVzaEFsbCgpKSBhd2FpdCBQcm9taXNlLnJhY2UoW2ZsdXNoQWxsKCksIHRpbWVvdXRQcm9taXNlKCldKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBBIExhbWJkYSB3cmFwcGVyIHRvIGVuc3VyZSB3ZSBmbHVzaCBtZXNzYWdlcyBiZWZvcmUgYSBMYW1iZGEgZnVuY3Rpb24gZ2V0IHRlcm1pbmF0ZWRcbiAqIE5PVEU6IEZvciBub24tYXN5bmMgaGFuZGxlcnMsIEFXUyBMYW1iZGEgd2lsbCB3YWl0IHVudGlsIHRoZSBldmVudCBsb29wIGlzIGNvbXBsZXRlZC5cbiAqIFRoaXMgbWVhbnMgYWZ0ZXIgYSBjYWxsYmFjayBmdW5jdGlvbiBpcyBjYWxsZWQsIGEgTGFtYmRhIGZ1bmN0aW9uIHN0aWxsIHJ1blxuICogYW5kIHdlIGNhbiBjYXRjaCB0aGUgZmluYWwgY2xlYW4gdXAuXG4gKiBSRUY6IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL25vZGVqcy1oYW5kbGVyLmh0bWxcbiAqXG4gKiBAcGFyYW0gbGFtYmRhSGFuZGxlclxuICovXG5jb25zdCBlbnN1cmVGbHVzaEFsbENhbGxiYWNrID0gKFxuICBsYW1iZGFIYW5kbGVyOiBMYW1iZGFIYW5kbGVyV2l0aENhbGxiYWNrRnVuY3Rpb25cbik6IExhbWJkYUhhbmRsZXJXaXRoQ2FsbGJhY2tGdW5jdGlvbiA9PiB7XG4gIHJldHVybiAoZXZlbnQ6IGFueSwgY29udGV4dDogYW55LCBjYWxsYmFjazogQ2FsbGJhY2tGdW5jdGlvbik6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHRoaXNDYWxsYmFjayA9IChlcnJvcjogYW55LCByZXN1bHQ6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgY2FsbGJhY2soZXJyb3IsIHJlc3VsdCk7XG4gICAgICBpZiAoIXN1cHByZXNzRmx1c2hBbGwoKSkgZmx1c2hBbGwoKTtcbiAgICB9O1xuICAgIGxhbWJkYUhhbmRsZXIoZXZlbnQsIGNvbnRleHQsIHRoaXNDYWxsYmFjayk7XG4gIH07XG59O1xuXG5leHBvcnQgeyBpc0xvZ0ROQUVuYWJsZWQsIGZsdXNoQWxsLCBlbnN1cmVGbHVzaEFsbCwgZW5zdXJlRmx1c2hBbGxDYWxsYmFjayB9O1xuIl0sIm5hbWVzIjpbImlzTG9nRE5BRW5hYmxlZCIsImZsdXNoQWxsIiwiZW5zdXJlRmx1c2hBbGwiLCJlbnN1cmVGbHVzaEFsbENhbGxiYWNrIiwiTG9nRE5BTG9nZ2VyIiwicmVxdWlyZSIsImRlYnVnIiwiZGVidWdsb2ciLCJGQUxMQkFDS19USU1FT1VUX0FGVEVSX0ZMVVNISU5HIiwiZ2V0TG9nUGFyYW1zIiwidGltZW91dCIsImxvZ0ROQUtleSIsInNlbmRUb1JlbW90ZSIsInN1cHByZXNzRmx1c2hBbGwiLCJsb2dETkFTdXBwcmVzc0ZsdXNoQWxsIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjbGVhclRpbWVvdXQiLCJ0aW1lb3V0UHJvbWlzZSIsInNldFRpbWVvdXQiLCJsYW1iZGFIYW5kbGVyIiwiZXZlbnQiLCJjb250ZXh0IiwicmVzdWx0IiwiZSIsInJhY2UiLCJjYWxsYmFjayIsInRoaXNDYWxsYmFjayIsImVycm9yIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQXdGU0EsZUFBZTtlQUFmQTs7SUFBaUJDLFFBQVE7ZUFBUkE7O0lBQVVDLGNBQWM7ZUFBZEE7O0lBQWdCQyxzQkFBc0I7ZUFBdEJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdEZwRCxJQUFNQyxlQUFlQyxRQUFRO0FBQzdCLElBQU1DLFFBQVFELFFBQVEsUUFBUUUsUUFBUSxDQUFDO0FBQ3ZDLElBQU0sQUFBRUMsa0NBQW9DSCxRQUFRLFlBQTVDRztBQUNSLElBQU0sQUFBRUMsZUFBaUJKLFFBQVEsWUFBekJJO0FBRVIsVUFBVTtBQUNWLElBQUlDO0FBRUo7Ozs7Q0FJQyxHQUNELElBQU1WLGtCQUFrQixTQUFDVyxXQUFtQkM7V0FBbUMsQ0FBQyxDQUFDRCxhQUFhQzs7QUFFOUY7O0NBRUMsR0FDRCxJQUFNQyxtQkFBbUI7UUFBZUo7SUFBQUEsT0FBQUEsQ0FBQUEsQ0FBQUEsZ0JBQUFBLDRCQUFBQSwyQkFBQUEsS0FBQUEsSUFBQUEsY0FBZ0JLLHNCQUFzQixBQUFELEtBQUssS0FBSzs7QUFFdkY7O0NBRUMsR0FDRCxJQUFNYjtlQUFXLGtCQUFBLFdBQTJCOztZQUMxQzs7Z0JBQU8sSUFBSWMsUUFBUUMsU0FBQUEsU0FBVztvQkFDNUJWLE1BQU07b0JBQ05GLGFBQWFILFFBQVEsQ0FBQyxXQUFNO3dCQUMxQkssTUFBTTt3QkFDTixJQUFJSSxTQUFTOzRCQUNYTyxhQUFhUDt3QkFDZixDQUFDO3dCQUNETTtvQkFDRjtnQkFDRjs7O0lBQ0Y7b0JBWE1mOzs7O0FBYU47O0NBRUMsR0FDRCxJQUFNaUIsaUJBQWlCLFdBQXFCO0lBQzFDLE9BQU8sSUFBSUgsUUFBUUMsU0FBQUEsU0FBVztRQUM1Qk4sVUFBVVMsV0FBVyxXQUFNO1lBQ3pCYixNQUFNO1lBQ05VO1FBQ0YsR0FBR1I7SUFDTDtBQUNGO0FBRUE7OztDQUdDLEdBQ0QsSUFBTU4saUJBQWlCLFNBQUNrQixlQUFrRjtJQUN4RzttQkFBTyxrQkFBQSxTQUFPQyxPQUFZQyxTQUErQjtnQkFFL0NDLFFBR0NDOzs7Ozs7Ozs7O3dCQUhROzs0QkFBTUosY0FBY0MsT0FBT0M7Ozt3QkFBcENDLFNBQVM7NkJBQ1gsQ0FBQ1Ysb0JBQUQ7Ozs7d0JBQXFCOzs0QkFBTUUsUUFBUVUsSUFBSTtnQ0FBRXhCO2dDQUFZaUI7Ozs7d0JBQWhDOzs7d0JBQ3pCOzs0QkFBT0s7Ozt3QkFDQUM7NkJBQ0gsQ0FBQ1gsb0JBQUQ7Ozs7d0JBQXFCOzs0QkFBTUUsUUFBUVUsSUFBSTtnQ0FBRXhCO2dDQUFZaUI7Ozs7d0JBQWhDOzs7d0JBQ3pCLE1BQU1NLEVBQUU7Ozs7Ozs7UUFFWjt3QkFUY0gsT0FBWUM7Ozs7QUFVNUI7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNELElBQU1uQix5QkFBeUIsU0FDN0JpQixlQUNzQztJQUN0QyxPQUFPLFNBQUNDLE9BQVlDLFNBQWNJLFVBQXFDO1FBQ3JFLElBQU1DLGVBQWUsU0FBQ0MsT0FBWUwsUUFBc0I7WUFDdERHLFNBQVNFLE9BQU9MO1lBQ2hCLElBQUksQ0FBQ1Ysb0JBQW9CWjtRQUMzQjtRQUNBbUIsY0FBY0MsT0FBT0MsU0FBU0s7SUFDaEM7QUFDRiJ9
package/package.json CHANGED
@@ -1,22 +1,26 @@
1
1
  {
2
2
  "name": "@beforeyoubid/logger-adapter",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "description": "A platform logger module to send the log messages to LogDNA.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
- "dist/**/*",
9
- "src/**/*"
8
+ "dist/**/*"
10
9
  ],
11
10
  "scripts": {
12
11
  "lint": "eslint --max-warnings 0 '**/*.{ts,tsx,js,jsx}' && tsc --noEmit",
13
12
  "lint:fix": "eslint --fix --max-warnings 0 '**/*.{ts,tsx,js,jsx}'",
14
- "test": "yarn build && jest --config jestconfig.json",
15
- "test:coverage": "yarn build && jest --config jestconfig.json --watch --coverage",
16
- "test:ci": "yarn build && jest --config jestconfig.json --verbose=false --coverage",
17
- "test-only": "jest --config jestconfig.json",
18
- "build": "tsc",
19
- "build-and-publish": "npm run build && npm publish --access public"
13
+ "test": "yarn build && jest",
14
+ "test:coverage": "yarn build && jest --watch --coverage",
15
+ "test:ci": "jest --verbose=false --coverage",
16
+ "test-only": "jest",
17
+ "build": "rimraf dist && npm run build:types && npm run build:js",
18
+ "build:types": "tsc --emitDeclarationOnly --declaration --project tsconfig.build.json",
19
+ "build:js": "swc src --out-dir dist --extensions \".ts,.tsx\" --source-maps inline --ignore=.spec.js",
20
+ "ts": "tsc --noEmit",
21
+ "build-and-publish": "npm run build && npm publish --access public",
22
+ "build-and-publish-dryrun": "npm run build && npm publish --dry-run",
23
+ "build-and-publish-dryrun-ci": "npm run build && npm publish --registry http://localhost:4873"
20
24
  },
21
25
  "repository": {
22
26
  "type": "git",
@@ -30,22 +34,29 @@
30
34
  },
31
35
  "homepage": "https://github.com/beforeyoubid/npm-logger-adapter#readme",
32
36
  "dependencies": {
33
- "logdna": "^3.5.2",
37
+ "logdna": "3.5.3",
34
38
  "logdna-winston": "^2.3.2",
35
- "winston": "^3.3.3"
39
+ "winston": "3.8.2"
36
40
  },
37
41
  "devDependencies": {
38
- "@types/jest": "^26.0.9",
39
- "@types/node": "^14.0.27",
40
- "@typescript-eslint/eslint-plugin": "^3.9.0",
41
- "@typescript-eslint/parser": "^3.9.0",
42
- "eslint": "^7.6.0",
43
- "eslint-config-prettier": "^6.11.0",
44
- "eslint-plugin-prettier": "^3.1.4",
45
- "jest": "^26.4.0",
46
- "prettier": "^2.0.5",
47
- "ts-jest": "^26.2.0",
48
- "typescript": "^3.9.7"
42
+ "@swc/cli": "0.1.61",
43
+ "@swc/core": "1.3.35",
44
+ "@swc/jest": "0.2.24",
45
+ "@types/jest": "29.4.0",
46
+ "@types/node": "18.13.0",
47
+ "@typescript-eslint/eslint-plugin": "5.52.0",
48
+ "@typescript-eslint/parser": "5.52.0",
49
+ "danger": "11.2.3",
50
+ "danger-plugin-yarn": "1.6.0",
51
+ "eslint": "8.34.0",
52
+ "eslint-config-prettier": "8.6.0",
53
+ "eslint-plugin-prettier": "4.2.1",
54
+ "jest": "29.4.2",
55
+ "jest-junit": "15.0.0",
56
+ "prettier": "2.8.4",
57
+ "rimraf": "^4.1.2",
58
+ "ts-node": "^10.9.1",
59
+ "typescript": "4.9.5"
49
60
  },
50
61
  "resolutions": {
51
62
  "colors": "1.4.0"
package/dist/flush.d.ts DELETED
@@ -1,29 +0,0 @@
1
- import { LambdaHandlerWithAsyncFunction, LambdaHandlerWithCallbackFunction } from './types';
2
- /**
3
- * REturn if we need to suppress flushAll on a local machine
4
- */
5
- export declare const suppressFlushAll: () => boolean;
6
- export declare const sleep: (time: number) => Promise<void>;
7
- /**
8
- * Send all log messages to LogDNA before lambda is terminated
9
- */
10
- export declare const flushAll: () => Promise<void>;
11
- /**
12
- * Fallback promise just in
13
- */
14
- export declare const timeoutPromise: () => Promise<unknown>;
15
- /**
16
- * Lambda wrapper to ensure we flush messages before returning the response
17
- * @param lambdaHandler
18
- */
19
- export declare const ensureFlushAll: (lambdaHandler: LambdaHandlerWithAsyncFunction) => LambdaHandlerWithAsyncFunction;
20
- /**
21
- * A Lambda wrapper to ensure we flush messages before a Lambda function get terminated
22
- * NOTE: For non-async handlers, AWS Lambda will wait until the event loop is completed.
23
- * This means after a callback function is called, a Lambda function still run
24
- * and we can catch the final clean up.
25
- * REF: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html
26
- *
27
- * @param lambdaHandler
28
- */
29
- export declare const ensureFlushAllCallback: (lambdaHandler: LambdaHandlerWithCallbackFunction) => LambdaHandlerWithCallbackFunction;
package/dist/flush.js DELETED
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ensureFlushAllCallback = exports.ensureFlushAll = exports.timeoutPromise = exports.flushAll = exports.sleep = exports.suppressFlushAll = void 0;
13
- const logger_1 = require("./logger");
14
- const debug = require('util').debuglog('logger-adapter');
15
- const { once } = require('events');
16
- const { FALLBACK_TIMEOUT_AFTER_FLUSHING } = require('./consts');
17
- const { getLogParams } = require('./params');
18
- // timeout
19
- let timeout;
20
- /**
21
- * REturn if we need to suppress flushAll on a local machine
22
- */
23
- exports.suppressFlushAll = () => { var _a; return ((_a = getLogParams()) === null || _a === void 0 ? void 0 : _a.logDNASuppressFlushAll) || false; };
24
- exports.sleep = (time) => new Promise((resolve) => setTimeout(resolve, time));
25
- /**
26
- * Send all log messages to LogDNA before lambda is terminated
27
- */
28
- exports.flushAll = () => {
29
- debug('Flushing all logs...');
30
- return new Promise(resolve => logger_1.logdnaTransport.Logger.flushAll(resolve));
31
- };
32
- /**
33
- * Fallback promise just in
34
- */
35
- exports.timeoutPromise = () => {
36
- return new Promise(resolve => {
37
- timeout = setTimeout(() => {
38
- debug('Flushing timeout has reached. Ignore flushing messages...');
39
- resolve();
40
- }, FALLBACK_TIMEOUT_AFTER_FLUSHING);
41
- });
42
- };
43
- /**
44
- * Lambda wrapper to ensure we flush messages before returning the response
45
- * @param lambdaHandler
46
- */
47
- exports.ensureFlushAll = (lambdaHandler) => {
48
- return (event, context) => __awaiter(void 0, void 0, void 0, function* () {
49
- try {
50
- const result = yield lambdaHandler(event, context);
51
- if (!exports.suppressFlushAll())
52
- yield Promise.race([exports.flushAll(), exports.timeoutPromise()]);
53
- return result;
54
- }
55
- catch (e) {
56
- if (!exports.suppressFlushAll())
57
- yield Promise.race([exports.flushAll(), exports.timeoutPromise()]);
58
- throw e;
59
- }
60
- });
61
- };
62
- /**
63
- * A Lambda wrapper to ensure we flush messages before a Lambda function get terminated
64
- * NOTE: For non-async handlers, AWS Lambda will wait until the event loop is completed.
65
- * This means after a callback function is called, a Lambda function still run
66
- * and we can catch the final clean up.
67
- * REF: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html
68
- *
69
- * @param lambdaHandler
70
- */
71
- exports.ensureFlushAllCallback = (lambdaHandler) => {
72
- return (event, context, callback) => {
73
- const thisCallback = (error, result) => {
74
- callback(error, result);
75
- if (!exports.suppressFlushAll())
76
- exports.flushAll();
77
- };
78
- lambdaHandler(event, context, thisCallback);
79
- };
80
- };
@@ -1,33 +0,0 @@
1
- import { ILogDNAParams } from '../types';
2
-
3
- import { getLogParams } from '../params';
4
- import { getLogger } from './logger';
5
- import { isLogDNAEnabled, flushAll } from '../util';
6
-
7
- let loggerObject: any;
8
- const logParams = getLogParams();
9
-
10
- /**
11
- * Initialise and wrap the native console object
12
- * @param params
13
- */
14
- const init = (params: ILogDNAParams = logParams): void => {
15
- // If has wrapped already, don't do it again
16
- if (!!loggerObject) return;
17
-
18
- const { logDNAKey, sendToRemote } = params;
19
- const isEnabled = isLogDNAEnabled(logDNAKey, sendToRemote);
20
-
21
- // Wrap console object
22
- loggerObject = isEnabled ? getLogger(params) : {};
23
- if (!isEnabled) {
24
- console.info(`LOGDNA is disabled`);
25
- }
26
- };
27
-
28
- const consoleLogger = {
29
- init,
30
- flushAll,
31
- };
32
-
33
- export { consoleLogger };
@@ -1,62 +0,0 @@
1
- import { ILogDNAParams } from '../types';
2
- const LogDNALogger = require('logdna');
3
- const { flushAll } = require('../util');
4
- let logger: any;
5
-
6
- // Default console
7
- const _log = console.log;
8
- const _info = console.info;
9
- const _warn = console.warn;
10
- const _error = console.error;
11
-
12
- const wrapConsole = (logger: any, logLevel: string): void => {
13
- _log('--------------------- Wrapping Console -----------------------');
14
-
15
- const log = function (...args: any[]) {
16
- if (logLevel === 'debug') {
17
- logger.debug([...args].join(' '));
18
- }
19
- _log(...args);
20
- };
21
-
22
- const info = function (...args: any[]) {
23
- if (['debug', 'info'].indexOf(logLevel) !== -1) {
24
- logger.info([...args].join(' '));
25
- }
26
- _info(...args);
27
- };
28
-
29
- const warn = function (...args: any[]) {
30
- logger.warn([...args].join(' '));
31
- _warn(...args);
32
- };
33
-
34
- const error = function (...args: any[]) {
35
- logger.error([...args].join(' '));
36
- _error(...args);
37
- };
38
-
39
- console.log = log;
40
- console.debug = log;
41
- console.info = info;
42
- console.warn = warn;
43
- console.error = error;
44
- };
45
-
46
- const getLogger = (params: ILogDNAParams): any => {
47
- const { logDNAKey, logLevel, logDNAOptions } = params;
48
-
49
- logger = LogDNALogger.setupDefaultLogger(logDNAKey, logDNAOptions);
50
-
51
- // Wrap default
52
- wrapConsole(logger, logLevel);
53
-
54
- // Attach flushAll
55
- logger.flushAll = flushAll;
56
-
57
- return logger;
58
- };
59
-
60
- const getDefaultConsoleLog = (): any => _log;
61
-
62
- export { getLogger, getDefaultConsoleLog };
package/src/consts.ts DELETED
@@ -1,3 +0,0 @@
1
- const FALLBACK_TIMEOUT_AFTER_FLUSHING = 5000;
2
-
3
- export { FALLBACK_TIMEOUT_AFTER_FLUSHING };
package/src/index.ts DELETED
@@ -1,5 +0,0 @@
1
- import { consoleLogger } from './console';
2
- import { logger } from './logger';
3
- import { getLogParams } from './params';
4
- import { flushAll, ensureFlushAll, ensureFlushAllCallback } from './util';
5
- export { consoleLogger, logger, getLogParams, flushAll, ensureFlushAll, ensureFlushAllCallback };
@@ -1,7 +0,0 @@
1
- import { getLogParams } from '../params';
2
- import { getLogger } from './logger';
3
-
4
- const logParams = getLogParams();
5
- const logger = getLogger(logParams);
6
-
7
- export { logger };