UNPKG

4.02 kBSource Map (JSON)View Raw
1{"version":3,"file":"createMetatagsFromConfig.js","sourceRoot":"","sources":["../src/createMetatagsFromConfig.ts"],"names":[],"mappings":";;;;;AACA,0DAAkC;AAElC,aAAa;AACb,SAAS,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,EAAE,QAAQ;IAC9D,KAAK,MAAM,YAAY,IAAI,qBAAqB,EAAE;QAChD,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE;YACrC,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;SAC5B;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,aAAa;AACb,SAAS,qBAAqB,CAAC,MAAM,EAAE,KAAK;IAC1C,IAAI,MAAM,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;QACzB,+CAA+C;QAC/C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzF,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;SAC3B;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAwB,wBAAwB,CAAC,SAAqB,EAAE;IACtE,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC;IACtC,MAAM,EACJ,QAAQ,EACR,sBAAsB,EACtB,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,EAAE,EACZ,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,EAAE,GACf,GAAG,IAAI,CAAC;IAET,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,kBAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC/E,MAAM,eAAe,GAAG,qBAAqB,CAAC,kBAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzE,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,kBAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAE/E,MAAM,aAAa,GAAG;QACpB,4CAA4C;QAC5C,kBAAkB,EAAE,KAAK,CAAC,eAAe;QACzC,wBAAwB,EAAE,KAAK,CAAC,eAAe;QAC/C,wBAAwB,EAAE,KAAK,CAAC,mBAAmB;QACnD,8BAA8B,EAAE,KAAK,CAAC,mBAAmB;QACzD,uCAAuC,EAAE,KAAK,CAAC,QAAQ;QACvD,4BAA4B,EAAE,GAAG,CAAC,SAAS;KAC5C,CAAC;IAEF,MAAM,QAAQ,6DACZ,QAAQ,EACR,WAAW,EAAE,MAAM,CAAC,WAAW,IAC5B,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,aAAa,CACjB,CAAC;IAEF,IAAI,sBAAsB,KAAK,SAAS,EAAE;QACxC,QAAQ,CAAC,0BAA0B,CAAC,GAAG,sBAAsB,CAAC;KAC/D;IAED,IAAI,UAAU,KAAK,SAAS,EAAE;QAC5B,QAAQ,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;KACtC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AA3CD,2CA2CC","sourcesContent":["import { ExpoConfig } from '@expo/config';\nimport Metatags from './Metatags';\n\n// @ts-ignore\nfunction possibleProperty(input, possiblePropertyNames, fallback) {\n for (const propertyName of possiblePropertyNames) {\n if (input[propertyName] !== undefined) {\n return input[propertyName];\n }\n }\n return fallback;\n}\n\n// @ts-ignore\nfunction populateMetatagObject(schema, input): { [key: string]: any } {\n let output: { [key: string]: any } = {};\n for (const item of schema) {\n // Check the list of propNames and the tag name\n const value = possibleProperty(input, item.propNames.concat([item.name]), item.fallback);\n if (value !== undefined) {\n output[item.name] = value;\n }\n }\n return output;\n}\n\nexport default function createMetatagsFromConfig(config: ExpoConfig = {}): { [key: string]: any } {\n const { web = {} } = config;\n const { themeColor, meta = {} } = web;\n const {\n viewport,\n googleSiteVerification,\n apple = {},\n twitter = {},\n openGraph = {},\n microsoft = {},\n } = meta;\n\n const openGraphMetatags = populateMetatagObject(Metatags.openGraph, openGraph);\n const twitterMetatags = populateMetatagObject(Metatags.twitter, twitter);\n const microsoftMetatags = populateMetatagObject(Metatags.microsoft, microsoft);\n\n const appleMetatags = {\n // Disable automatic phone number detection.\n 'format-detection': apple.formatDetection,\n 'apple-touch-fullscreen': apple.touchFullscreen,\n 'mobile-web-app-capable': apple.mobileWebAppCapable,\n 'apple-mobile-web-app-capable': apple.mobileWebAppCapable,\n 'apple-mobile-web-app-status-bar-style': apple.barStyle,\n 'apple-mobile-web-app-title': web.shortName,\n };\n\n const metaTags: { [key: string]: any } = {\n viewport,\n description: config.description,\n ...openGraphMetatags,\n ...microsoftMetatags,\n ...twitterMetatags,\n ...appleMetatags,\n };\n\n if (googleSiteVerification !== undefined) {\n metaTags['google-site-verification'] = googleSiteVerification;\n }\n\n if (themeColor !== undefined) {\n metaTags['theme-color'] = themeColor;\n }\n return metaTags;\n}\n"]}
\No newline at end of file