UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

203 lines (201 loc) 6.9 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var diagnoseRouteLoadFailure_exports = {}; __export(diagnoseRouteLoadFailure_exports, { diagnoseRouteLoadFailure: () => diagnoseRouteLoadFailure, findBlockedModule: () => findBlockedModule }); module.exports = __toCommonJS(diagnoseRouteLoadFailure_exports); var MAX_MODULES = 500; var TIMEOUT_MS = 5e3; function collectImports(source, base) { var out = []; var add = function (spec) { if (!/^[./]|^https?:/.test(spec)) return; try { out.push(new URL(spec, base).href); } catch (unused) {} }; var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0; try { for (var _iterator = source.matchAll(/(?:^|[\s;}])(?:import|export)[^'"]{0,300}?from\s*["']([^"']+)["']/g)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var m = _step.value; add(m[1]); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0; try { for (var _iterator1 = source.matchAll(/\bimport\s*\(\s*["']([^"']+)["']\s*\)/g)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) { var m1 = _step1.value; add(m1[1]); } } catch (err) { _didIteratorError1 = true; _iteratorError1 = err; } finally { try { if (!_iteratorNormalCompletion1 && _iterator1.return != null) { _iterator1.return(); } } finally { if (_didIteratorError1) { throw _iteratorError1; } } } var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0; try { for (var _iterator2 = source.matchAll(/(?:^|[\s;}])import\s*["']([^"']+)["']/g)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var m2 = _step2.value; add(m2[1]); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return out; } async function findBlockedModule(entryUrl) { var deadline = Date.now() + TIMEOUT_MS; var seen = /* @__PURE__ */new Set(); var frontier = [new URL(entryUrl, window.location.href).href]; while (frontier.length && seen.size < MAX_MODULES && Date.now() < deadline) { var batch = frontier.filter(function (url) { return !seen.has(url); }).slice(0, 32); if (!batch.length) break; frontier = frontier.slice(batch.length); var results = await Promise.all(batch.map(async function (url) { var _res_headers_get; seen.add(url); var res; try { res = await fetch(url); } catch (unused) { return { url, blocked: true, imports: [] }; } if (!res.ok) return { url, blocked: false, imports: [] }; var type = (_res_headers_get = res.headers.get("content-type")) !== null && _res_headers_get !== void 0 ? _res_headers_get : ""; if (!type.includes("javascript")) return { url, blocked: false, imports: [] }; return { url, blocked: false, imports: collectImports(await res.text(), url) }; })); var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0; try { for (var _iterator = results[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var result = _step.value; if (result.blocked) return result.url; var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0; try { for (var _iterator1 = result.imports[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) { var next = _step1.value; if (!seen.has(next)) frontier.push(next); } } catch (err) { _didIteratorError1 = true; _iteratorError1 = err; } finally { try { if (!_iteratorNormalCompletion1 && _iterator1.return != null) { _iterator1.return(); } } finally { if (_didIteratorError1) { throw _iteratorError1; } } } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } return null; } async function diagnoseRouteLoadFailure(routeId, routeUrl) { var blocked = await findBlockedModule(routeUrl); if (!blocked) return null; var path = blocked.replace(window.location.origin, ""); return [`Route "${routeId}" failed to load because this browser refused to fetch ${path}`, ``, `That request never reached the dev server, so a content blocker or privacy`, `extension is blocking it. In dev the module URL is the source path, and a`, `path containing a word like "analytics", "pageview" or "track" matches the`, `tracking rules those blockers ship.`, ``, `Rename the file or the directory so its path no longer matches, or allow`, `${window.location.origin} in the blocker.`].join("\n"); } //# sourceMappingURL=diagnoseRouteLoadFailure.native.js.map