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

@dadajam4/async-combiner

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dadajam4/async-combiner - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

44

dist/async-combiner.common.js
/*!
* async-combiner v0.0.1
* async-combiner v0.1.1
* (c) 2020 dadajam4

@@ -114,3 +114,3 @@ * Released under the MIT License.

function combine(condition, executor, combineClonePayload = useClonePayload) {
function combine(condition, executor, combineClonePayload = useClonePayload, delay = options.delay) {
return new Promise((resolve, reject) => {

@@ -125,2 +125,6 @@ const resolver = {

if (sameRunning) {
if (sameRunning.delay) {
sameRunning.delay.run();
}
sameRunning.resolvers.push(resolver);

@@ -133,3 +137,27 @@ return;

resolvers: [resolver],
clone: combineClonePayload
clone: combineClonePayload,
exec: () => {
newRunning.delay && newRunning.delay.clear();
executor().then(payload => {
resolveResolvers(flattenedCondition, 'resolve', payload);
}).catch(err => {
resolveResolvers(flattenedCondition, 'reject', err);
});
},
delay: delay ? {
timer: null,
run() {
this.clear();
this.timer = setTimeout(newRunning.exec, delay);
},
clear() {
if (this.timer !== null) {
clearTimeout(this.timer);
this.timer = null;
}
}
} : null
};

@@ -139,7 +167,7 @@ runnings.push(newRunning);

try {
executor().then(payload => {
resolveResolvers(flattenedCondition, 'resolve', payload);
}).catch(err => {
resolveResolvers(flattenedCondition, 'reject', err);
});
if (newRunning.delay) {
newRunning.delay.run();
} else {
newRunning.exec();
}
} catch (err) {

@@ -146,0 +174,0 @@ /* istanbul ignore next */

/*!
* async-combiner v0.0.1
* async-combiner v0.1.1
* (c) 2020 dadajam4

@@ -110,3 +110,3 @@ * Released under the MIT License.

function combine(condition, executor, combineClonePayload = useClonePayload) {
function combine(condition, executor, combineClonePayload = useClonePayload, delay = options.delay) {
return new Promise((resolve, reject) => {

@@ -121,2 +121,6 @@ const resolver = {

if (sameRunning) {
if (sameRunning.delay) {
sameRunning.delay.run();
}
sameRunning.resolvers.push(resolver);

@@ -129,3 +133,27 @@ return;

resolvers: [resolver],
clone: combineClonePayload
clone: combineClonePayload,
exec: () => {
newRunning.delay && newRunning.delay.clear();
executor().then(payload => {
resolveResolvers(flattenedCondition, 'resolve', payload);
}).catch(err => {
resolveResolvers(flattenedCondition, 'reject', err);
});
},
delay: delay ? {
timer: null,
run() {
this.clear();
this.timer = setTimeout(newRunning.exec, delay);
},
clear() {
if (this.timer !== null) {
clearTimeout(this.timer);
this.timer = null;
}
}
} : null
};

@@ -135,7 +163,7 @@ runnings.push(newRunning);

try {
executor().then(payload => {
resolveResolvers(flattenedCondition, 'resolve', payload);
}).catch(err => {
resolveResolvers(flattenedCondition, 'reject', err);
});
if (newRunning.delay) {
newRunning.delay.run();
} else {
newRunning.exec();
}
} catch (err) {

@@ -142,0 +170,0 @@ /* istanbul ignore next */

/*!
* async-combiner v0.0.1
* async-combiner v0.1.1
* (c) 2020 dadajam4

@@ -116,3 +116,3 @@ * Released under the MIT License.

function combine(condition, executor, combineClonePayload = useClonePayload) {
function combine(condition, executor, combineClonePayload = useClonePayload, delay = options.delay) {
return new Promise((resolve, reject) => {

@@ -127,2 +127,6 @@ const resolver = {

if (sameRunning) {
if (sameRunning.delay) {
sameRunning.delay.run();
}
sameRunning.resolvers.push(resolver);

@@ -135,3 +139,27 @@ return;

resolvers: [resolver],
clone: combineClonePayload
clone: combineClonePayload,
exec: () => {
newRunning.delay && newRunning.delay.clear();
executor().then(payload => {
resolveResolvers(flattenedCondition, 'resolve', payload);
}).catch(err => {
resolveResolvers(flattenedCondition, 'reject', err);
});
},
delay: delay ? {
timer: null,
run() {
this.clear();
this.timer = setTimeout(newRunning.exec, delay);
},
clear() {
if (this.timer !== null) {
clearTimeout(this.timer);
this.timer = null;
}
}
} : null
};

@@ -141,7 +169,7 @@ runnings.push(newRunning);

try {
executor().then(payload => {
resolveResolvers(flattenedCondition, 'resolve', payload);
}).catch(err => {
resolveResolvers(flattenedCondition, 'reject', err);
});
if (newRunning.delay) {
newRunning.delay.run();
} else {
newRunning.exec();
}
} catch (err) {

@@ -148,0 +176,0 @@ /* istanbul ignore next */

2

dist/async-combiner.min.js

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

!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n=n||self).AsyncCombiner={})}(this,(function(n){"use strict";const e=["string","number","boolean","undefined"];function t(n){const t=typeof n;return!!e.includes(t)||(null===n||n instanceof Date)}function o(n,e,c){return t(n)&&(n={"_async-combiner-condition_":n}),Object.keys(n).forEach(r=>{let i,s=n[r];var u;i=void 0===c?r:c+"."+r,u=s,Array.isArray(u)||u&&"object"==typeof u&&"Object"===u.constructor.name?o(s,e,i):t(s)&&(s instanceof Date&&(s=s.toString()),e[i]=s)}),e}function c(...n){const e={};return o(n,e),e}function r(n,e){const t=Object.keys(n),o=Object.keys(e);return t.length===o.length&&t.every(t=>n[t]===e[t])}function i(n={}){const e=[],{clone:t=!0}=n;function c(n,t,o){const c=e.find(e=>r(e.condition,n));if(!c)return;const i="resolve"===t;c.resolvers.forEach(n=>{const e=c.clone&&i&&o&&"object"==typeof o?JSON.parse(JSON.stringify(o)):o;n[t](e)}),c.resolvers=[],e.splice(e.indexOf(c),1)}return{combine:function(n,i,s=t){return new Promise((t,u)=>{const f={resolve:t,reject:u},l=function(n){const e={};return o(n,e),e}(n),a=e.find(n=>r(n.condition,l));if(a)return void a.resolvers.push(f);const d={condition:l,resolvers:[f],clone:s};e.push(d);try{i().then(n=>{c(l,"resolve",n)}).catch(n=>{c(l,"reject",n)})}catch(n){c(l,"reject",n)}})},_runnings:e,_resolveResolvers:c}}n.AsyncCombiner=class{constructor(){const n=i();this.$asyncCombinerContext=n,this.$asyncCombine=n.combine}},n.Combine=function(n){const e="function"==typeof n?{createCondition:n}:n||{},{createCondition:t=c}=e;return(n,o,c)=>{let r=c.value;if(!r)throw new TypeError("missing combine function");const s=i(e);c.value=function(...n){const o=t(...n);return s.combine(o,()=>r.call(this,...n),e.clone)}}},n.createCombinerContext=i,n.createCondition=c,Object.defineProperty(n,"__esModule",{value:!0})}));
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e=e||self).AsyncCombiner={})}(this,(function(e){"use strict";const n=["string","number","boolean","undefined"];function t(e){const t=typeof e;return!!n.includes(t)||(null===e||e instanceof Date)}function o(e,n,r){return t(e)&&(e={"_async-combiner-condition_":e}),Object.keys(e).forEach(c=>{let i,s=e[c];var l;i=void 0===r?c:r+"."+c,l=s,Array.isArray(l)||l&&"object"==typeof l&&"Object"===l.constructor.name?o(s,n,i):t(s)&&(s instanceof Date&&(s=s.toString()),n[i]=s)}),n}function r(...e){const n={};return o(e,n),n}function c(e,n){const t=Object.keys(e),o=Object.keys(n);return t.length===o.length&&t.every(t=>e[t]===n[t])}function i(e={}){const n=[],{clone:t=!0}=e;function r(e,t,o){const r=n.find(n=>c(n.condition,e));if(!r)return;const i="resolve"===t;r.resolvers.forEach(e=>{const n=r.clone&&i&&o&&"object"==typeof o?JSON.parse(JSON.stringify(o)):o;e[t](n)}),r.resolvers=[],n.splice(n.indexOf(r),1)}return{combine:function(i,s,l=t,u=e.delay){return new Promise((e,t)=>{const f={resolve:e,reject:t},a=function(e){const n={};return o(e,n),n}(i),d=n.find(e=>c(e.condition,a));if(d)return d.delay&&d.delay.run(),void d.resolvers.push(f);const y={condition:a,resolvers:[f],clone:l,exec:()=>{y.delay&&y.delay.clear(),s().then(e=>{r(a,"resolve",e)}).catch(e=>{r(a,"reject",e)})},delay:u?{timer:null,run(){this.clear(),this.timer=setTimeout(y.exec,u)},clear(){null!==this.timer&&(clearTimeout(this.timer),this.timer=null)}}:null};n.push(y);try{y.delay?y.delay.run():y.exec()}catch(e){r(a,"reject",e)}})},_runnings:n,_resolveResolvers:r}}e.AsyncCombiner=class{constructor(){const e=i();this.$asyncCombinerContext=e,this.$asyncCombine=e.combine}},e.Combine=function(e){const n="function"==typeof e?{createCondition:e}:e||{},{createCondition:t=r}=n;return(e,o,r)=>{let c=r.value;if(!c)throw new TypeError("missing combine function");const s=i(n);r.value=function(...e){const o=t(...e);return s.combine(o,()=>c.call(this,...e),n.clone)}}},e.createCombinerContext=i,e.createCondition=r,Object.defineProperty(e,"__esModule",{value:!0})}));
{
"name": "@dadajam4/async-combiner",
"version": "0.1.1",
"version": "0.1.2",
"description": "Service that combines multiple asynchronous requests into one",

@@ -5,0 +5,0 @@ "main": "dist/async-combiner.common.js",

@@ -15,2 +15,6 @@ import { AsyncCombinerFlattenedCondition } from './schemes';

clone?: boolean;
/**
* When delaying the start of asynchronous processing, specify the waiting time (ms). This option is useful in situations where users frequently make asynchronous operation change requests.
*/
delay?: number;
}

@@ -22,5 +26,18 @@ /** @private */

}
/**
* @private
*/
/** @private */
interface AsyncCombinerRunningDelaySettings {
/**
* Return value of setTimeout method
*/
timer: number | null;
/**
* Waits the specified delay milliseconds before executing the request. If it is already in the delay wait state, the wait time is updated.
*/
run: () => void;
/**
* Releases the deferred callback.
*/
clear: () => void;
}
/** @private */
interface AsyncCombinerRunning {

@@ -30,2 +47,4 @@ condition: AsyncCombinerFlattenedCondition;

clone?: boolean;
exec: () => void;
delay: AsyncCombinerRunningDelaySettings | null;
}

@@ -37,3 +56,3 @@ /**

export declare function createCombinerContext(options?: AsyncCombinerContextOptions): {
combine: <T = any>(condition: any, executor: AsyncCombinerExecutor<T>, combineClonePayload?: boolean) => Promise<T>;
combine: <T = any>(condition: any, executor: AsyncCombinerExecutor<T>, combineClonePayload?: boolean, delay?: number | undefined) => Promise<T>;
/** @private */

@@ -40,0 +59,0 @@ _runnings: AsyncCombinerRunning[];

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