1{"version":3,"file":"generateFunctionMap.js","names":["generateFunctionMap","projectRoot","ast","context","process","env","EXPO_USE_FB_SOURCES","importMetroSourceMapFromProject"],"sources":["../../src/transformer/generateFunctionMap.ts"],"sourcesContent":["import type { generateFunctionMap as generateFunctionMapType } from 'metro-source-map';\n\nimport { importMetroSourceMapFromProject } from '../importMetroFromProject';\n\nexport function generateFunctionMap(\n  projectRoot: string,\n  ast: Parameters<typeof generateFunctionMapType>[0],\n  context: Parameters<typeof generateFunctionMapType>[1]\n): ReturnType<typeof generateFunctionMapType> | null {\n  //  `x_facebook_sources` is a source map feature that we disable by default since it isn't documented\n  // and doesn't appear to add much value to the DX, it also increases bundle time, and source map size.\n  // The feature supposedly provides improved function names for anonymous functions, but we will opt towards\n  // linting to prevent users from adding anonymous functions for important features like React components.\n  //\n  // Here is an example stack trace for a component that throws an error\n  // in the root component (which is an anonymous function):\n  //\n  // Before:\n  // - <anonymous> App.js:5:9\n  // - renderApplication renderApplication.js:54:5\n  // - runnables.appKey.run AppRegistry.js:117:26\n  //\n  // After:\n  // - _default App.js:5:9\n  // - renderApplication renderApplication.js:54:5\n  // - run AppRegistry.js:117:26\n  //\n  if (process.env.EXPO_USE_FB_SOURCES) {\n    return importMetroSourceMapFromProject(projectRoot).generateFunctionMap(ast, context);\n  }\n  return null;\n}\n"],"mappings":";;;;;;;AAEA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,SAASA,mBAAT,CACLC,WADK,EAELC,GAFK,EAGLC,OAHK,EAI8C;EACnD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAIC,OAAO,CAACC,GAAR,CAAYC,mBAAhB,EAAqC;IACnC,OAAO,IAAAC,yDAAA,EAAgCN,WAAhC,EAA6CD,mBAA7C,CAAiEE,GAAjE,EAAsEC,OAAtE,CAAP;EACD;;EACD,OAAO,IAAP;AACD"}