8ce9d8356885f5d8ed7870aaf7ae7add.json 2.96 KB
{"ast":null,"code":"var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=getScreenForRouteName;var _reactIs=require(\"react-is\");var _invariant=_interopRequireDefault(require(\"../utils/invariant\"));function getScreenForRouteName(routeConfigs,routeName){var routeConfig=routeConfigs[routeName];if(!routeConfig){throw new Error(\"There is no route defined for key \"+routeName+\".\\n\"+(\"Must be one of: \"+Object.keys(routeConfigs).map(function(a){return\"'\"+a+\"'\";}).join(',')));}if(routeConfig.screen){return routeConfig.screen;}if(typeof routeConfig.getScreen==='function'){var screen=routeConfig.getScreen();(0,_invariant.default)((0,_reactIs.isValidElementType)(screen),\"The getScreen defined for route '\"+routeName+\" didn't return a valid \"+'screen or navigator.\\n\\n'+'Please pass it like this:\\n'+(routeName+\": {\\n  getScreen: () => require('./MyScreen').default\\n}\"));return screen;}return routeConfig;}","map":{"version":3,"sources":["getScreenForRouteName.js"],"names":["routeConfig","routeConfigs","Object","screen","invariant","isValidElementType","routeName"],"mappings":"kLAAA,iCAEA,qEAMe,QAAA,CAAA,qBAAA,CAAA,YAAA,CAAA,SAAA,CAAwD,CACrE,GAAMA,CAAAA,WAAW,CAAGC,YAAY,CAAhC,SAAgC,CAAhC,CAEA,GAAI,CAAJ,WAAA,CAAkB,CAChB,KAAM,IAAA,CAAA,KAAA,CACJ,qCAAA,SAAA,CAAA,KAAA,EAAA,mBACqBC,MAAM,CAANA,IAAAA,CAAAA,YAAAA,EAAAA,GAAAA,CACZ,SAAA,CAAA,CAAC,CAAA,MAAA,IAAA,CAAA,CAAA,GAAA,CADWA,CAAAA,EAAAA,IAAAA,CAFvB,GAEuBA,CADrB,CADI,CAAN,CAQF,IAAIF,WAAW,CAAf,MAAA,CAAwB,CACtB,MAAOA,CAAAA,WAAW,CAAlB,MAAA,CAGF,IAAI,MAAOA,CAAAA,WAAW,CAAlB,SAAA,GAAJ,UAAA,CAAiD,CAC/C,GAAMG,CAAAA,MAAM,CAAGH,WAAW,CAA1B,SAAeA,EAAf,CACAI,uBACEC,gCADO,MACPA,CADFD,CAEE,oCAAA,SAAA,CAAA,yBAAA,CAAA,0BAAA,CAAA,6BAAA,EAGKE,SAHL,CAFFF,0DAEE,CAFFA,EAOA,MAAA,CAAA,MAAA,CAGF,OAAA,CAAA,WAAA,CACD","sourcesContent":["import { isValidElementType } from 'react-is';\n\nimport invariant from '../utils/invariant';\n\n/**\n * Simple helper that gets a single screen (React component or navigator)\n * out of the navigator config.\n */\nexport default function getScreenForRouteName(routeConfigs, routeName) {\n  const routeConfig = routeConfigs[routeName];\n\n  if (!routeConfig) {\n    throw new Error(\n      `There is no route defined for key ${routeName}.\\n` +\n        `Must be one of: ${Object.keys(routeConfigs)\n          .map(a => `'${a}'`)\n          .join(',')}`\n    );\n  }\n\n  if (routeConfig.screen) {\n    return routeConfig.screen;\n  }\n\n  if (typeof routeConfig.getScreen === 'function') {\n    const screen = routeConfig.getScreen();\n    invariant(\n      isValidElementType(screen),\n      `The getScreen defined for route '${routeName} didn't return a valid ` +\n        'screen or navigator.\\n\\n' +\n        'Please pass it like this:\\n' +\n        `${routeName}: {\\n  getScreen: () => require('./MyScreen').default\\n}`\n    );\n    return screen;\n  }\n\n  return routeConfig;\n}\n"]},"metadata":{},"sourceType":"script"}