You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@escapace/sequentialize

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@escapace/sequentialize - npm Package Compare versions

Comparing version
2.0.0
to
2.1.0
+6
-6
lib/cjs/index.cjs

@@ -34,2 +34,3 @@ "use strict";

_resolve;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
_reject;

@@ -43,3 +44,6 @@ constructor() {

});
this.promise.then(() => this.state = "fulfilled", () => this.state = "rejected");
this.promise.then(
() => this.state = "fulfilled",
() => this.state = "rejected"
);
}

@@ -55,2 +59,3 @@ resolve(value) {

}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
reject(reason) {

@@ -103,7 +108,2 @@ if (this.fate === "resolved") {

};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
deferred,
sequentialize
});
//# sourceMappingURL=index.cjs.map

@@ -5,4 +5,4 @@ {

"sourcesContent": ["export { sequentialize } from './sequentialize'\nexport { deferred } from './deferred'\n", "/**\n * A deferred represents a promise which can be either resolved via\n * deferred.resolve or rejected via deferred.reject.The promise can be acessed\n * via the promise property on the deferred.\n */\n\nexport class Deferred<T> {\n public promise: Promise<T>\n\n private fate: 'resolved' | 'unresolved'\n private state: 'pending' | 'fulfilled' | 'rejected'\n\n private _resolve:\n | ((value?: T | PromiseLike<T> | undefined) => void)\n | undefined\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _reject: ((reason?: any) => void) | undefined\n\n constructor() {\n this.state = 'pending'\n this.fate = 'unresolved'\n\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve as typeof this._resolve\n this._reject = reject\n })\n\n this.promise.then(\n () => (this.state = 'fulfilled'),\n () => (this.state = 'rejected')\n )\n }\n\n public resolve(value?: T | PromiseLike<T> | undefined) {\n if (this.fate === 'resolved') {\n throw new Error('Deferred cannot be resolved twice')\n }\n\n this.fate = 'resolved'\n\n if (this._resolve !== undefined) {\n this._resolve(value)\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public reject(reason?: any) {\n if (this.fate === 'resolved') {\n throw new Error('Deferred cannot be resolved twice')\n }\n\n this.fate = 'resolved'\n\n if (this._reject !== undefined) {\n this._reject(reason)\n }\n }\n\n public isResolved() {\n return this.fate === 'resolved'\n }\n\n public isPending() {\n return this.state === 'pending'\n }\n\n public isFulfilled() {\n return this.state === 'fulfilled'\n }\n\n public isRejected() {\n return this.state === 'rejected'\n }\n}\n\nexport const deferred = <T>() => new Deferred<T>()\n", "/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Deferred } from './deferred'\n\nexport const sequentialize = () => {\n const locks: Array<Deferred<any>> = []\n\n return <T extends (...args: any[]) => Promise<any>>(fn: T): T => {\n return ((...args: any[]) => {\n for (let l = locks.length - 1; l >= 0; l -= 1) {\n if (locks[l].isRejected()) {\n locks.splice(l, 1)\n }\n }\n\n const lock = new Deferred<any>()\n const promises = locks.map(({ promise }) => promise)\n\n locks.push(lock)\n\n return Promise.all(promises)\n .then(() => fn(...args))\n .then((value) => {\n lock.resolve()\n\n return value\n })\n .catch((reason) => {\n lock.resolve()\n\n throw reason\n })\n }) as T\n }\n}\n"],
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMO,IAAM,WAAN,MAAkB;AAAA,EACvB,AAAO;AAAA,EAEP,AAAQ;AAAA,EACR,AAAQ;AAAA,EAER,AAAQ;AAAA,EAKR,AAAQ;AAAA,EAER,cAAc;AACZ,SAAK,QAAQ;AACb,SAAK,OAAO;AAEZ,SAAK,UAAU,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC9C,WAAK,WAAW;AAChB,WAAK,UAAU;AAAA,IACjB,CAAC;AAED,SAAK,QAAQ,KACX,MAAO,KAAK,QAAQ,aACpB,MAAO,KAAK,QAAQ,UACtB;AAAA,EACF;AAAA,EAEA,AAAO,QAAQ,OAAwC;AACrD,QAAI,KAAK,SAAS,YAAY;AAC5B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AAEA,SAAK,OAAO;AAEZ,QAAI,KAAK,aAAa,QAAW;AAC/B,WAAK,SAAS,KAAK;AAAA,IACrB;AAAA,EACF;AAAA,EAGA,AAAO,OAAO,QAAc;AAC1B,QAAI,KAAK,SAAS,YAAY;AAC5B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AAEA,SAAK,OAAO;AAEZ,QAAI,KAAK,YAAY,QAAW;AAC9B,WAAK,QAAQ,MAAM;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,AAAO,aAAa;AAClB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,AAAO,YAAY;AACjB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,AAAO,cAAc;AACnB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,AAAO,aAAa;AAClB,WAAO,KAAK,UAAU;AAAA,EACxB;AACF;AAEO,IAAM,WAAW,MAAS,IAAI,SAAY;;;ACtE1C,IAAM,gBAAgB,MAAM;AACjC,QAAM,QAA8B,CAAC;AAErC,SAAO,CAA6C,OAAa;AAC/D,WAAQ,IAAI,SAAgB;AAC1B,eAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;AAC7C,YAAI,MAAM,GAAG,WAAW,GAAG;AACzB,gBAAM,OAAO,GAAG,CAAC;AAAA,QACnB;AAAA,MACF;AAEA,YAAM,OAAO,IAAI,SAAc;AAC/B,YAAM,WAAW,MAAM,IAAI,CAAC,EAAE,cAAc,OAAO;AAEnD,YAAM,KAAK,IAAI;AAEf,aAAO,QAAQ,IAAI,QAAQ,EACxB,KAAK,MAAM,GAAG,GAAG,IAAI,CAAC,EACtB,KAAK,CAAC,UAAU;AACf,aAAK,QAAQ;AAEb,eAAO;AAAA,MACT,CAAC,EACA,MAAM,CAAC,WAAW;AACjB,aAAK,QAAQ;AAEb,cAAM;AAAA,MACR,CAAC;AAAA,IACL;AAAA,EACF;AACF;",
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMO,IAAM,WAAN,MAAkB;AAAA,EAChB;AAAA,EAEC;AAAA,EACA;AAAA,EAEA;AAAA;AAAA,EAKA;AAAA,EAER,cAAc;AACZ,SAAK,QAAQ;AACb,SAAK,OAAO;AAEZ,SAAK,UAAU,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC9C,WAAK,WAAW;AAChB,WAAK,UAAU;AAAA,IACjB,CAAC;AAED,SAAK,QAAQ;AAAA,MACX,MAAO,KAAK,QAAQ;AAAA,MACpB,MAAO,KAAK,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAEO,QAAQ,OAAwC;AACrD,QAAI,KAAK,SAAS,YAAY;AAC5B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AAEA,SAAK,OAAO;AAEZ,QAAI,KAAK,aAAa,QAAW;AAC/B,WAAK,SAAS,KAAK;AAAA,IACrB;AAAA,EACF;AAAA;AAAA,EAGO,OAAO,QAAc;AAC1B,QAAI,KAAK,SAAS,YAAY;AAC5B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AAEA,SAAK,OAAO;AAEZ,QAAI,KAAK,YAAY,QAAW;AAC9B,WAAK,QAAQ,MAAM;AAAA,IACrB;AAAA,EACF;AAAA,EAEO,aAAa;AAClB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEO,YAAY;AACjB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEO,cAAc;AACnB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEO,aAAa;AAClB,WAAO,KAAK,UAAU;AAAA,EACxB;AACF;AAEO,IAAM,WAAW,MAAS,IAAI,SAAY;;;ACtE1C,IAAM,gBAAgB,MAAM;AACjC,QAAM,QAA8B,CAAC;AAErC,SAAO,CAA6C,OAAa;AAC/D,WAAQ,IAAI,SAAgB;AAC1B,eAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;AAC7C,YAAI,MAAM,CAAC,EAAE,WAAW,GAAG;AACzB,gBAAM,OAAO,GAAG,CAAC;AAAA,QACnB;AAAA,MACF;AAEA,YAAM,OAAO,IAAI,SAAc;AAC/B,YAAM,WAAW,MAAM,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO;AAEnD,YAAM,KAAK,IAAI;AAEf,aAAO,QAAQ,IAAI,QAAQ,EACxB,KAAK,MAAM,GAAG,GAAG,IAAI,CAAC,EACtB,KAAK,CAAC,UAAU;AACf,aAAK,QAAQ;AAEb,eAAO;AAAA,MACT,CAAC,EACA,MAAM,CAAC,WAAW;AACjB,aAAK,QAAQ;AAEb,cAAM;AAAA,MACR,CAAC;AAAA,IACL;AAAA,EACF;AACF;",
"names": []
}

@@ -7,2 +7,3 @@ // src/deferred.ts

_resolve;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
_reject;

@@ -16,3 +17,6 @@ constructor() {

});
this.promise.then(() => this.state = "fulfilled", () => this.state = "rejected");
this.promise.then(
() => this.state = "fulfilled",
() => this.state = "rejected"
);
}

@@ -28,2 +32,3 @@ resolve(value) {

}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
reject(reason) {

@@ -30,0 +35,0 @@ if (this.fate === "resolved") {

@@ -5,4 +5,4 @@ {

"sourcesContent": ["/**\n * A deferred represents a promise which can be either resolved via\n * deferred.resolve or rejected via deferred.reject.The promise can be acessed\n * via the promise property on the deferred.\n */\n\nexport class Deferred<T> {\n public promise: Promise<T>\n\n private fate: 'resolved' | 'unresolved'\n private state: 'pending' | 'fulfilled' | 'rejected'\n\n private _resolve:\n | ((value?: T | PromiseLike<T> | undefined) => void)\n | undefined\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _reject: ((reason?: any) => void) | undefined\n\n constructor() {\n this.state = 'pending'\n this.fate = 'unresolved'\n\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve as typeof this._resolve\n this._reject = reject\n })\n\n this.promise.then(\n () => (this.state = 'fulfilled'),\n () => (this.state = 'rejected')\n )\n }\n\n public resolve(value?: T | PromiseLike<T> | undefined) {\n if (this.fate === 'resolved') {\n throw new Error('Deferred cannot be resolved twice')\n }\n\n this.fate = 'resolved'\n\n if (this._resolve !== undefined) {\n this._resolve(value)\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public reject(reason?: any) {\n if (this.fate === 'resolved') {\n throw new Error('Deferred cannot be resolved twice')\n }\n\n this.fate = 'resolved'\n\n if (this._reject !== undefined) {\n this._reject(reason)\n }\n }\n\n public isResolved() {\n return this.fate === 'resolved'\n }\n\n public isPending() {\n return this.state === 'pending'\n }\n\n public isFulfilled() {\n return this.state === 'fulfilled'\n }\n\n public isRejected() {\n return this.state === 'rejected'\n }\n}\n\nexport const deferred = <T>() => new Deferred<T>()\n", "/* eslint-disable @typescript-eslint/no-unsafe-return */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Deferred } from './deferred'\n\nexport const sequentialize = () => {\n const locks: Array<Deferred<any>> = []\n\n return <T extends (...args: any[]) => Promise<any>>(fn: T): T => {\n return ((...args: any[]) => {\n for (let l = locks.length - 1; l >= 0; l -= 1) {\n if (locks[l].isRejected()) {\n locks.splice(l, 1)\n }\n }\n\n const lock = new Deferred<any>()\n const promises = locks.map(({ promise }) => promise)\n\n locks.push(lock)\n\n return Promise.all(promises)\n .then(() => fn(...args))\n .then((value) => {\n lock.resolve()\n\n return value\n })\n .catch((reason) => {\n lock.resolve()\n\n throw reason\n })\n }) as T\n }\n}\n"],
"mappings": ";AAMO,IAAM,WAAN,MAAkB;AAAA,EACvB,AAAO;AAAA,EAEP,AAAQ;AAAA,EACR,AAAQ;AAAA,EAER,AAAQ;AAAA,EAKR,AAAQ;AAAA,EAER,cAAc;AACZ,SAAK,QAAQ;AACb,SAAK,OAAO;AAEZ,SAAK,UAAU,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC9C,WAAK,WAAW;AAChB,WAAK,UAAU;AAAA,IACjB,CAAC;AAED,SAAK,QAAQ,KACX,MAAO,KAAK,QAAQ,aACpB,MAAO,KAAK,QAAQ,UACtB;AAAA,EACF;AAAA,EAEA,AAAO,QAAQ,OAAwC;AACrD,QAAI,KAAK,SAAS,YAAY;AAC5B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AAEA,SAAK,OAAO;AAEZ,QAAI,KAAK,aAAa,QAAW;AAC/B,WAAK,SAAS,KAAK;AAAA,IACrB;AAAA,EACF;AAAA,EAGA,AAAO,OAAO,QAAc;AAC1B,QAAI,KAAK,SAAS,YAAY;AAC5B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AAEA,SAAK,OAAO;AAEZ,QAAI,KAAK,YAAY,QAAW;AAC9B,WAAK,QAAQ,MAAM;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,AAAO,aAAa;AAClB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEA,AAAO,YAAY;AACjB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,AAAO,cAAc;AACnB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,AAAO,aAAa;AAClB,WAAO,KAAK,UAAU;AAAA,EACxB;AACF;AAEO,IAAM,WAAW,MAAS,IAAI,SAAY;;;ACtE1C,IAAM,gBAAgB,MAAM;AACjC,QAAM,QAA8B,CAAC;AAErC,SAAO,CAA6C,OAAa;AAC/D,WAAQ,IAAI,SAAgB;AAC1B,eAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;AAC7C,YAAI,MAAM,GAAG,WAAW,GAAG;AACzB,gBAAM,OAAO,GAAG,CAAC;AAAA,QACnB;AAAA,MACF;AAEA,YAAM,OAAO,IAAI,SAAc;AAC/B,YAAM,WAAW,MAAM,IAAI,CAAC,EAAE,cAAc,OAAO;AAEnD,YAAM,KAAK,IAAI;AAEf,aAAO,QAAQ,IAAI,QAAQ,EACxB,KAAK,MAAM,GAAG,GAAG,IAAI,CAAC,EACtB,KAAK,CAAC,UAAU;AACf,aAAK,QAAQ;AAEb,eAAO;AAAA,MACT,CAAC,EACA,MAAM,CAAC,WAAW;AACjB,aAAK,QAAQ;AAEb,cAAM;AAAA,MACR,CAAC;AAAA,IACL;AAAA,EACF;AACF;",
"mappings": ";AAMO,IAAM,WAAN,MAAkB;AAAA,EAChB;AAAA,EAEC;AAAA,EACA;AAAA,EAEA;AAAA;AAAA,EAKA;AAAA,EAER,cAAc;AACZ,SAAK,QAAQ;AACb,SAAK,OAAO;AAEZ,SAAK,UAAU,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC9C,WAAK,WAAW;AAChB,WAAK,UAAU;AAAA,IACjB,CAAC;AAED,SAAK,QAAQ;AAAA,MACX,MAAO,KAAK,QAAQ;AAAA,MACpB,MAAO,KAAK,QAAQ;AAAA,IACtB;AAAA,EACF;AAAA,EAEO,QAAQ,OAAwC;AACrD,QAAI,KAAK,SAAS,YAAY;AAC5B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AAEA,SAAK,OAAO;AAEZ,QAAI,KAAK,aAAa,QAAW;AAC/B,WAAK,SAAS,KAAK;AAAA,IACrB;AAAA,EACF;AAAA;AAAA,EAGO,OAAO,QAAc;AAC1B,QAAI,KAAK,SAAS,YAAY;AAC5B,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACrD;AAEA,SAAK,OAAO;AAEZ,QAAI,KAAK,YAAY,QAAW;AAC9B,WAAK,QAAQ,MAAM;AAAA,IACrB;AAAA,EACF;AAAA,EAEO,aAAa;AAClB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA,EAEO,YAAY;AACjB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEO,cAAc;AACnB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEO,aAAa;AAClB,WAAO,KAAK,UAAU;AAAA,EACxB;AACF;AAEO,IAAM,WAAW,MAAS,IAAI,SAAY;;;ACtE1C,IAAM,gBAAgB,MAAM;AACjC,QAAM,QAA8B,CAAC;AAErC,SAAO,CAA6C,OAAa;AAC/D,WAAQ,IAAI,SAAgB;AAC1B,eAAS,IAAI,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG;AAC7C,YAAI,MAAM,CAAC,EAAE,WAAW,GAAG;AACzB,gBAAM,OAAO,GAAG,CAAC;AAAA,QACnB;AAAA,MACF;AAEA,YAAM,OAAO,IAAI,SAAc;AAC/B,YAAM,WAAW,MAAM,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO;AAEnD,YAAM,KAAK,IAAI;AAEf,aAAO,QAAQ,IAAI,QAAQ,EACxB,KAAK,MAAM,GAAG,GAAG,IAAI,CAAC,EACtB,KAAK,CAAC,UAAU;AACf,aAAK,QAAQ;AAEb,eAAO;AAAA,MACT,CAAC,EACA,MAAM,CAAC,WAAW;AACjB,aAAK,QAAQ;AAEb,cAAM;AAAA,MACR,CAAC;AAAA,IACL;AAAA,EACF;AACF;",
"names": []
}
{
"name": "@escapace/sequentialize",
"description": "",
"version": "2.0.0",
"version": "2.1.0",
"author": "escapace <opensource@escapace.com>",
"bugs": "https://github.com/escapace/sequentialize/issues",
"devDependencies": {
"@commitlint/cli": "17.0.3",
"@commitlint/config-conventional": "17.0.3",
"@commitlint/cli": "17.4.4",
"@commitlint/config-conventional": "17.4.4",
"@ls-lint/ls-lint": "1.11.2",
"@types/chai": "4.3.1",
"@types/mocha": "9.1.1",
"@types/node": "18.0.0",
"@types/chai": "4.3.4",
"@types/mocha": "10.0.1",
"@types/node": "18.14.0",
"@types/sinon": "10.0.13",
"@typescript-eslint/eslint-plugin": "5.30.5",
"@typescript-eslint/parser": "5.30.5",
"@typescript-eslint/eslint-plugin": "5.53.0",
"@typescript-eslint/parser": "5.53.0",
"arg": "5.0.2",
"c8": "7.11.3",
"chai": "4.3.6",
"changelogithub": "0.12.4",
"esbuild": "0.14.48",
"eslint": "8.19.0",
"eslint-config-escapace": "3.14.0",
"eslint-config-prettier": "8.5.0",
"c8": "7.13.0",
"chai": "4.3.7",
"changelogithub": "0.12.7",
"esbuild": "0.17.10",
"eslint": "8.34.0",
"eslint-config-escapace": "3.16.1",
"eslint-config-prettier": "8.6.0",
"eslint-plugin-editorconfig": "4.0.2",
"eslint-plugin-no-null": "1.0.2",
"execa": "6.1.0",
"fast-glob": "3.2.11",
"fs-extra": "10.1.0",
"husky": "8.0.1",
"execa": "7.0.0",
"fast-glob": "3.2.12",
"fs-extra": "11.1.0",
"husky": "8.0.3",
"is-ci": "3.0.1",
"lint-staged": "13.0.3",
"mocha": "10.0.0",
"prettier": "2.7.1",
"lint-staged": "13.1.2",
"mocha": "10.2.0",
"prettier": "2.8.4",
"prettier-config-escapace": "1.0.4",
"semver": "7.3.7",
"sinon": "14.0.0",
"syncpack": "8.2.4",
"typescript": "4.7.4"
"semver": "7.3.8",
"sinon": "15.0.1",
"syncpack": "9.7.4",
"typescript": "4.9.5"
},
"engines": {
"node": ">= 18.2.0",
"pnpm": ">= 7.1.7"
"pnpm": ">= 7.14.0"
},

@@ -70,3 +70,3 @@ "exports": {

"build": "node ./scripts/build.mjs",
"lint": "ls-lint && eslint 'src/**/*.ts?(x)'",
"lint": "ls-lint && eslint 'src/**/*.{js,mjs,cjs,ts,mts,cts}'",
"release": "node ./scripts/release.mjs",

@@ -73,0 +73,0 @@ "test": "node ./scripts/test.mjs && c8 mocha --enable-source-maps 'lib/tests/**/*.spec.js'",