@tanstack/router-core
Version:
Modern and scalable routing for React applications
75 lines (74 loc) • 2.29 kB
JavaScript
//#region src/manifest.ts
const DEV_STYLES_ATTR = "data-tanstack-router-dev-styles";
function getAssetCrossOrigin(assetCrossOrigin, kind) {
if (!assetCrossOrigin) return;
if (typeof assetCrossOrigin === "string") return assetCrossOrigin;
return assetCrossOrigin[kind];
}
function getManifestScriptFormat(manifest) {
return manifest?.scriptFormat ?? "module";
}
function getScriptPreloadAttrs(manifest, link, assetCrossOrigin) {
const preloadLink = resolveManifestAssetLink(link);
const crossOrigin = getAssetCrossOrigin(assetCrossOrigin, "script") ?? preloadLink.crossOrigin;
return {
...getManifestScriptFormat(manifest) === "iife" ? {
rel: "preload",
as: "script"
} : { rel: "modulepreload" },
href: preloadLink.href,
...crossOrigin ? { crossOrigin } : {}
};
}
function resolveManifestAssetLink(link) {
if (typeof link === "string") return {
href: link,
crossOrigin: void 0
};
return link;
}
function appendUniqueUserTags(target, tags) {
if (tags.length === 0) return;
if (tags.length === 1) {
target.push(tags[0]);
return;
}
const seen = /* @__PURE__ */ new Set();
for (const tag of tags) {
const key = JSON.stringify(tag);
if (seen.has(key)) continue;
seen.add(key);
target.push(tag);
}
}
function getStylesheetHref(asset) {
return resolveManifestCssLink(asset).href;
}
function resolveManifestCssLink(link) {
if (typeof link === "string") return {
href: link,
crossOrigin: void 0
};
return link;
}
function createInlineCssStyleAsset(css) {
return {
attrs: { suppressHydrationWarning: true },
children: css
};
}
function createInlineCssPlaceholderAsset() {
return { attrs: { suppressHydrationWarning: true } };
}
//#endregion
exports.DEV_STYLES_ATTR = DEV_STYLES_ATTR;
exports.appendUniqueUserTags = appendUniqueUserTags;
exports.createInlineCssPlaceholderAsset = createInlineCssPlaceholderAsset;
exports.createInlineCssStyleAsset = createInlineCssStyleAsset;
exports.getAssetCrossOrigin = getAssetCrossOrigin;
exports.getManifestScriptFormat = getManifestScriptFormat;
exports.getScriptPreloadAttrs = getScriptPreloadAttrs;
exports.getStylesheetHref = getStylesheetHref;
exports.resolveManifestAssetLink = resolveManifestAssetLink;
exports.resolveManifestCssLink = resolveManifestCssLink;
//# sourceMappingURL=manifest.cjs.map