@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
34 lines (33 loc) • 1.01 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();
}
}