clientInstrumentation.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. "use strict";
  2. var __defProp = Object.defineProperty;
  3. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  4. var __getOwnPropNames = Object.getOwnPropertyNames;
  5. var __hasOwnProp = Object.prototype.hasOwnProperty;
  6. var __export = (target, all) => {
  7. for (var name in all)
  8. __defProp(target, name, { get: all[name], enumerable: true });
  9. };
  10. var __copyProps = (to, from, except, desc) => {
  11. if (from && typeof from === "object" || typeof from === "function") {
  12. for (let key of __getOwnPropNames(from))
  13. if (!__hasOwnProp.call(to, key) && key !== except)
  14. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  15. }
  16. return to;
  17. };
  18. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  19. var clientInstrumentation_exports = {};
  20. __export(clientInstrumentation_exports, {
  21. createInstrumentation: () => createInstrumentation
  22. });
  23. module.exports = __toCommonJS(clientInstrumentation_exports);
  24. function createInstrumentation() {
  25. const listeners = [];
  26. return new Proxy({}, {
  27. get: (obj, prop) => {
  28. if (typeof prop !== "string")
  29. return obj[prop];
  30. if (prop === "addListener")
  31. return (listener) => listeners.push(listener);
  32. if (prop === "removeListener")
  33. return (listener) => listeners.splice(listeners.indexOf(listener), 1);
  34. if (prop === "removeAllListeners")
  35. return () => listeners.splice(0, listeners.length);
  36. if (prop.startsWith("run")) {
  37. return async (...params) => {
  38. for (const listener of listeners)
  39. await listener[prop]?.(...params);
  40. };
  41. }
  42. if (prop.startsWith("on")) {
  43. return (...params) => {
  44. for (const listener of listeners)
  45. listener[prop]?.(...params);
  46. };
  47. }
  48. return obj[prop];
  49. }
  50. });
  51. }
  52. // Annotate the CommonJS export names for ESM import in node:
  53. 0 && (module.exports = {
  54. createInstrumentation
  55. });