CloudProxyPro/node_modules/unenv/dist/runtime/node/diagnostics_channel.mjs
2025-09-05 14:59:21 +08:00

35 lines
1.1 KiB
JavaScript

import { Channel, getChannels } from "./internal/diagnostics_channel/channel.mjs";
import { TracingChannel } from "./internal/diagnostics_channel/tracing-channel.mjs";
export { Channel } from "./internal/diagnostics_channel/channel.mjs";
export const channel = function(name) {
const channels = getChannels();
if (name in channels) {
return channels[name];
}
return new Channel(name);
};
export const hasSubscribers = function(name) {
const channels = getChannels();
const channel = channels[name];
return channel && channel.hasSubscribers;
};
export const subscribe = function(name, onMessage) {
channel(name).subscribe(onMessage);
};
export const unsubscribe = function(name, onMessage) {
return channel(name).unsubscribe(onMessage);
};
export const tracingChannel = function(name) {
return new TracingChannel(name);
};
// TracingChannel is incorrectly exposed on the `diagnostics_channel` type. In addition, its type
// takes a constructor with no arguments, whereas the node implementation takes a name (matching `tracingChannel`)
export default {
Channel,
channel,
hasSubscribers,
subscribe,
tracingChannel,
unsubscribe
};