gatsby-plugin-prefetch-google-fonts
Version:
A Gatsby plugin to download and prefetch [Google Fonts](https://fonts.google.com/). Can increase performance as opposed to loading webfonts from Google's external stylesheet.
38 lines (31 loc) • 1.21 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var React = require("react");
var globby = require("globby").sync;
var _require = require("fs"),
readFileSync = _require.readFileSync;
var path = require("path");
exports.onRenderBody = function (_ref) {
var _ref$pathPrefix = _ref.pathPrefix,
pathPrefix = _ref$pathPrefix === void 0 ? "" : _ref$pathPrefix,
setHeadComponents = _ref.setHeadComponents;
var files = globby("./public/google-fonts/**/*.woff2");
var css = readFileSync(path.join("./.cache/google-fonts/", pathPrefix, "google-fonts.css"));
setHeadComponents((0, _toConsumableArray2.default)(files.map(function (file, key) {
return React.createElement("link", {
key: "googleFont".concat(key),
rel: "preload",
as: "font",
type: "font/woff2",
crossOrigin: "anonymous",
href: file.replace("./public", pathPrefix)
});
})).concat([React.createElement("style", {
key: "googleFontsCSS",
type: "text/css",
dangerouslySetInnerHTML: {
__html: css
}
})]));
};