UNPKG

the-platform

Version:

React Hooks and Suspense-ready Components for Web API's and elements

51 lines (40 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Preload = exports.PreloadResource = void 0; var _createResource = require("./createResource"); function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var PreloadResource = (0, _createResource.createResource)(load, function (_ref) { var href = _ref.href, as = _ref.as; return "".concat(href, ".").concat(as); }); exports.PreloadResource = PreloadResource; function load(_ref2) { var href = _ref2.href, as = _ref2.as, _ref2$media = _ref2.media, media = _ref2$media === void 0 ? 'all' : _ref2$media; return new Promise(function (resolve, reject) { var link = document.createElement('link'); link.rel = 'preload'; link.as = as; link.media = media; link.href = href; link.onload = resolve; link.onerror = reject; document.body.appendChild(link); }); } var Preload = function Preload(_ref3) { var children = _ref3.children, rest = _objectWithoutProperties(_ref3, ["children"]); PreloadResource.read(rest); if (typeof children === 'function') { return children(); } return children; }; exports.Preload = Preload;