{"ast":null,"code":"import _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { CodedError, UnavailabilityError } from '@unimodules/core';\nimport ExpoFontLoader from \"./ExpoFontLoader\";\nimport { FontDisplay } from \"./Font.types\";\nimport { getAssetForSource, loadSingleFontAsync, fontFamilyNeedsScoping, getNativeFontName } from \"./FontLoader\";\nvar loaded = {};\nvar loadPromises = {};\nexport function processFontFamily(fontFamily) {\n  if (!fontFamily || !fontFamilyNeedsScoping(fontFamily)) {\n    return fontFamily;\n  }\n\n  if (!isLoaded(fontFamily)) {\n    if (__DEV__) {\n      if (isLoading(fontFamily)) {\n        console.error(\"You started loading the font \\\"\" + fontFamily + \"\\\", but used it before it finished loading.\\n\\n- You need to wait for Font.loadAsync to complete before using the font.\\n\\n- We recommend loading all fonts before rendering the app, and rendering only Expo.AppLoading while waiting for loading to complete.\");\n      } else {\n        console.error(\"fontFamily \\\"\" + fontFamily + \"\\\" is not a system font and has not been loaded through Font.loadAsync.\\n\\n- If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.\\n\\n- If this is a custom font, be sure to load it with Font.loadAsync.\");\n      }\n    }\n\n    return 'System';\n  }\n\n  return \"ExpoFont-\" + getNativeFontName(fontFamily);\n}\nexport function isLoaded(fontFamily) {\n  return fontFamily in loaded;\n}\nexport function isLoading(fontFamily) {\n  return fontFamily in loadPromises;\n}\nexport function loadAsync(fontFamilyOrFontMap, source) {\n  var fontMap, names;\n  return _regeneratorRuntime.async(function loadAsync$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          if (!(typeof fontFamilyOrFontMap === 'object')) {\n            _context.next = 8;\n            break;\n          }\n\n          if (!source) {\n            _context.next = 3;\n            break;\n          }\n\n          throw new CodedError(\"ERR_FONT_API\", \"No fontFamily can be used for the provided source: \" + source + \". The second argument of `loadAsync()` can only be used with a `string` value as the first argument.\");\n\n        case 3:\n          fontMap = fontFamilyOrFontMap;\n          names = Object.keys(fontMap);\n          _context.next = 7;\n          return _regeneratorRuntime.awrap(Promise.all(names.map(function (name) {\n            return loadFontInNamespaceAsync(name, fontMap[name]);\n          })));\n\n        case 7:\n          return _context.abrupt(\"return\");\n\n        case 8:\n          _context.next = 10;\n          return _regeneratorRuntime.awrap(loadFontInNamespaceAsync(fontFamilyOrFontMap, source));\n\n        case 10:\n          return _context.abrupt(\"return\", _context.sent);\n\n        case 11:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, null, null, null, Promise);\n}\n\nfunction loadFontInNamespaceAsync(fontFamily, source) {\n  var asset;\n  return _regeneratorRuntime.async(function loadFontInNamespaceAsync$(_context3) {\n    while (1) {\n      switch (_context3.prev = _context3.next) {\n        case 0:\n          if (source) {\n            _context3.next = 2;\n            break;\n          }\n\n          throw new CodedError(\"ERR_FONT_SOURCE\", \"Cannot load null or undefined font source: { \\\"\" + fontFamily + \"\\\": \" + source + \" }. Expected asset of type `FontSource` for fontFamily of name: \\\"\" + fontFamily + \"\\\"\");\n\n        case 2:\n          if (!loaded[fontFamily]) {\n            _context3.next = 4;\n            break;\n          }\n\n          return _context3.abrupt(\"return\");\n\n        case 4:\n          if (!loadPromises[fontFamily]) {\n            _context3.next = 6;\n            break;\n          }\n\n          return _context3.abrupt(\"return\", loadPromises[fontFamily]);\n\n        case 6:\n          asset = getAssetForSource(source);\n\n          loadPromises[fontFamily] = function _callee() {\n            return _regeneratorRuntime.async(function _callee$(_context2) {\n              while (1) {\n                switch (_context2.prev = _context2.next) {\n                  case 0:\n                    _context2.prev = 0;\n                    _context2.next = 3;\n                    return _regeneratorRuntime.awrap(loadSingleFontAsync(fontFamily, asset));\n\n                  case 3:\n                    loaded[fontFamily] = true;\n\n                  case 4:\n                    _context2.prev = 4;\n                    delete loadPromises[fontFamily];\n                    return _context2.finish(4);\n\n                  case 7:\n                  case \"end\":\n                    return _context2.stop();\n                }\n              }\n            }, null, null, [[0,, 4, 7]], Promise);\n          }();\n\n          _context3.next = 10;\n          return _regeneratorRuntime.awrap(loadPromises[fontFamily]);\n\n        case 10:\n        case \"end\":\n          return _context3.stop();\n      }\n    }\n  }, null, null, null, Promise);\n}\n\nexport function unloadAllAsync() {\n  var _i, _Object$keys, fontFamily;\n\n  return _regeneratorRuntime.async(function unloadAllAsync$(_context4) {\n    while (1) {\n      switch (_context4.prev = _context4.next) {\n        case 0:\n          if (ExpoFontLoader.unloadAllAsync) {\n            _context4.next = 2;\n            break;\n          }\n\n          throw new UnavailabilityError('expo-font', 'unloadAllAsync');\n\n        case 2:\n          if (!Object.keys(loadPromises).length) {\n            _context4.next = 4;\n            break;\n          }\n\n          throw new CodedError(\"ERR_UNLOAD\", \"Cannot unload fonts while they're still loading: \" + Object.keys(loadPromises).join(', '));\n\n        case 4:\n          for (_i = 0, _Object$keys = Object.keys(loaded); _i < _Object$keys.length; _i++) {\n            fontFamily = _Object$keys[_i];\n            delete loaded[fontFamily];\n          }\n\n          _context4.next = 7;\n          return _regeneratorRuntime.awrap(ExpoFontLoader.unloadAllAsync());\n\n        case 7:\n        case \"end\":\n          return _context4.stop();\n      }\n    }\n  }, null, null, null, Promise);\n}\nexport function unloadAsync(fontFamilyOrFontMap, options) {\n  var fontMap, names;\n  return _regeneratorRuntime.async(function unloadAsync$(_context5) {\n    while (1) {\n      switch (_context5.prev = _context5.next) {\n        case 0:\n          if (ExpoFontLoader.unloadAsync) {\n            _context5.next = 2;\n            break;\n          }\n\n          throw new UnavailabilityError('expo-font', 'unloadAsync');\n\n        case 2:\n          if (!(typeof fontFamilyOrFontMap === 'object')) {\n            _context5.next = 10;\n            break;\n          }\n\n          if (!options) {\n            _context5.next = 5;\n            break;\n          }\n\n          throw new CodedError(\"ERR_FONT_API\", \"No fontFamily can be used for the provided options: \" + options + \". The second argument of `unloadAsync()` can only be used with a `string` value as the first argument.\");\n\n        case 5:\n          fontMap = fontFamilyOrFontMap;\n          names = Object.keys(fontMap);\n          _context5.next = 9;\n          return _regeneratorRuntime.awrap(Promise.all(names.map(function (name) {\n            return unloadFontInNamespaceAsync(name, fontMap[name]);\n          })));\n\n        case 9:\n          return _context5.abrupt(\"return\");\n\n        case 10:\n          _context5.next = 12;\n          return _regeneratorRuntime.awrap(unloadFontInNamespaceAsync(fontFamilyOrFontMap, options));\n\n        case 12:\n          return _context5.abrupt(\"return\", _context5.sent);\n\n        case 13:\n        case \"end\":\n          return _context5.stop();\n      }\n    }\n  }, null, null, null, Promise);\n}\n\nfunction unloadFontInNamespaceAsync(fontFamily, options) {\n  var nativeFontName;\n  return _regeneratorRuntime.async(function unloadFontInNamespaceAsync$(_context6) {\n    while (1) {\n      switch (_context6.prev = _context6.next) {\n        case 0:\n          if (loaded[fontFamily]) {\n            _context6.next = 4;\n            break;\n          }\n\n          return _context6.abrupt(\"return\");\n\n        case 4:\n          delete loaded[fontFamily];\n\n        case 5:\n          nativeFontName = getNativeFontName(fontFamily);\n\n          if (nativeFontName) {\n            _context6.next = 8;\n            break;\n          }\n\n          throw new CodedError(\"ERR_FONT_FAMILY\", \"Cannot unload an empty name\");\n\n        case 8:\n          _context6.next = 10;\n          return _regeneratorRuntime.awrap(ExpoFontLoader.unloadAsync(nativeFontName, options));\n\n        case 10:\n        case \"end\":\n          return _context6.stop();\n      }\n    }\n  }, null, null, null, Promise);\n}\n\nexport { FontDisplay };","map":{"version":3,"sources":["../src/Font.ts"],"names":[],"mappings":"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","sourcesContent":["import { CodedError, UnavailabilityError } from '@unimodules/core';\n\nimport ExpoFontLoader from './ExpoFontLoader';\nimport { FontDisplay, FontSource, FontResource, UnloadFontOptions } from './Font.types';\nimport {\n  getAssetForSource,\n  loadSingleFontAsync,\n  fontFamilyNeedsScoping,\n  getNativeFontName,\n} from './FontLoader';\n\nconst loaded: { [name: string]: boolean } = {};\nconst loadPromises: { [name: string]: Promise<void> } = {};\n\n/**\n * Used to transform font family names to the scoped name. This does not need to\n * be called in standalone or bare apps but it will return unscoped font family\n * names if it is called in those contexts.\n * note(brentvatne): at some point we may want to warn if this is called\n * outside of a managed app.\n *\n * @param fontFamily name to process\n * @returns a name processed for use with the [current workflow](https://docs.expo.io/versions/latest/introduction/managed-vs-bare/)\n */\nexport function processFontFamily(fontFamily: string | null): string | null {\n  if (!fontFamily || !fontFamilyNeedsScoping(fontFamily)) {\n    return fontFamily;\n  }\n\n  if (!isLoaded(fontFamily)) {\n    if (__DEV__) {\n      if (isLoading(fontFamily)) {\n        console.error(\n          `You started loading the font \"${fontFamily}\", but used it before it finished loading.\\n\n- You need to wait for Font.loadAsync to complete before using the font.\\n\n- We recommend loading all fonts before rendering the app, and rendering only Expo.AppLoading while waiting for loading to complete.`\n        );\n      } else {\n        console.error(\n          `fontFamily \"${fontFamily}\" is not a system font and has not been loaded through Font.loadAsync.\\n\n- If you intended to use a system font, make sure you typed the name correctly and that it is supported by your device operating system.\\n\n- If this is a custom font, be sure to load it with Font.loadAsync.`\n        );\n      }\n    }\n\n    return 'System';\n  }\n\n  return `ExpoFont-${getNativeFontName(fontFamily)}`;\n}\n\n/**\n * Synchronously detect if the font for `fontFamily` has finished loading\n *\n * @param fontFamily the name used to load the `FontResource`.\n * @returns `true` if the the font has fully loaded.\n */\nexport function isLoaded(fontFamily: string): boolean {\n  return fontFamily in loaded;\n}\n\n/**\n * Synchronously detect if the font for `fontFamily` is still being loaded\n *\n * @param fontFamily the name used to load the `FontResource`.\n * @returns `true` if the the font is still loading.\n */\nexport function isLoading(fontFamily: string): boolean {\n  return fontFamily in loadPromises;\n}\n\n/**\n * Natively load a font for use with Text elements.\n * @param fontFamilyOrFontMap string or map of values that can be used as the [`fontFamily`](https://reactnative.dev/docs/text#style) style prop with React Native Text elements.\n * @param source the font asset that should be loaded into the `fontFamily` namespace.\n */\nexport async function loadAsync(\n  fontFamilyOrFontMap: string | { [fontFamily: string]: FontSource },\n  source?: FontSource\n): Promise<void> {\n  if (typeof fontFamilyOrFontMap === 'object') {\n    if (source) {\n      throw new CodedError(\n        `ERR_FONT_API`,\n        `No fontFamily can be used for the provided source: ${source}. The second argument of \\`loadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n      );\n    }\n    const fontMap = fontFamilyOrFontMap;\n    const names = Object.keys(fontMap);\n    await Promise.all(names.map(name => loadFontInNamespaceAsync(name, fontMap[name])));\n    return;\n  }\n\n  return await loadFontInNamespaceAsync(fontFamilyOrFontMap, source);\n}\n\nasync function loadFontInNamespaceAsync(\n  fontFamily: string,\n  source?: FontSource | null\n): Promise<void> {\n  if (!source) {\n    throw new CodedError(\n      `ERR_FONT_SOURCE`,\n      `Cannot load null or undefined font source: { \"${fontFamily}\": ${source} }. Expected asset of type \\`FontSource\\` for fontFamily of name: \"${fontFamily}\"`\n    );\n  }\n\n  if (loaded[fontFamily]) {\n    return;\n  }\n\n  if (loadPromises[fontFamily]) {\n    return loadPromises[fontFamily];\n  }\n\n  // Important: we want all callers that concurrently try to load the same font to await the same\n  // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n  // promise in the program, we need to create the promise synchronously without yielding the event\n  // loop from this point.\n\n  const asset = getAssetForSource(source);\n  loadPromises[fontFamily] = (async () => {\n    try {\n      await loadSingleFontAsync(fontFamily, asset);\n      loaded[fontFamily] = true;\n    } finally {\n      delete loadPromises[fontFamily];\n    }\n  })();\n\n  await loadPromises[fontFamily];\n}\n\n/**\n * Unloads all of the custom fonts. This is used for testing.\n */\nexport async function unloadAllAsync(): Promise<void> {\n  if (!ExpoFontLoader.unloadAllAsync) {\n    throw new UnavailabilityError('expo-font', 'unloadAllAsync');\n  }\n\n  if (Object.keys(loadPromises).length) {\n    throw new CodedError(\n      `ERR_UNLOAD`,\n      `Cannot unload fonts while they're still loading: ${Object.keys(loadPromises).join(', ')}`\n    );\n  }\n\n  for (const fontFamily of Object.keys(loaded)) {\n    delete loaded[fontFamily];\n  }\n\n  await ExpoFontLoader.unloadAllAsync();\n}\n\n/**\n * Unload custom fonts matching the `fontFamily`s and display values provided.\n * Because fonts are automatically unloaded on every platform this is mostly used for testing.\n *\n * @param fontFamilyOrFontMap the names of the custom fonts that will be unloaded.\n * @param source when `fontFamilyOrFontMap` is a string, this should be the font source used to load the custom font originally.\n */\nexport async function unloadAsync(\n  fontFamilyOrFontMap: string | { [fontFamily: string]: UnloadFontOptions },\n  options?: UnloadFontOptions\n): Promise<void> {\n  if (!ExpoFontLoader.unloadAsync) {\n    throw new UnavailabilityError('expo-font', 'unloadAsync');\n  }\n  if (typeof fontFamilyOrFontMap === 'object') {\n    if (options) {\n      throw new CodedError(\n        `ERR_FONT_API`,\n        `No fontFamily can be used for the provided options: ${options}. The second argument of \\`unloadAsync()\\` can only be used with a \\`string\\` value as the first argument.`\n      );\n    }\n    const fontMap = fontFamilyOrFontMap;\n    const names = Object.keys(fontMap);\n    await Promise.all(names.map(name => unloadFontInNamespaceAsync(name, fontMap[name])));\n    return;\n  }\n\n  return await unloadFontInNamespaceAsync(fontFamilyOrFontMap, options);\n}\n\nasync function unloadFontInNamespaceAsync(\n  fontFamily: string,\n  options?: UnloadFontOptions | null\n): Promise<void> {\n  if (!loaded[fontFamily]) {\n    return;\n  } else {\n    delete loaded[fontFamily];\n  }\n\n  // Important: we want all callers that concurrently try to load the same font to await the same\n  // promise. If we're here, we haven't created the promise yet. To ensure we create only one\n  // promise in the program, we need to create the promise synchronously without yielding the event\n  // loop from this point.\n\n  const nativeFontName = getNativeFontName(fontFamily);\n\n  if (!nativeFontName) {\n    throw new CodedError(`ERR_FONT_FAMILY`, `Cannot unload an empty name`);\n  }\n\n  await ExpoFontLoader.unloadAsync(nativeFontName, options);\n}\n\nexport { FontDisplay, FontSource, FontResource, UnloadFontOptions };\n"],"sourceRoot":""},"metadata":{},"sourceType":"module"}