@tai-kun/surrealdb
Version:
The SurrealDB SDK for JavaScript
53 lines (52 loc) • 4.45 kB
JavaScript
// src/utils/diagnostics-channel.ts
if (
/* __TAI_KUN__SURREALDB__DIAGNOSTICS_CHANNEL__ */
false
) {
map = /* @__PURE__ */ new Map();
}
var diagnostics_channel_default = {
publish(name, event) {
if (
/* __TAI_KUN__SURREALDB__DIAGNOSTICS_CHANNEL__ */
false
) {
for (const { regex, callbacks } of map.values()) {
if (regex.test(name)) {
for (const callback of callbacks) {
callback(event);
}
}
}
}
},
subscribe(name, callback) {
if (
/* __TAI_KUN__SURREALDB__DIAGNOSTICS_CHANNEL__ */
false
) {
let value = map.get(name);
if (!value) {
map.set(
name,
value = {
regex: new RegExp(`^${name.split(":").map(
(part, i, parts) => part !== "*" ? part : i === parts.length - 1 ? ".+" : "[^:]+"
).join(":")}$`),
callbacks: /* @__PURE__ */ new Set()
}
);
}
value.callbacks.add(callback);
return /* @__PURE__ */ __name(function unsubscribe() {
map.get(name)?.callbacks.delete(callback);
}, "unsubscribe");
}
return () => {
};
}
};
export {
diagnostics_channel_default as default
};
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL3V0aWxzL2RpYWdub3N0aWNzLWNoYW5uZWwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImxldCBtYXA6IE1hcDxzdHJpbmcsIHtcbiAgcmVhZG9ubHkgcmVnZXg6IFJlZ0V4cDtcbiAgcmVhZG9ubHkgY2FsbGJhY2tzOiBTZXQ8KGV2ZW50OiBhbnkpID0+IHZvaWQ+O1xufT47XG5cbmlmICgvKiBfX1RBSV9LVU5fX1NVUlJFQUxEQl9fRElBR05PU1RJQ1NfQ0hBTk5FTF9fICovIGZhbHNlKSB7XG4gIG1hcCA9IG5ldyBNYXAoKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBwdWJsaXNoKG5hbWU6IHN0cmluZywgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICgvKiBfX1RBSV9LVU5fX1NVUlJFQUxEQl9fRElBR05PU1RJQ1NfQ0hBTk5FTF9fICovIGZhbHNlKSB7XG4gICAgICBmb3IgKGNvbnN0IHsgcmVnZXgsIGNhbGxiYWNrcyB9IG9mIG1hcC52YWx1ZXMoKSkge1xuICAgICAgICBpZiAocmVnZXgudGVzdChuYW1lKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgY2FsbGJhY2sgb2YgY2FsbGJhY2tzKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuICBzdWJzY3JpYmUobmFtZTogc3RyaW5nLCBjYWxsYmFjazogKGV2ZW50OiBhbnkpID0+IHZvaWQpOiAoKSA9PiB2b2lkIHtcbiAgICBpZiAoLyogX19UQUlfS1VOX19TVVJSRUFMREJfX0RJQUdOT1NUSUNTX0NIQU5ORUxfXyAqLyBmYWxzZSkge1xuICAgICAgbGV0IHZhbHVlID0gbWFwLmdldChuYW1lKTtcblxuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICBtYXAuc2V0KFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgdmFsdWUgPSB7XG4gICAgICAgICAgICByZWdleDogbmV3IFJlZ0V4cChgXiR7XG4gICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAuc3BsaXQoXCI6XCIpXG4gICAgICAgICAgICAgICAgLm1hcCgocGFydCwgaSwgcGFydHMpID0+XG4gICAgICAgICAgICAgICAgICBwYXJ0ICE9PSBcIipcIlxuICAgICAgICAgICAgICAgICAgICA/IHBhcnRcbiAgICAgICAgICAgICAgICAgICAgOiBpID09PSBwYXJ0cy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICAgID8gXCIuK1wiXG4gICAgICAgICAgICAgICAgICAgIDogXCJbXjpdK1wiXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5qb2luKFwiOlwiKVxuICAgICAgICAgICAgfSRgKSxcbiAgICAgICAgICAgIGNhbGxiYWNrczogbmV3IFNldCgpLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHZhbHVlLmNhbGxiYWNrcy5hZGQoY2FsbGJhY2spO1xuXG4gICAgICByZXR1cm4gZnVuY3Rpb24gdW5zdWJzY3JpYmUoKSB7XG4gICAgICAgIG1hcC5nZXQobmFtZSk/LmNhbGxiYWNrcy5kZWxldGUoY2FsbGJhY2spO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge307XG4gIH0sXG59O1xuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUtBO0FBQUE7QUFBQSxFQUFzRDtBQUFBLEVBQU87QUFDM0QsUUFBTSxvQkFBSSxJQUFJO0FBQ2hCO0FBRUEsSUFBTyw4QkFBUTtBQUFBLEVBQ2IsUUFBUSxNQUFjLE9BQWtCO0FBQ3RDO0FBQUE7QUFBQSxNQUFzRDtBQUFBLE1BQU87QUFDM0QsaUJBQVcsRUFBRSxPQUFPLFVBQVUsS0FBSyxJQUFJLE9BQU8sR0FBRztBQUMvQyxZQUFJLE1BQU0sS0FBSyxJQUFJLEdBQUc7QUFDcEIscUJBQVcsWUFBWSxXQUFXO0FBQ2hDLHFCQUFTLEtBQUs7QUFBQSxVQUNoQjtBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBLFVBQVUsTUFBYyxVQUE0QztBQUNsRTtBQUFBO0FBQUEsTUFBc0Q7QUFBQSxNQUFPO0FBQzNELFVBQUksUUFBUSxJQUFJLElBQUksSUFBSTtBQUV4QixVQUFJLENBQUMsT0FBTztBQUNWLFlBQUk7QUFBQSxVQUNGO0FBQUEsVUFDQSxRQUFRO0FBQUEsWUFDTixPQUFPLElBQUksT0FBTyxJQUNoQixLQUNHLE1BQU0sR0FBRyxFQUNUO0FBQUEsY0FBSSxDQUFDLE1BQU0sR0FBRyxVQUNiLFNBQVMsTUFDTCxPQUNBLE1BQU0sTUFBTSxTQUFTLElBQ3JCLE9BQ0E7QUFBQSxZQUNOLEVBQ0MsS0FBSyxHQUFHLENBQ2IsR0FBRztBQUFBLFlBQ0gsV0FBVyxvQkFBSSxJQUFJO0FBQUEsVUFDckI7QUFBQSxRQUNGO0FBQUEsTUFDRjtBQUVBLFlBQU0sVUFBVSxJQUFJLFFBQVE7QUFFNUIsYUFBTyxnQ0FBUyxjQUFjO0FBQzVCLFlBQUksSUFBSSxJQUFJLEdBQUcsVUFBVSxPQUFPLFFBQVE7QUFBQSxNQUMxQyxHQUZPO0FBQUEsSUFHVDtBQUVBLFdBQU8sTUFBTTtBQUFBLElBQUM7QUFBQSxFQUNoQjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=