sussudio
Version:
An unofficial VS Code Internal API
33 lines (32 loc) • 1.11 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
export class TelemetryAppenderChannel {
appenders;
constructor(appenders) {
this.appenders = appenders;
}
listen(_, event) {
throw new Error(`Event not found: ${event}`);
}
call(_, command, { eventName, data }) {
this.appenders.forEach(a => a.log(eventName, data));
return Promise.resolve(null);
}
}
export class TelemetryAppenderClient {
channel;
constructor(channel) {
this.channel = channel;
}
log(eventName, data) {
this.channel.call('log', { eventName, data })
.then(undefined, err => `Failed to log telemetry: ${console.warn(err)}`);
return Promise.resolve(null);
}
flush() {
// TODO
return Promise.resolve();
}
}