UNPKG

@expo/webpack-pwa-manifest-plugin

Version:

Generates a progressive web app (PWA) manifest.json from a React Native app.json

144 lines (118 loc) 4.48 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2; function _load_extends() { return _extends2 = _interopRequireDefault(require('babel-runtime/helpers/extends')); } var _getIterator2; function _load_getIterator() { return _getIterator2 = _interopRequireDefault(require('babel-runtime/core-js/get-iterator')); } exports.default = createMetatagsFromConfig; var _Metatags; function _load_Metatags() { return _Metatags = _interopRequireDefault(require('./Metatags')); } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function possibleProperty(input, possiblePropertyNames, fallback) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, (_getIterator2 || _load_getIterator()).default)(possiblePropertyNames), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var propertyName = _step.value; if (input[propertyName] !== undefined) { return input[propertyName]; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return fallback; } function populateMetatagObject(schema, input) { var output = {}; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = (0, (_getIterator2 || _load_getIterator()).default)(schema), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var item = _step2.value; // Check the list of propNames and the tag name var value = possibleProperty(input, item.propNames.concat([item.name]), item.fallback); if (value !== undefined) { output[item.name] = value; } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return output; } function createMetatagsFromConfig(config) { var _ref = config || config.expo || {}, _ref$web = _ref.web, web = _ref$web === undefined ? {} : _ref$web; var themeColor = web.themeColor, _web$meta = web.meta, meta = _web$meta === undefined ? {} : _web$meta; var viewport = meta.viewport, googleSiteVerification = meta.googleSiteVerification, _meta$apple = meta.apple, apple = _meta$apple === undefined ? {} : _meta$apple, _meta$twitter = meta.twitter, twitter = _meta$twitter === undefined ? {} : _meta$twitter, _meta$openGraph = meta.openGraph, openGraph = _meta$openGraph === undefined ? {} : _meta$openGraph, _meta$microsoft = meta.microsoft, microsoft = _meta$microsoft === undefined ? {} : _meta$microsoft; var openGraphMetatags = populateMetatagObject((_Metatags || _load_Metatags()).default.openGraph, openGraph); var twitterMetatags = populateMetatagObject((_Metatags || _load_Metatags()).default.twitter, twitter); var microsoftMetatags = populateMetatagObject((_Metatags || _load_Metatags()).default.microsoft, microsoft); var appleMetatags = { // Disable automatic phone number detection. 'format-detection': apple.formatDetection, 'apple-touch-fullscreen': apple.touchFullscreen, 'mobile-web-app-capable': apple.mobileWebAppCapable, 'apple-mobile-web-app-capable': apple.mobileWebAppCapable, 'apple-mobile-web-app-status-bar-style': apple.barStyle, 'apple-mobile-web-app-title': web.shortName }; var metaTags = (0, (_extends2 || _load_extends()).default)({ viewport: viewport, description: config.description }, openGraphMetatags, microsoftMetatags, twitterMetatags, appleMetatags); if (googleSiteVerification !== undefined) { metaTags['google-site-verification'] = googleSiteVerification; } if (themeColor !== undefined) { metaTags['theme-color'] = themeColor; } return metaTags; } module.exports = exports['default']; //# sourceMappingURL=__sourcemaps__/createMetatagsFromConfig.js.map