diff options
| author | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-01 20:21:29 +0000 | 
|---|---|---|
| committer | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-01 20:21:29 +0000 | 
| commit | 61cb1570a3410c85a4489b97c172e3a50715f36c (patch) | |
| tree | 8fe4a5b77ea54bba80abc817ce2c9ef0e79e7e66 /sandbox/testAppNevena/Front/node_modules/inflight/inflight.js | |
| parent | 21a53d349788c99d2007cba91a923db982353b31 (diff) | |
| parent | a9ee9e0a500a4a15bd0b5dcaf041f827228ed309 (diff) | |
Merge branch 'researchML' into 'dev'
Research ml
See merge request igrannonica/neuronstellar!6
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/inflight/inflight.js')
| -rw-r--r-- | sandbox/testAppNevena/Front/node_modules/inflight/inflight.js | 54 | 
1 files changed, 54 insertions, 0 deletions
| diff --git a/sandbox/testAppNevena/Front/node_modules/inflight/inflight.js b/sandbox/testAppNevena/Front/node_modules/inflight/inflight.js new file mode 100644 index 00000000..48202b3c --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/inflight/inflight.js @@ -0,0 +1,54 @@ +var wrappy = require('wrappy') +var reqs = Object.create(null) +var once = require('once') + +module.exports = wrappy(inflight) + +function inflight (key, cb) { +  if (reqs[key]) { +    reqs[key].push(cb) +    return null +  } else { +    reqs[key] = [cb] +    return makeres(key) +  } +} + +function makeres (key) { +  return once(function RES () { +    var cbs = reqs[key] +    var len = cbs.length +    var args = slice(arguments) + +    // XXX It's somewhat ambiguous whether a new callback added in this +    // pass should be queued for later execution if something in the +    // list of callbacks throws, or if it should just be discarded. +    // However, it's such an edge case that it hardly matters, and either +    // choice is likely as surprising as the other. +    // As it happens, we do go ahead and schedule it for later execution. +    try { +      for (var i = 0; i < len; i++) { +        cbs[i].apply(null, args) +      } +    } finally { +      if (cbs.length > len) { +        // added more in the interim. +        // de-zalgo, just in case, but don't call again. +        cbs.splice(0, len) +        process.nextTick(function () { +          RES.apply(null, args) +        }) +      } else { +        delete reqs[key] +      } +    } +  }) +} + +function slice (args) { +  var length = args.length +  var array = [] + +  for (var i = 0; i < length; i++) array[i] = args[i] +  return array +} | 
