Initial commit
This commit is contained in:
62
node_modules/astro/dist/assets/fonts/utils.js
generated
vendored
Normal file
62
node_modules/astro/dist/assets/fonts/utils.js
generated
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
import { FONT_TYPES, GENERIC_FALLBACK_NAMES } from "./constants.js";
|
||||
function unifontFontFaceDataToProperties(font) {
|
||||
return {
|
||||
src: font.src ? renderFontSrc(font.src) : void 0,
|
||||
"font-display": font.display ?? "swap",
|
||||
"unicode-range": font.unicodeRange?.length ? font.unicodeRange.join(",") : void 0,
|
||||
"font-weight": renderFontWeight(font.weight),
|
||||
"font-style": font.style,
|
||||
"font-stretch": font.stretch,
|
||||
"font-feature-settings": font.featureSettings,
|
||||
"font-variation-settings": font.variationSettings
|
||||
};
|
||||
}
|
||||
function renderFontWeight(weight) {
|
||||
return Array.isArray(weight) ? weight.join(" ") : weight?.toString();
|
||||
}
|
||||
function renderFontSrc(sources) {
|
||||
return sources.map((src) => {
|
||||
if ("name" in src) {
|
||||
return `local("${src.name}")`;
|
||||
}
|
||||
let rendered = `url("${src.url}")`;
|
||||
if (src.format) {
|
||||
rendered += ` format("${src.format}")`;
|
||||
}
|
||||
if (src.tech) {
|
||||
rendered += ` tech(${src.tech})`;
|
||||
}
|
||||
return rendered;
|
||||
}).join(", ");
|
||||
}
|
||||
const QUOTES_RE = /^["']|["']$/g;
|
||||
function withoutQuotes(str) {
|
||||
return str.trim().replace(QUOTES_RE, "");
|
||||
}
|
||||
function isFontType(str) {
|
||||
return FONT_TYPES.includes(str);
|
||||
}
|
||||
function isGenericFontFamily(str) {
|
||||
return GENERIC_FALLBACK_NAMES.includes(str);
|
||||
}
|
||||
function dedupe(arr) {
|
||||
return [...new Set(arr)];
|
||||
}
|
||||
function sortObjectByKey(unordered) {
|
||||
const ordered = Object.keys(unordered).sort().reduce((obj, key) => {
|
||||
const value = unordered[key];
|
||||
obj[key] = Array.isArray(value) ? value.map((v) => typeof v === "object" && v !== null ? sortObjectByKey(v) : v) : typeof value === "object" && value !== null ? sortObjectByKey(value) : value;
|
||||
return obj;
|
||||
}, {});
|
||||
return ordered;
|
||||
}
|
||||
export {
|
||||
dedupe,
|
||||
isFontType,
|
||||
isGenericFontFamily,
|
||||
renderFontSrc,
|
||||
renderFontWeight,
|
||||
sortObjectByKey,
|
||||
unifontFontFaceDataToProperties,
|
||||
withoutQuotes
|
||||
};
|
||||
Reference in New Issue
Block a user