@bacons/expo-metro-runtime
Version:
Tools for making experimental Metro bundler features work
25 lines • 1.12 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildUrlForBundle = void 0;
const qs_1 = __importDefault(require("qs"));
/**
* Given a path and some optional additional query parameters, create the dev server bundle URL.
* @param bundlePath like `/foobar`
* @param params like `{ platform: "web" }`
* @returns a URL like "/foobar.bundle?platform=android&modulesOnly=true&runModule=false&runtimeBytecodeVersion=null"
*/
function buildUrlForBundle(bundlePath, params = {}) {
// NOTE(EvanBacon): This must come from the window origin (at least in dev mode).
// Otherwise Metro will crash from attempting to load a bundle that doesn't exist.
let url = "";
if (!bundlePath.startsWith("/")) {
url += "/";
}
const query = qs_1.default.stringify(params);
return url + bundlePath + ".bundle" + (query ? "?" + query : "");
}
exports.buildUrlForBundle = buildUrlForBundle;
//# sourceMappingURL=buildUrlForBundle.js.map