@loaders.gl/core
Version: 
Framework-independent loaders for 3D graphics formats
38 lines (33 loc) • 1.25 kB
JavaScript
import { isFileReadable } from '../javascript-utils/is-type';
import { fetchFile } from './fetch/fetch-file';
import { isLoaderObject } from './loader-utils/normalize-loader';
import { mergeLoaderAndUserOptions } from './loader-utils/normalize-options';
import { selectLoader } from './select-loader';
import { parse } from './parse';
import { parseInBatches } from './parse-in-batches';
export async function loadInBatches(url, loaders, options) {
  const response = await fetchFile(url, options);
  return parseInBatches(response, loaders, options, url);
}
export async function load(url, loaders, options) {
  if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
    options = loaders;
    loaders = null;
  }
  const autoUrl = isFileReadable(url) ? url.name : url;
  const loader = selectLoader(loaders, autoUrl, null, {
    nothrow: true
  });
  if (loader) {
    if (loader.loadAndParse) {
      const loaderOptions = mergeLoaderAndUserOptions(options, loader);
      return await loader.loadAndParse(url, loaderOptions);
    }
  }
  let data = url;
  if (isFileReadable(data) || typeof data === 'string') {
    data = await fetchFile(url, options);
  }
  return parse(data, loaders, options, url);
}
//# sourceMappingURL=load.js.map