New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

side-effect-manager

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

side-effect-manager - npm Package Compare versions

Comparing version 0.1.4 to 0.1.5

dist/gen-uid.d.ts

2

dist/side-effect-manager.cjs.js

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports[Symbol.toStringTag]="Module";exports.SideEffectManager=class{constructor(){this.disposers=new Map,this.disposerIDGenCount=-1}add(e,s=this.genDisposerID()){return this.flush(s),this.disposers.set(s,e()),s}addEventListener(e,s,t,r,o=this.genDisposerID()){return this.add((()=>(e.addEventListener(s,t,r),()=>e.removeEventListener(s,t,r))),o),o}setTimeout(e,s,t=this.genDisposerID()){return this.add((()=>{const r=window.setTimeout((()=>{this.remove(t),e()}),s);return()=>window.clearTimeout(r)}),t)}setInterval(e,s,t=this.genDisposerID()){return this.add((()=>{const t=window.setInterval(e,s);return()=>window.clearInterval(t)}),t)}remove(e){const s=this.disposers.get(e);return this.disposers.delete(e),s}flush(e){const s=this.remove(e);if(s)try{s()}catch(t){console.error(t)}}flushAll(){this.disposers.forEach((e=>{try{e()}catch(s){console.error(s)}})),this.disposers.clear()}genDisposerID(){const{MAX_SAFE_INTEGER:e=9007199254740991}=Number;return this.disposerIDGenCount=(this.disposerIDGenCount+1)%e,`disposer-${this.disposerIDGenCount}`}};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports[Symbol.toStringTag]="Module";const e="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t=e.length,s=Array(20),r=()=>{for(let r=0;r<20;r++)s[r]=e.charAt(Math.random()*t);return s.join("")};exports.SideEffectManager=class{constructor(){this.disposers=new Map}add(e,t=r()){return this.flush(t),this.disposers.set(t,e()),t}addDisposer(e,t=r()){return this.flush(t),this.disposers.set(t,e),t}addEventListener(e,t,s,o,i=r()){return this.add((()=>(e.addEventListener(t,s,o),()=>e.removeEventListener(t,s,o))),i),i}setTimeout(e,t,s=r()){return this.add((()=>{const r=window.setTimeout((()=>{this.remove(s),e()}),t);return()=>window.clearTimeout(r)}),s)}setInterval(e,t,s=r()){return this.add((()=>{const s=window.setInterval(e,t);return()=>window.clearInterval(s)}),s)}remove(e){const t=this.disposers.get(e);return this.disposers.delete(e),t}flush(e){const t=this.remove(e);if(t)try{t()}catch(s){console.error(s)}}flushAll(){this.disposers.forEach((e=>{try{e()}catch(t){console.error(t)}})),this.disposers.clear()}},exports.genUID=r;
//# sourceMappingURL=side-effect-manager.cjs.js.map

@@ -0,1 +1,2 @@

export { genUID } from "./gen-uid";
export declare type SideEffectDisposer = () => void;

@@ -11,2 +12,9 @@ export declare class SideEffectManager {

/**
* Add a disposer directly.
* @param disposer a disposer
* @param disposerID Optional id for the disposer
* @returns disposerID
*/
addDisposer(disposer: SideEffectDisposer, disposerID?: string): string;
/**
* Sugar for addEventListener.

@@ -57,7 +65,2 @@ * @param el

readonly disposers: Map<string, SideEffectDisposer>;
/**
* Generate a disposerID.
*/
genDisposerID(): string;
private disposerIDGenCount;
}

@@ -1,2 +0,2 @@

class s{constructor(){this.disposers=new Map,this.disposerIDGenCount=-1}add(s,e=this.genDisposerID()){return this.flush(e),this.disposers.set(e,s()),e}addEventListener(s,e,t,r,i=this.genDisposerID()){return this.add((()=>(s.addEventListener(e,t,r),()=>s.removeEventListener(e,t,r))),i),i}setTimeout(s,e,t=this.genDisposerID()){return this.add((()=>{const r=window.setTimeout((()=>{this.remove(t),s()}),e);return()=>window.clearTimeout(r)}),t)}setInterval(s,e,t=this.genDisposerID()){return this.add((()=>{const t=window.setInterval(s,e);return()=>window.clearInterval(t)}),t)}remove(s){const e=this.disposers.get(s);return this.disposers.delete(s),e}flush(s){const e=this.remove(s);if(e)try{e()}catch(t){console.error(t)}}flushAll(){this.disposers.forEach((s=>{try{s()}catch(e){console.error(e)}})),this.disposers.clear()}genDisposerID(){const{MAX_SAFE_INTEGER:s=9007199254740991}=Number;return this.disposerIDGenCount=(this.disposerIDGenCount+1)%s,`disposer-${this.disposerIDGenCount}`}}export{s as SideEffectManager};
const e="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",s=e.length,t=Array(20),r=()=>{for(let r=0;r<20;r++)t[r]=e.charAt(Math.random()*s);return t.join("")};class o{constructor(){this.disposers=new Map}add(e,s=r()){return this.flush(s),this.disposers.set(s,e()),s}addDisposer(e,s=r()){return this.flush(s),this.disposers.set(s,e),s}addEventListener(e,s,t,o,i=r()){return this.add((()=>(e.addEventListener(s,t,o),()=>e.removeEventListener(s,t,o))),i),i}setTimeout(e,s,t=r()){return this.add((()=>{const r=window.setTimeout((()=>{this.remove(t),e()}),s);return()=>window.clearTimeout(r)}),t)}setInterval(e,s,t=r()){return this.add((()=>{const t=window.setInterval(e,s);return()=>window.clearInterval(t)}),t)}remove(e){const s=this.disposers.get(e);return this.disposers.delete(e),s}flush(e){const s=this.remove(e);if(s)try{s()}catch(t){console.error(t)}}flushAll(){this.disposers.forEach((e=>{try{e()}catch(s){console.error(s)}})),this.disposers.clear()}}export{o as SideEffectManager,r as genUID};
//# sourceMappingURL=side-effect-manager.es.js.map
{
"name": "side-effect-manager",
"version": "0.1.4",
"version": "0.1.5",
"private": false,

@@ -5,0 +5,0 @@ "description": "A tiny library to encapsulate side effects in a compact, reusable and testable style.",

@@ -24,2 +24,17 @@ import { genUID } from "./gen-uid";

/**
* Add a disposer directly.
* @param disposer a disposer
* @param disposerID Optional id for the disposer
* @returns disposerID
*/
public addDisposer(
disposer: SideEffectDisposer,
disposerID: string = genUID()
): string {
this.flush(disposerID);
this.disposers.set(disposerID, disposer);
return disposerID;
}
/**
* Sugar for addEventListener.

@@ -26,0 +41,0 @@ * @param el

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc