UNPKG

fontawesome-subset

Version:

Utility to create subsets for FontAwesome and FontAwesome Pro.

66 lines (65 loc) 2.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getFamilyMetaBySubset = exports.iconHasStyle = exports.addIconError = exports.findIconByName = void 0; const constants_1 = require("./constants"); /** * Find an icon using the IconYAML provided by FontAwesome. * @param yaml * @param iconNameOrAlias The name, unicode value, or supported alias of the icon. */ function findIconByName(yaml, iconNameOrAlias) { const icon = yaml[iconNameOrAlias]; if (icon) return icon; const keyForAlias = Object.keys(yaml).find((k) => { const icon = yaml[k]; if (!icon) return false; return (icon.unicode === iconNameOrAlias || ("aliases" in icon && (icon.aliases?.names?.includes(iconNameOrAlias) || icon.aliases?.unicodes?.composite?.includes(iconNameOrAlias) || icon.aliases?.unicodes?.secondary?.includes(iconNameOrAlias)))); }); if (keyForAlias) return yaml[keyForAlias]; return undefined; } exports.findIconByName = findIconByName; /** * Add an icon to the debug / warning error report. * * @param errors * @param fontFamily * @param icon */ function addIconError(errors, fontFamily, icon) { const iconArray = Array.isArray(icon) ? icon : [icon]; if (!errors[fontFamily]?.push(...iconArray)) { errors[fontFamily] = iconArray; } } exports.addIconError = addIconError; /** * Check if an icon supports the requested style. * * @param icon * @param subset * @param packageType */ function iconHasStyle(icon, subset, packageType) { const desiredStyle = (0, exports.getFamilyMetaBySubset)(subset); return !!icon.familyStylesByLicense[packageType].find((familyStyle) => familyStyle.style === desiredStyle.style && familyStyle.family === desiredStyle.family); } exports.iconHasStyle = iconHasStyle; /** * Convert FontAwesome's confusing new naming scheme to the previous 'styles' * listed in the old icon meta. * * @param subset */ const getFamilyMetaBySubset = (subset) => ({ family: constants_1.SUBSET_FAMILY_MAP[subset], style: constants_1.SUBSET_STYLE_MAP[subset], }); exports.getFamilyMetaBySubset = getFamilyMetaBySubset;