update
This commit is contained in:
14
package/node_modules/promise-inflight/LICENSE
generated
vendored
Normal file
14
package/node_modules/promise-inflight/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Copyright (c) 2017, Rebecca Turner <me@re-becca.org>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
36
package/node_modules/promise-inflight/inflight.js
generated
vendored
Normal file
36
package/node_modules/promise-inflight/inflight.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
'use strict'
|
||||
module.exports = inflight
|
||||
|
||||
let Bluebird
|
||||
try {
|
||||
Bluebird = require('bluebird')
|
||||
} catch (_) {
|
||||
Bluebird = Promise
|
||||
}
|
||||
|
||||
const active = {}
|
||||
inflight.active = active
|
||||
function 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]
|
||||
}
|
||||
}
|
24
package/node_modules/promise-inflight/package.json
generated
vendored
Normal file
24
package/node_modules/promise-inflight/package.json
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "promise-inflight",
|
||||
"version": "1.0.1",
|
||||
"description": "One promise for multiple requests in flight to avoid async duplication",
|
||||
"main": "inflight.js",
|
||||
"files": [
|
||||
"inflight.js"
|
||||
],
|
||||
"license": "ISC",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "Rebecca Turner <me@re-becca.org> (http://re-becca.org/)",
|
||||
"devDependencies": {},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/iarna/promise-inflight.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/iarna/promise-inflight/issues"
|
||||
},
|
||||
"homepage": "https://github.com/iarna/promise-inflight#readme"
|
||||
}
|
Reference in New Issue
Block a user