first commit
This commit is contained in:
78
app_vue/node_modules/any-promise/loader.js
generated
vendored
Normal file
78
app_vue/node_modules/any-promise/loader.js
generated
vendored
Normal file
@ -0,0 +1,78 @@
|
||||
"use strict"
|
||||
// global key for user preferred registration
|
||||
var REGISTRATION_KEY = '@@any-promise/REGISTRATION',
|
||||
// Prior registration (preferred or detected)
|
||||
registered = null
|
||||
|
||||
/**
|
||||
* Registers the given implementation. An implementation must
|
||||
* be registered prior to any call to `require("any-promise")`,
|
||||
* typically on application load.
|
||||
*
|
||||
* If called with no arguments, will return registration in
|
||||
* following priority:
|
||||
*
|
||||
* For Node.js:
|
||||
*
|
||||
* 1. Previous registration
|
||||
* 2. global.Promise if node.js version >= 0.12
|
||||
* 3. Auto detected promise based on first sucessful require of
|
||||
* known promise libraries. Note this is a last resort, as the
|
||||
* loaded library is non-deterministic. node.js >= 0.12 will
|
||||
* always use global.Promise over this priority list.
|
||||
* 4. Throws error.
|
||||
*
|
||||
* For Browser:
|
||||
*
|
||||
* 1. Previous registration
|
||||
* 2. window.Promise
|
||||
* 3. Throws error.
|
||||
*
|
||||
* Options:
|
||||
*
|
||||
* Promise: Desired Promise constructor
|
||||
* global: Boolean - Should the registration be cached in a global variable to
|
||||
* allow cross dependency/bundle registration? (default true)
|
||||
*/
|
||||
module.exports = function(root, loadImplementation){
|
||||
return function register(implementation, opts){
|
||||
implementation = implementation || null
|
||||
opts = opts || {}
|
||||
// global registration unless explicitly {global: false} in options (default true)
|
||||
var registerGlobal = opts.global !== false;
|
||||
|
||||
// load any previous global registration
|
||||
if(registered === null && registerGlobal){
|
||||
registered = root[REGISTRATION_KEY] || null
|
||||
}
|
||||
|
||||
if(registered !== null
|
||||
&& implementation !== null
|
||||
&& registered.implementation !== implementation){
|
||||
// Throw error if attempting to redefine implementation
|
||||
throw new Error('any-promise already defined as "'+registered.implementation+
|
||||
'". You can only register an implementation before the first '+
|
||||
' call to require("any-promise") and an implementation cannot be changed')
|
||||
}
|
||||
|
||||
if(registered === null){
|
||||
// use provided implementation
|
||||
if(implementation !== null && typeof opts.Promise !== 'undefined'){
|
||||
registered = {
|
||||
Promise: opts.Promise,
|
||||
implementation: implementation
|
||||
}
|
||||
} else {
|
||||
// require implementation if implementation is specified but not provided
|
||||
registered = loadImplementation(implementation)
|
||||
}
|
||||
|
||||
if(registerGlobal){
|
||||
// register preference globally in case multiple installations
|
||||
root[REGISTRATION_KEY] = registered
|
||||
}
|
||||
}
|
||||
|
||||
return registered
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user