UNPKG

@darth-knoppix/gatsby-plugin-amp-light

Version:
86 lines (70 loc) 4.29 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.onRenderBody = exports.onPreRenderHTML = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _jsxRuntime = require("react/jsx-runtime"); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function shouldAMPlify(pathname, pathIdentifier) { return pathname.startsWith(pathIdentifier || "/amp"); } var onPreRenderHTML = function onPreRenderHTML(_ref, _ref2) { var pathname = _ref.pathname, replacePostBodyComponents = _ref.replacePostBodyComponents, getPostBodyComponents = _ref.getPostBodyComponents; var pathIdentifier = _ref2.pathIdentifier; if (shouldAMPlify(pathname, pathIdentifier)) { var postBodyComponents = getPostBodyComponents(); // AMP doesn't allow extra JS replacePostBodyComponents(postBodyComponents.filter(function (x) { return x.type !== "script"; })); } }; exports.onPreRenderHTML = onPreRenderHTML; var onRenderBody = function onRenderBody(_ref3, _ref4) { var setHtmlAttributes = _ref3.setHtmlAttributes, setHeadComponents = _ref3.setHeadComponents, pathname = _ref3.pathname; var language = _ref4.language, pathIdentifier = _ref4.pathIdentifier; // Only modify page for AMP if (shouldAMPlify(pathname, pathIdentifier)) { console.info("\u26A1\uFE0F Making ".concat(pathname, " AMP ready")); setHtmlAttributes({ lang: language, amp: "" }); setHeadComponents([/*#__PURE__*/(0, _jsxRuntime.jsx)("link", { rel: "preload", as: "script", href: "https://cdn.ampproject.org/v0.js" }, "amp-script-preload"), /*#__PURE__*/(0, _react.createElement)("style", _objectSpread(_objectSpread({}, { "amp-custom": "" }), {}, { key: "amp-custom-style" })), /*#__PURE__*/(0, _jsxRuntime.jsx)("script", { async: true, src: "https://cdn.ampproject.org/v0.js" }, "amp-script"), /*#__PURE__*/(0, _jsxRuntime.jsx)("style", _objectSpread(_objectSpread({}, { "amp-boilerplate": "" }), {}, { dangerouslySetInnerHTML: { __html: "body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}" } }), "amp-boilerplate"), /*#__PURE__*/(0, _jsxRuntime.jsx)("noscript", { children: /*#__PURE__*/(0, _jsxRuntime.jsx)("style", _objectSpread(_objectSpread({}, { "amp-boilerplate": "" }), {}, { dangerouslySetInnerHTML: { __html: "body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}" } })) }, "amp-boilerplate-noscript")]); } }; exports.onRenderBody = onRenderBody;