laravel-vite-plugin
Version:
Laravel plugin for Vite.
81 lines (79 loc) • 2.04 kB
JavaScript
// src/fonts/config.ts
var FORMATS = [
{
type: "woff2",
extension: ".woff2"
},
{
type: "woff",
extension: ".woff"
},
{
type: "ttf",
extension: ".ttf"
},
{
type: "otf",
extension: ".otf"
},
{
type: "eot",
extension: ".eot"
}
];
var FORMAT_PREFERENCE = FORMATS.map((f) => f.type);
var FORMAT_MAP = Object.fromEntries(
FORMATS.map((f) => [f.extension, f.type])
);
var SUPPORTED_EXTENSIONS = FORMATS.map((f) => f.extension);
var SUPPORTED_GLOB = `*.{${SUPPORTED_EXTENSIONS.map((ext) => ext.slice(1)).join(",")}}`;
function familyToSlug(family) {
return family.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/(^-|-$)/g, "");
}
function aliasToVariable(alias) {
return "--font-" + alias;
}
function buildFontDefinition(family, provider, options, extra) {
const alias = options?.alias ?? familyToSlug(family);
return {
family,
alias,
provider,
variable: options?.variable ?? aliasToVariable(alias),
weights: options?.weights ? [...options.weights] : [400],
styles: options?.styles ?? ["normal"],
subsets: options?.subsets ?? ["latin"],
display: options?.display ?? "swap",
preload: options?.preload ?? true,
fallbacks: options?.fallbacks ?? [],
optimizedFallbacks: options?.optimizedFallbacks ?? true,
...extra
};
}
// src/fonts/providers/providers.ts
function google(family, options) {
return buildFontDefinition(family, "google", options);
}
function bunny(family, options) {
return buildFontDefinition(family, "bunny", options);
}
function fontsource(family, options) {
return buildFontDefinition(family, "fontsource", options, {
_fontsource: { package: options?.package }
});
}
function local(family, options) {
const _local = "src" in options && options.src !== void 0 ? { src: options.src } : { variants: options.variants };
return buildFontDefinition(family, "local", options, {
weights: [],
styles: [],
subsets: [],
_local
});
}
export {
bunny,
fontsource,
google,
local
};