export function generateFontFaces()

in fusion-plugin-font-loader-react/src/generate-font-faces.js [12:51]


export function generateFontFaces(
  fonts: AtomicFontsObjectType | StyledFontsObjectType
) {
  // first sort atomic and styled font faces so font-faces will be well ordered
  const atomicDescriptors = [];
  const styledDescriptors = [];
  Object.keys(fonts).forEach(fontName => {
    const font = fonts[fontName];
    if (Array.isArray(font)) {
      styledDescriptors.push({fontName, font});
    } else if (font) {
      atomicDescriptors.push({fontName, font});
    }
  });

  const atomicFaces = atomicDescriptors.map(
    ({fontName, font}) =>
      `@font-face {
  font-family: "${fontName}";
  font-display: fallback;
  src: ${String(asFontFaceSrc(font.urls))};
}`
  );

  const styledFaces = [];
  styledDescriptors.forEach(({fontName, font}) =>
    styledFaces.push(
      ...font.map(
        fontInstance =>
          `@font-face {
font-family: "${fontName}";
font-display: fallback;
src: ${asFontFaceSrc(fontInstance.urls).join(',\n')};
${asFontFaceStyles(fontInstance.styles).join('')}}`
      )
    )
  );

  return '\n' + atomicFaces.concat(styledFaces).join('\n');
}