UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

53 lines (52 loc) 4.45 kB
// 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=