@loaders.gl/core
Version:
Framework-independent loaders for 3D graphics formats
52 lines (38 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.parseSync = parseSync;
var _selectLoader = require("./select-loader");
var _normalizeLoader = require("./loader-utils/normalize-loader");
var _normalizeOptions = require("./loader-utils/normalize-options");
var _getData = require("./loader-utils/get-data");
var _getLoaderContext = require("./loader-utils/get-loader-context");
function parseSync(data, loaders, options, url) {
if (!Array.isArray(loaders) && !(0, _normalizeLoader.isLoaderObject)(loaders)) {
url = options;
options = loaders;
loaders = null;
}
var loader = (0, _selectLoader.selectLoader)(loaders, url, data);
if (!loader) {
return null;
}
options = (0, _normalizeOptions.mergeLoaderAndUserOptions)(options, loader);
var context = (0, _getLoaderContext.getLoaderContext)({
url: url,
parseSync: parseSync
}, options);
return parseWithLoaderSync(loader, data, options, context);
}
function parseWithLoaderSync(loader, data, options, context) {
data = (0, _getData.getArrayBufferOrStringFromDataSync)(data, loader);
if (loader.parseTextSync && typeof data === 'string') {
return loader.parseTextSync(data, options, context, loader);
}
if (loader.parseSync) {
return loader.parseSync(data, options, context, loader);
}
throw new Error("Could not parse ".concat(context.url || 'data', " using ").concat(loader.name, " loader"));
}
//# sourceMappingURL=parse-sync.js.map