23 lines
536 B
JavaScript
23 lines
536 B
JavaScript
'use strict'
|
|
|
|
const Q = require('q')
|
|
|
|
module.exports = presetResolver
|
|
|
|
function presetResolver (presetPackage) {
|
|
// start the chain as a Q.Promise
|
|
return Q.resolve().then(() => {
|
|
// handle traditional node-style callbacks
|
|
if (typeof presetPackage === 'function') {
|
|
return Q.nfcall(presetPackage)
|
|
}
|
|
|
|
// handle object literal or Promise instance
|
|
if (typeof presetPackage === 'object') {
|
|
return Q(presetPackage)
|
|
}
|
|
|
|
throw new Error('preset package must be a promise, function, or object')
|
|
})
|
|
}
|