UNPKG

1.57 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const alwayscli_1 = require("@alwaysai/alwayscli");
4const logSymbols = require("log-symbols");
5const audit_1 = require("./util/audit");
6const environment_1 = require("./environment");
7const post_tracking_data_to_segment_1 = require("./util/post-tracking-data-to-segment");
8exports.enhancer = argvInterface => async (...argv) => {
9 if (environment_1.ALWAYSAI_AUDIT_LOG) {
10 try {
11 await audit_1.openAuditLog(environment_1.ALWAYSAI_AUDIT_LOG);
12 }
13 catch (exception) {
14 console.error(`${logSymbols.warning} Failed to open audit log: "${exception.message}"`);
15 }
16 }
17 audit_1.audit(`start "${argv.join(' ')}"`);
18 const argvString = argv.join(' ');
19 const trackingPromise = post_tracking_data_to_segment_1.postTrackingDataToSegment(argvString);
20 try {
21 const returnValue = await argvInterface(...argv);
22 await new Promise(resolve => {
23 audit_1.audit(`end "${returnValue}"`, () => {
24 resolve();
25 });
26 });
27 await trackingPromise;
28 return returnValue;
29 }
30 catch (exception) {
31 if (exception.code !== alwayscli_1.CLI_USAGE_ERROR) {
32 await Promise.all([
33 post_tracking_data_to_segment_1.postTrackingDataToSegment(argvString, exception),
34 trackingPromise,
35 ]);
36 }
37 else {
38 await trackingPromise;
39 }
40 throw exception;
41 }
42};
43//# sourceMappingURL=enhancer.js.map
\No newline at end of file