UNPKG

2.67 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.enable = exports.console = void 0;
4// Copyright (c) Microsoft Corporation. All rights reserved.
5// Licensed under the MIT license. See LICENSE file in the project root for details.
6var diagnostic_channel_1 = require("diagnostic-channel");
7var stream_1 = require("stream");
8var consolePatchFunction = function (originalConsole) {
9 var aiLoggingOutStream = new stream_1.Writable();
10 var aiLoggingErrStream = new stream_1.Writable();
11 // Default console is roughly equivalent to `new Console(process.stdout, process.stderr)`
12 // We create a version which publishes to the channel and also to stdout/stderr
13 aiLoggingOutStream.write = function (chunk) {
14 if (!chunk) {
15 return true;
16 }
17 var message = chunk.toString();
18 diagnostic_channel_1.channel.publish("console", { message: message });
19 return true;
20 };
21 aiLoggingErrStream.write = function (chunk) {
22 if (!chunk) {
23 return true;
24 }
25 var message = chunk.toString();
26 diagnostic_channel_1.channel.publish("console", { message: message, stderr: true });
27 return true;
28 };
29 var aiLoggingConsole = new originalConsole.Console(aiLoggingOutStream, aiLoggingErrStream);
30 var consoleMethods = ["log", "info", "warn", "error", "dir", "time", "timeEnd", "trace", "assert"];
31 var _loop_1 = function (method) {
32 var originalMethod = originalConsole[method];
33 if (originalMethod) {
34 originalConsole[method] = function () {
35 if (aiLoggingConsole[method]) {
36 try {
37 aiLoggingConsole[method].apply(aiLoggingConsole, arguments);
38 }
39 catch (e) {
40 // Ignore errors; allow the original method to throw if necessary
41 }
42 }
43 return originalMethod.apply(originalConsole, arguments);
44 };
45 }
46 };
47 for (var _i = 0, consoleMethods_1 = consoleMethods; _i < consoleMethods_1.length; _i++) {
48 var method = consoleMethods_1[_i];
49 _loop_1(method);
50 }
51 return originalConsole;
52};
53exports.console = {
54 versionSpecifier: ">= 4.0.0",
55 patch: consolePatchFunction,
56};
57function enable() {
58 diagnostic_channel_1.channel.registerMonkeyPatch("console", exports.console);
59 // Force patching of console
60 /* tslint:disable-next-line:no-var-requires */
61 require("console");
62}
63exports.enable = enable;
64//# sourceMappingURL=console.pub.js.map
\No newline at end of file