UNPKG

@playcanvas/react

Version:

A React renderer for PlayCanvas – build interactive 3D applications using React's declarative paradigm.

32 lines 1.08 kB
import { Asset } from "playcanvas"; import { warnOnce } from "./validation"; export const fetchAsset = (app, url, type, props = {}) => { return new Promise((resolve, reject) => { let propsKey = url; try { propsKey += JSON.stringify(props, Object.keys(props).sort()); } catch { const error = `Invalid props for "fetchAsset('${url}')". Props must be serializable to JSON.`; warnOnce(error); throw new Error(error); } let asset = app.assets.find(propsKey, type); if (!asset) { asset = new Asset(propsKey, type, { url }, props); app.assets.add(asset); } if (asset.resource) { resolve(asset); } else { asset.once('load', () => resolve(asset)); asset.once('error', (err) => reject(err)); // Start loading if not already loading if (!asset.loading) { app.assets.load(asset); } } }); }; //# sourceMappingURL=fetch-asset.js.map