1*a5fb1ba8SEvan Bacon"use strict"; 2*a5fb1ba8SEvan BaconObject.defineProperty(exports, "__esModule", { value: true }); 3*a5fb1ba8SEvan Baconexports.loadBundleAsync = void 0; 426ad19fcSEvan Bacon/** 526ad19fcSEvan Bacon * Copyright © 2022 650 Industries. 626ad19fcSEvan Bacon * 726ad19fcSEvan Bacon * This source code is licensed under the MIT license found in the 826ad19fcSEvan Bacon * LICENSE file in the root directory of this source tree. 926ad19fcSEvan Bacon */ 10*a5fb1ba8SEvan Baconconst buildUrlForBundle_1 = require("./buildUrlForBundle"); 11*a5fb1ba8SEvan Baconconst fetchThenEval_1 = require("./fetchThenEval"); 1226ad19fcSEvan Bacon// import LoadingView from '../LoadingView'; 1326ad19fcSEvan Baconlet pendingRequests = 0; 1426ad19fcSEvan Bacon/** 1526ad19fcSEvan Bacon * Load a bundle for a URL using fetch + eval on native and script tag injection on web. 1626ad19fcSEvan Bacon * 1726ad19fcSEvan Bacon * @param bundlePath Given a statement like `import('./Bacon')` `bundlePath` would be `Bacon.bundle?params=from-metro`. 1826ad19fcSEvan Bacon */ 19*a5fb1ba8SEvan Baconasync function loadBundleAsync(bundlePath) { 20*a5fb1ba8SEvan Bacon const requestUrl = (0, buildUrlForBundle_1.buildUrlForBundle)(bundlePath); 2126ad19fcSEvan Bacon if (process.env.NODE_ENV === 'production') { 22*a5fb1ba8SEvan Bacon return (0, fetchThenEval_1.fetchThenEvalAsync)(requestUrl); 2326ad19fcSEvan Bacon } 2426ad19fcSEvan Bacon else { 2526ad19fcSEvan Bacon const LoadingView = require('../LoadingView') 2626ad19fcSEvan Bacon .default; 2726ad19fcSEvan Bacon // Send a signal to the `expo` package to show the loading indicator. 2826ad19fcSEvan Bacon LoadingView.showMessage('Downloading...', 'load'); 2926ad19fcSEvan Bacon pendingRequests++; 30*a5fb1ba8SEvan Bacon return (0, fetchThenEval_1.fetchThenEvalAsync)(requestUrl) 3126ad19fcSEvan Bacon .then(() => { 3226ad19fcSEvan Bacon if (process.env.NODE_ENV !== 'production') { 3326ad19fcSEvan Bacon const HMRClient = require('../HMRClient') 3426ad19fcSEvan Bacon .default; 3526ad19fcSEvan Bacon HMRClient.registerBundle(requestUrl); 3626ad19fcSEvan Bacon } 3726ad19fcSEvan Bacon }) 3826ad19fcSEvan Bacon .finally(() => { 3926ad19fcSEvan Bacon if (!--pendingRequests) { 4026ad19fcSEvan Bacon LoadingView.hide(); 4126ad19fcSEvan Bacon } 4226ad19fcSEvan Bacon }); 4326ad19fcSEvan Bacon } 4426ad19fcSEvan Bacon} 45*a5fb1ba8SEvan Baconexports.loadBundleAsync = loadBundleAsync; 4626ad19fcSEvan Bacon//# sourceMappingURL=loadBundle.js.map