Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
adapters.js78 linesDownload Raw Back to adapters
1import utils from '../utils.js';2import httpAdapter from './http.js';3import xhrAdapter from './xhr.js';4import AxiosError from "../core/AxiosError.js";5 6const knownAdapters = {7  http: httpAdapter,8  xhr: xhrAdapter9}10 11utils.forEach(knownAdapters, (fn, value) => {12  if (fn) {13    try {14      Object.defineProperty(fn, 'name', {value});15    } catch (e) {16      // eslint-disable-next-line no-empty17    }18    Object.defineProperty(fn, 'adapterName', {value});19  }20});21 22const renderReason = (reason) => `- ${reason}`;23 24const isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;25 26export default {27  getAdapter: (adapters) => {28    adapters = utils.isArray(adapters) ? adapters : [adapters];29 30    const {length} = adapters;31    let nameOrAdapter;32    let adapter;33 34    const rejectedReasons = {};35 36    for (let i = 0; i < length; i++) {37      nameOrAdapter = adapters[i];38      let id;39 40      adapter = nameOrAdapter;41 42      if (!isResolvedHandle(nameOrAdapter)) {43        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];44 45        if (adapter === undefined) {46          throw new AxiosError(`Unknown adapter '${id}'`);47        }48      }49 50      if (adapter) {51        break;52      }53 54      rejectedReasons[id || '#' + i] = adapter;55    }56 57    if (!adapter) {58 59      const reasons = Object.entries(rejectedReasons)60        .map(([id, state]) => `adapter ${id} ` +61          (state === false ? 'is not supported by the environment' : 'is not available in the build')62        );63 64      let s = length ?65        (reasons.length > 1 ? 'since :\n' + reasons.map(renderReason).join('\n') : ' ' + renderReason(reasons[0])) :66        'as no adapter specified';67 68      throw new AxiosError(69        `There is no suitable adapter to dispatch the request ` + s,70        'ERR_NOT_SUPPORT'71      );72    }73 74    return adapter;75  },76  adapters: knownAdapters77}78 
codekingpro/portable-devtools · Team Ai