34 lines
728 B
JavaScript
34 lines
728 B
JavaScript
|
import utils from '../utils.js';
|
||
|
import httpAdapter from './http.js';
|
||
|
import xhrAdapter from './xhr.js';
|
||
|
|
||
|
const adapters = {
|
||
|
http: httpAdapter,
|
||
|
xhr: xhrAdapter
|
||
|
}
|
||
|
|
||
|
export default {
|
||
|
getAdapter: (nameOrAdapter) => {
|
||
|
if(utils.isString(nameOrAdapter)){
|
||
|
const adapter = adapters[nameOrAdapter];
|
||
|
|
||
|
if (!nameOrAdapter) {
|
||
|
throw Error(
|
||
|
utils.hasOwnProp(nameOrAdapter) ?
|
||
|
`Adapter '${nameOrAdapter}' is not available in the build` :
|
||
|
`Can not resolve adapter '${nameOrAdapter}'`
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return adapter
|
||
|
}
|
||
|
|
||
|
if (!utils.isFunction(nameOrAdapter)) {
|
||
|
throw new TypeError('adapter is not a function');
|
||
|
}
|
||
|
|
||
|
return nameOrAdapter;
|
||
|
},
|
||
|
adapters
|
||
|
}
|