UNPKG

3.95 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6exports.DefaultSidecarRecorderAsync = exports.DefaultSidecarRecorder = exports.DefaultLoggerRecorder = void 0;
7const EventMessage_1 = require("./model/EventMessage");
8const config_1 = __importDefault(require("./lib/config"));
9const Logger = require('./lib/logger');
10const logWithLevel = async (message) => {
11 return new Promise((resolve, reject) => {
12 try {
13 let type;
14 let action;
15 if (message && ('metadata' in message) && ('event' in message.metadata)) {
16 type = message.metadata.event.type;
17 action = message.metadata.event.action;
18 }
19 else if (message && ('event' in message)) {
20 type = message.event.type;
21 action = message.event.action;
22 }
23 else {
24 type = EventMessage_1.EventType.log;
25 action = EventMessage_1.LogEventAction.info;
26 }
27 if (type === EventMessage_1.EventType.log && Object.values(EventMessage_1.LogEventAction).includes(action)) {
28 Logger.log(action, JSON.stringify(message, null, 2));
29 }
30 else {
31 Logger.log(type, JSON.stringify(message, null, 2));
32 }
33 resolve({ status: EventMessage_1.LogResponseStatus.accepted });
34 }
35 catch (e) {
36 reject({ status: EventMessage_1.LogResponseStatus.error, error: e });
37 }
38 });
39};
40class DefaultLoggerRecorder {
41 recorder;
42 constructor(recorder) {
43 this.recorder = recorder ? recorder : Logger;
44 return this;
45 }
46 preProcess = (event) => {
47 if (config_1.default.EVENT_LOGGER_LOG_METADATA_ONLY) {
48 return event.metadata;
49 }
50 return event;
51 };
52 postProcess = (result) => {
53 return result;
54 };
55 async record(event, doLog = true) {
56 if (!doLog) {
57 return Promise.resolve({ status: EventMessage_1.LogResponseStatus.accepted });
58 }
59 let updatedEvent = this.preProcess(event);
60 let result = await logWithLevel(updatedEvent);
61 return this.postProcess(result);
62 }
63}
64exports.DefaultLoggerRecorder = DefaultLoggerRecorder;
65class DefaultSidecarRecorder {
66 recorder;
67 constructor(recorder) {
68 this.recorder = recorder;
69 return this;
70 }
71 preProcess = (event) => {
72 return event;
73 };
74 logLoad = (event) => {
75 if (config_1.default.EVENT_LOGGER_LOG_METADATA_ONLY) {
76 return event.metadata;
77 }
78 return event;
79 };
80 postProcess = (result) => {
81 return result;
82 };
83 async record(event, doLog = true) {
84 doLog && await logWithLevel(this.logLoad(event));
85 let updatedEvent = this.preProcess(event);
86 let result = await this.recorder.log(updatedEvent);
87 return this.postProcess(result);
88 }
89}
90exports.DefaultSidecarRecorder = DefaultSidecarRecorder;
91class DefaultSidecarRecorderAsync {
92 recorder;
93 constructor(recorder) {
94 this.recorder = recorder;
95 return this;
96 }
97 preProcess = (event) => {
98 return event;
99 };
100 logLoad = (event) => {
101 if (config_1.default.EVENT_LOGGER_LOG_METADATA_ONLY) {
102 return event.metadata;
103 }
104 return event;
105 };
106 async record(event, doLog = true, callback) {
107 doLog && logWithLevel(this.logLoad(event));
108 let updatedEvent = this.preProcess(event);
109 let result = this.recorder.log(updatedEvent);
110 if (callback) {
111 return callback(result);
112 }
113 else {
114 return result;
115 }
116 }
117}
118exports.DefaultSidecarRecorderAsync = DefaultSidecarRecorderAsync;
119//# sourceMappingURL=Recorder.js.map
\No newline at end of file