| 123456789101112131415161718192021222324252627282930313233343536 | 'use strict'module.exports = inflightlet Bluebirdtry {  Bluebird = require('bluebird')} catch (_) {  Bluebird = Promise}const active = {}inflight.active = activefunction inflight (unique, doFly) {  return Bluebird.all([unique, doFly]).then(function (args) {    const unique = args[0]    const doFly = args[1]    if (Array.isArray(unique)) {      return Bluebird.all(unique).then(function (uniqueArr) {        return _inflight(uniqueArr.join(''), doFly)      })    } else {      return _inflight(unique, doFly)    }  })  function _inflight (unique, doFly) {    if (!active[unique]) {      active[unique] = (new Bluebird(function (resolve) {        return resolve(doFly())      }))      active[unique].then(cleanup, cleanup)      function cleanup() { delete active[unique] }    }    return active[unique]  }}
 |