UNPKG

6.45 kBSource Map (JSON)View Raw
1{"version":3,"file":"loadAsync.js","sourceRoot":"","sources":["../src/loadAsync.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolveAsync } from 'expo-asset-utils';\nimport resolveAsset, { stringFromAsset } from './resolveAsset';\nimport { ProgressCallback } from './loading.types';\nimport { loadTexture } from './loadTexture';\nimport {\n loadDaeAsync,\n loadObjAsync,\n loadMtlAsync,\n loadArrayBufferAsync,\n} from './loaders/loadModelsAsync';\nimport './polyfillTextureLoader.fx';\n\nimport { loadTextureAsync } from './loaders/loadTextureAsync';\nimport {\n loaderClassForExtension,\n loaderClassForUri,\n} from './loaderClassForExtension';\n\nexport async function loadBasicModelAsync(options: {\n uri: string;\n onProgress?: ProgressCallback;\n onAssetRequested: any;\n loader?: any;\n LoaderClass: any;\n}) {\n const { uri, onProgress, onAssetRequested, loader, LoaderClass } = options;\n const _loader = loader || new LoaderClass();\n if (_loader.setPath) {\n _loader.setPath(onAssetRequested);\n }\n return new Promise((res, rej) => _loader.load(uri, res, onProgress, rej));\n}\n\nexport default async function loadAsync(\n res,\n onProgress?: ProgressCallback,\n onAssetRequested = function() {}\n) {\n let urls = await resolveAsset(res);\n if (!urls) {\n throw new Error(\n `ExpoTHREE.loadAsync: Cannot parse undefined assets. Please pass valid resources for: ${res}.`\n );\n }\n const asset = urls[0];\n let url: string | null = (await resolveAsync(asset)).localUri;\n\n if (url == null) {\n throw new Error(\n `ExpoTHREE.loadAsync: this asset couldn't be downloaded. Be sure that your app.json contains the correct extensions.`\n );\n }\n\n if (urls.length === 1) {\n if (url.match(/\\.(jpeg|jpg|gif|png)$/)) {\n return loadTextureAsync({ asset });\n } else if (url.match(/\\.dae$/i)) {\n return loadDaeAsync({\n asset: url,\n onProgress,\n onAssetRequested,\n });\n } else if (url.match(/\\.(glb|gltf)$/i)) {\n const arrayBuffer = await loadArrayBufferAsync({ uri: url, onProgress });\n const GLTFLoader = loaderClassForExtension('gltf');\n const loader = new GLTFLoader();\n return new Promise((res, rej) =>\n loader.parse(arrayBuffer, onAssetRequested, res, rej)\n );\n } else if (url.match(/\\.json$/i)) {\n throw new Error(\n 'loadAsync: Please use ExpoTHREE.parseAsync({json}) instead, json can be loaded in lots of different ways.'\n );\n } else if (url.match(/\\.obj$/i)) {\n return loadObjAsync({ asset: url, onAssetRequested });\n } else if (url.match(/\\.mtl$/i)) {\n return loadMtlAsync({ asset: url, onAssetRequested });\n } else {\n const LoaderClass = loaderClassForUri(url);\n return loadBasicModelAsync({\n uri: url,\n onProgress,\n onAssetRequested,\n LoaderClass,\n });\n }\n } else if (urls.length === 2) {\n let urlB = await stringFromAsset(urls[1]);\n if (urlB != null) {\n if (url.match(/\\.mtl$/i) && urlB.match(/\\.obj$/i)) {\n return loadObjAsync({\n asset: urlB,\n mtlAsset: url,\n onAssetRequested,\n });\n } else if (url.match(/\\.obj$/i) && urlB.match(/\\.mtl$/i)) {\n return loadObjAsync({\n asset: url,\n mtlAsset: urlB,\n onAssetRequested,\n });\n }\n }\n\n throw new Error('Unrecognized File Type: ' + url);\n } else {\n throw new Error('Too many arguments passed: ' + urls);\n }\n}\n"]}
\No newline at end of file