1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const alwayscli_1 = require("@alwaysai/alwayscli");
|
4 | const logSymbols = require("log-symbols");
|
5 | const audit_1 = require("./util/audit");
|
6 | const environment_1 = require("./environment");
|
7 | const post_tracking_data_to_segment_1 = require("./util/post-tracking-data-to-segment");
|
8 | exports.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 |
|
\ | No newline at end of file |