{"version":3,"file":"unsubscriber.mjs","sources":["../src/index.js"],"sourcesContent":["\nlet context_unsubs\n\nconst\n  unsubscriber = () => new Set(),\n\n  collect = (unsubs, fn) => {\n    const stack = context_unsubs\n    context_unsubs = unsubs\n    try {\n      return fn()\n    } finally {\n      context_unsubs = stack\n    }\n  },\n\n  attach = (unsubs, fn) => (\n    (fn || (fn = unsubs, unsubs = context_unsubs)),\n    unsubs && unsubs.add(fn),\n    () => unsubs && unsubs.delete(fn)\n  ),\n\n  un = (fn) => attach(fn),\n\n  run = (unsubs) => (\n    unsubs.forEach(fn => fn()),\n    unsubs.clear()\n  ),\n\n  scope = () => context_unsubs\n;\n\nexport {\n  unsubscriber,\n  collect,\n  scope,\n  attach,\n  run,\n  un\n}"],"names":["context_unsubs","unsubscriber","Set","collect","unsubs","fn","stack","attach","add","delete","un","run","forEach","clear","scope"],"mappings":"AACA,IAAIA,EAGF,MAAAC,EAAeA,IAAM,IAAIC,IAEzBC,EAAUA,CAACC,EAAQC,KACjB,MAAMC,EAAQN,EACdA,EAAiBI,EACjB,IACE,OAAOC,GACT,CAAC,QACCL,EAAiBM,CACnB,GAGFC,EAASA,CAACH,EAAQC,KACfA,IAAOA,EAAKD,EAAQA,EAASJ,GAC9BI,GAAUA,EAAOI,IAAIH,GACrB,IAAMD,GAAUA,EAAOK,OAAOJ,IAGhCK,EAAML,GAAOE,EAAOF,GAEpBM,EAAOP,IACLA,EAAOQ,QAAQP,GAAMA,KACrBD,EAAOS,SAGTC,EAAQA,IAAMd"}