@tanstack/router-core
Version:
Modern and scalable routing for React applications
66 lines (65 loc) • 1.98 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
export { DEV_STYLES_ATTR, appendUniqueUserTags, createInlineCssPlaceholderAsset, createInlineCssStyleAsset, getAssetCrossOrigin, getManifestScriptFormat, getScriptPreloadAttrs, getStylesheetHref, resolveManifestAssetLink, resolveManifestCssLink };
//# sourceMappingURL=manifest.js.map