UNPKG

repoweaver

Version:

A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies

1 lines 20 kB
{"ast":null,"code":"import { CodedError, Platform } from 'expo-modules-core';\nimport FontObserver from 'fontfaceobserver';\nimport { FontDisplay } from \"./Font.types\";\nfunction getFontFaceStyleSheet() {\n if (!Platform.isDOMAvailable) {\n return null;\n }\n const styleSheet = getStyleElement();\n return styleSheet.sheet ? styleSheet.sheet : null;\n}\nfunction getFontFaceRules() {\n const sheet = getFontFaceStyleSheet();\n if (sheet) {\n const rules = [...sheet.cssRules];\n const items = [];\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n if (rule instanceof CSSFontFaceRule) {\n items.push({\n rule,\n index: i\n });\n }\n }\n return items;\n }\n return [];\n}\nfunction getFontFaceRulesMatchingResource(fontFamilyName, options) {\n const rules = getFontFaceRules();\n return rules.filter(({\n rule\n }) => {\n return rule.style.fontFamily === fontFamilyName && (options && options.display ? options.display === rule.style.fontDisplay : true);\n });\n}\nconst serverContext = new Set();\nfunction getHeadElements() {\n const entries = [...serverContext.entries()];\n if (!entries.length) {\n return [];\n }\n const css = entries.map(([{\n css\n }]) => css).join('\\n');\n const links = entries.map(([{\n resourceId\n }]) => resourceId);\n return [{\n $$type: 'style',\n children: css,\n id: ID,\n type: 'text/css'\n }, ...links.map(resourceId => ({\n $$type: 'link',\n rel: 'preload',\n href: resourceId,\n as: 'font',\n crossorigin: ''\n }))];\n}\nexport default {\n async unloadAllAsync() {\n if (!Platform.isDOMAvailable) return;\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n document.removeChild(element);\n }\n },\n async unloadAsync(fontFamilyName, options) {\n const sheet = getFontFaceStyleSheet();\n if (!sheet) return;\n const items = getFontFaceRulesMatchingResource(fontFamilyName, options);\n for (const item of items) {\n sheet.deleteRule(item.index);\n }\n },\n getServerResources() {\n const elements = getHeadElements();\n return elements.map(element => {\n switch (element.$$type) {\n case 'style':\n return `<style id=\"${element.id}\" type=\"${element.type}\">${element.children}</style>`;\n case 'link':\n return `<link rel=\"${element.rel}\" href=\"${element.href}\" as=\"${element.as}\" crossorigin=\"${element.crossorigin}\" />`;\n default:\n return '';\n }\n }).filter(Boolean);\n },\n resetServerContext() {\n serverContext.clear();\n },\n getLoadedFonts() {\n if (typeof window === 'undefined') {\n return [...serverContext.values()].map(({\n name\n }) => name);\n }\n const rules = getFontFaceRules();\n return rules.map(({\n rule\n }) => rule.style.fontFamily);\n },\n isLoaded(fontFamilyName, resource = {}) {\n if (typeof window === 'undefined') {\n return !![...serverContext.values()].find(asset => {\n return asset.name === fontFamilyName;\n });\n }\n return getFontFaceRulesMatchingResource(fontFamilyName, resource)?.length > 0;\n },\n loadAsync(fontFamilyName, resource) {\n if (typeof window === 'undefined') {\n serverContext.add({\n name: fontFamilyName,\n css: _createWebFontTemplate(fontFamilyName, resource),\n resourceId: resource.uri\n });\n return Promise.resolve();\n }\n const canInjectStyle = document.head && typeof document.head.appendChild === 'function';\n if (!canInjectStyle) {\n throw new CodedError('ERR_WEB_ENVIRONMENT', `The browser's \\`document.head\\` element doesn't support injecting fonts.`);\n }\n const style = getStyleElement();\n document.head.appendChild(style);\n const res = getFontFaceRulesMatchingResource(fontFamilyName, resource);\n if (!res.length) {\n _createWebStyle(fontFamilyName, resource);\n }\n if (!isFontLoadingListenerSupported()) {\n return Promise.resolve();\n }\n return new FontObserver(fontFamilyName, {\n display: resource.display\n }).load(null, 6000);\n }\n};\nconst ID = 'expo-generated-fonts';\nfunction getStyleElement() {\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n return element;\n }\n const styleElement = document.createElement('style');\n styleElement.id = ID;\n styleElement.type = 'text/css';\n return styleElement;\n}\nexport function _createWebFontTemplate(fontFamily, resource) {\n return `@font-face{font-family:${fontFamily};src:url(${resource.uri});font-display:${resource.display || FontDisplay.AUTO}}`;\n}\nfunction _createWebStyle(fontFamily, resource) {\n const fontStyle = _createWebFontTemplate(fontFamily, resource);\n const styleElement = getStyleElement();\n if (styleElement.styleSheet) {\n const styleElementIE = styleElement;\n styleElementIE.styleSheet.cssText = styleElementIE.styleSheet.cssText ? styleElementIE.styleSheet.cssText + fontStyle : fontStyle;\n } else {\n const textNode = document.createTextNode(fontStyle);\n styleElement.appendChild(textNode);\n }\n return styleElement;\n}\nfunction isFontLoadingListenerSupported() {\n const {\n userAgent\n } = window.navigator;\n const isIOS = !!userAgent.match(/iPad|iPhone/i);\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n const isEdge = userAgent.includes('Edge');\n const isIE = userAgent.includes('Trident');\n const isFirefox = userAgent.includes('Firefox');\n return !isSafari && !isIOS && !isEdge && !isIE && !isFirefox;\n}","map":{"version":3,"names":["CodedError","Platform","FontObserver","FontDisplay","getFontFaceStyleSheet","isDOMAvailable","styleSheet","getStyleElement","sheet","getFontFaceRules","rules","cssRules","items","i","length","rule","CSSFontFaceRule","push","index","getFontFaceRulesMatchingResource","fontFamilyName","options","filter","style","fontFamily","display","fontDisplay","serverContext","Set","getHeadElements","entries","css","map","join","links","resourceId","$$type","children","id","ID","type","rel","href","as","crossorigin","unloadAllAsync","element","document","getElementById","HTMLStyleElement","removeChild","unloadAsync","item","deleteRule","getServerResources","elements","Boolean","resetServerContext","clear","getLoadedFonts","window","values","name","isLoaded","resource","find","asset","loadAsync","add","_createWebFontTemplate","uri","Promise","resolve","canInjectStyle","head","appendChild","res","_createWebStyle","isFontLoadingListenerSupported","load","styleElement","createElement","AUTO","fontStyle","styleElementIE","cssText","textNode","createTextNode","userAgent","navigator","isIOS","match","isSafari","test","isEdge","includes","isIE","isFirefox"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/expo-font/src/ExpoFontLoader.web.ts"],"sourcesContent":["import { CodedError, Platform } from 'expo-modules-core';\nimport FontObserver from 'fontfaceobserver';\n\nimport { UnloadFontOptions } from './Font';\nimport { FontDisplay, FontResource } from './Font.types';\n\nfunction getFontFaceStyleSheet(): CSSStyleSheet | null {\n if (!Platform.isDOMAvailable) {\n return null;\n }\n const styleSheet = getStyleElement();\n return styleSheet.sheet ? (styleSheet.sheet as CSSStyleSheet) : null;\n}\n\ntype RuleItem = { rule: CSSFontFaceRule; index: number };\n\nfunction getFontFaceRules(): RuleItem[] {\n const sheet = getFontFaceStyleSheet();\n if (sheet) {\n // @ts-ignore: rule iterator\n const rules = [...sheet.cssRules];\n\n const items: RuleItem[] = [];\n\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n if (rule instanceof CSSFontFaceRule) {\n items.push({ rule, index: i });\n }\n }\n return items;\n }\n return [];\n}\n\nfunction getFontFaceRulesMatchingResource(\n fontFamilyName: string,\n options?: UnloadFontOptions\n): RuleItem[] {\n const rules = getFontFaceRules();\n return rules.filter(({ rule }) => {\n return (\n rule.style.fontFamily === fontFamilyName &&\n (options && options.display ? options.display === (rule.style as any).fontDisplay : true)\n );\n });\n}\n\nconst serverContext: Set<{ name: string; css: string; resourceId: string }> = new Set();\n\nfunction getHeadElements(): {\n $$type: string;\n rel?: string;\n href?: string;\n as?: string;\n crossorigin?: string;\n children?: string;\n id?: string;\n type?: string;\n}[] {\n const entries = [...serverContext.entries()];\n if (!entries.length) {\n return [];\n }\n const css = entries.map(([{ css }]) => css).join('\\n');\n const links = entries.map(([{ resourceId }]) => resourceId);\n // TODO: Maybe return nothing if no fonts were loaded.\n return [\n {\n $$type: 'style',\n children: css,\n id: ID,\n type: 'text/css',\n },\n ...links.map((resourceId) => ({\n $$type: 'link',\n rel: 'preload',\n href: resourceId,\n as: 'font',\n crossorigin: '',\n })),\n ];\n}\n\nexport default {\n async unloadAllAsync(): Promise<void> {\n if (!Platform.isDOMAvailable) return;\n\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n document.removeChild(element);\n }\n },\n\n async unloadAsync(fontFamilyName: string, options?: UnloadFontOptions): Promise<void> {\n const sheet = getFontFaceStyleSheet();\n if (!sheet) return;\n const items = getFontFaceRulesMatchingResource(fontFamilyName, options);\n for (const item of items) {\n sheet.deleteRule(item.index);\n }\n },\n\n getServerResources(): string[] {\n const elements = getHeadElements();\n\n return elements\n .map((element) => {\n switch (element.$$type) {\n case 'style':\n return `<style id=\"${element.id}\" type=\"${element.type}\">${element.children}</style>`;\n case 'link':\n return `<link rel=\"${element.rel}\" href=\"${element.href}\" as=\"${element.as}\" crossorigin=\"${element.crossorigin}\" />`;\n default:\n return '';\n }\n })\n .filter(Boolean);\n },\n\n resetServerContext() {\n serverContext.clear();\n },\n\n getLoadedFonts(): string[] {\n if (typeof window === 'undefined') {\n return [...serverContext.values()].map(({ name }) => name);\n }\n const rules = getFontFaceRules();\n return rules.map(({ rule }) => rule.style.fontFamily);\n },\n\n isLoaded(fontFamilyName: string, resource: UnloadFontOptions = {}): boolean {\n if (typeof window === 'undefined') {\n return !![...serverContext.values()].find((asset) => {\n return asset.name === fontFamilyName;\n });\n }\n return getFontFaceRulesMatchingResource(fontFamilyName, resource)?.length > 0;\n },\n\n // NOTE(EvanBacon): No async keyword! This cannot return a promise in Node environments.\n loadAsync(fontFamilyName: string, resource: FontResource): Promise<void> {\n if (typeof window === 'undefined') {\n serverContext.add({\n name: fontFamilyName,\n css: _createWebFontTemplate(fontFamilyName, resource),\n // @ts-expect-error: typeof string\n resourceId: resource.uri!,\n });\n return Promise.resolve();\n }\n\n const canInjectStyle = document.head && typeof document.head.appendChild === 'function';\n if (!canInjectStyle) {\n throw new CodedError(\n 'ERR_WEB_ENVIRONMENT',\n `The browser's \\`document.head\\` element doesn't support injecting fonts.`\n );\n }\n\n const style = getStyleElement();\n document.head!.appendChild(style);\n\n const res = getFontFaceRulesMatchingResource(fontFamilyName, resource);\n if (!res.length) {\n _createWebStyle(fontFamilyName, resource);\n }\n\n if (!isFontLoadingListenerSupported()) {\n return Promise.resolve();\n }\n\n return new FontObserver(fontFamilyName, {\n // @ts-expect-error: TODO(@kitten): Typings indicate that the polyfill may not support this?\n display: resource.display,\n }).load(null, 6000);\n },\n};\n\nconst ID = 'expo-generated-fonts';\n\nfunction getStyleElement(): HTMLStyleElement {\n const element = document.getElementById(ID);\n if (element && element instanceof HTMLStyleElement) {\n return element;\n }\n const styleElement = document.createElement('style');\n styleElement.id = ID;\n styleElement.type = 'text/css';\n return styleElement;\n}\n\nexport function _createWebFontTemplate(fontFamily: string, resource: FontResource): string {\n return `@font-face{font-family:${fontFamily};src:url(${resource.uri});font-display:${\n resource.display || FontDisplay.AUTO\n }}`;\n}\n\nfunction _createWebStyle(fontFamily: string, resource: FontResource): HTMLStyleElement {\n const fontStyle = _createWebFontTemplate(fontFamily, resource);\n\n const styleElement = getStyleElement();\n // @ts-ignore: TypeScript does not define HTMLStyleElement::styleSheet. This is just for IE and\n // possibly can be removed if it's unnecessary on IE 11.\n if (styleElement.styleSheet) {\n const styleElementIE = styleElement as any;\n styleElementIE.styleSheet.cssText = styleElementIE.styleSheet.cssText\n ? styleElementIE.styleSheet.cssText + fontStyle\n : fontStyle;\n } else {\n const textNode = document.createTextNode(fontStyle);\n styleElement.appendChild(textNode);\n }\n return styleElement;\n}\n\nfunction isFontLoadingListenerSupported(): boolean {\n const { userAgent } = window.navigator;\n // WebKit is broken https://github.com/bramstein/fontfaceobserver/issues/95\n const isIOS = !!userAgent.match(/iPad|iPhone/i);\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n // Edge is broken https://github.com/bramstein/fontfaceobserver/issues/109#issuecomment-333356795\n const isEdge = userAgent.includes('Edge');\n // Internet Explorer\n const isIE = userAgent.includes('Trident');\n // Firefox\n const isFirefox = userAgent.includes('Firefox');\n return !isSafari && !isIOS && !isEdge && !isIE && !isFirefox;\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{"hasCjsExports":false},"sourceType":"module","externalDependencies":[]}