UNPKG

xdl

Version:
1 lines 10.8 kB
{"version":3,"file":"startLegacyExpoServerAsync.js","names":["_config","data","require","_axios","_interopRequireDefault","_express","_internal","obj","__esModule","default","_isIgnorableBugReportingExtraData","body","length","_isAppRegistryStartupMessage","test","_handleDeviceLogs","projectRoot","deviceId","deviceName","logs","i","log","level","args","map","JSON","stringify","toString","logLevel","ProjectUtils","getLogger","tag","groupDepth","shouldHide","includesStack","startExpoServerAsync","assertValidProjectRoot","stopExpoServerAsync","app","express","use","json","limit","urlencoded","extended","ConnectionStatus","isOffline","Doctor","validateWithoutNetworkAsync","validateWithNetworkAsync","FATAL","Error","manifestHandler","ManifestHandler","getManifestHandler","loadingHandler","LoadingPageHandler","getLoadingPageHandler","get","LoadingEndpoint","DeepLinkEndpoint","post","req","res","e","logError","stack","send","server","close","expRc","readExpRcAsync","expoServerPort","manifestPort","getFreePortAsync","ProjectSettings","setPackagerInfoAsync","listen","info","address","host","port","logDebug","packagerInfo","readPackagerInfoAsync","axios","request","method","url"],"sources":["../../src/start/startLegacyExpoServerAsync.ts"],"sourcesContent":["import { readExpRcAsync } from '@expo/config';\nimport axios from 'axios';\nimport express from 'express';\nimport { AddressInfo } from 'net';\n\nimport {\n assertValidProjectRoot,\n ConnectionStatus,\n Doctor,\n getFreePortAsync,\n LoadingPageHandler,\n ManifestHandler,\n ProjectSettings,\n ProjectUtils,\n} from '../internal';\n\ntype ConsoleLogLevel = 'info' | 'warn' | 'error' | 'debug';\n\nfunction _isIgnorableBugReportingExtraData(body: any[]) {\n return body.length === 2 && body[0] === 'BugReporting extraData:';\n}\n\nfunction _isAppRegistryStartupMessage(body: any[]) {\n return (\n body.length === 1 &&\n (/^Running application \"main\" with appParams:/.test(body[0]) ||\n /^Running \"main\" with \\{/.test(body[0]))\n );\n}\n\nfunction _handleDeviceLogs(projectRoot: string, deviceId: string, deviceName: string, logs: any) {\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n let body = typeof log.body === 'string' ? [log.body] : log.body;\n let { level } = log;\n\n if (_isIgnorableBugReportingExtraData(body)) {\n level = 'debug';\n }\n if (_isAppRegistryStartupMessage(body)) {\n body = [`Running application on ${deviceName}.`];\n }\n\n const args = body.map((obj: any) => {\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === 'null') {\n return 'null';\n }\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean') {\n return obj;\n }\n try {\n return JSON.stringify(obj);\n } catch {\n return obj.toString();\n }\n });\n const logLevel =\n level === 'info' || level === 'warn' || level === 'error' || level === 'debug'\n ? (level as ConsoleLogLevel)\n : 'info';\n ProjectUtils.getLogger(projectRoot)[logLevel](\n {\n tag: 'device',\n deviceId,\n deviceName,\n groupDepth: log.groupDepth,\n shouldHide: log.shouldHide,\n includesStack: log.includesStack,\n },\n ...args\n );\n }\n}\n\nexport async function startExpoServerAsync(projectRoot: string): Promise<void> {\n assertValidProjectRoot(projectRoot);\n await stopExpoServerAsync(projectRoot);\n const app = express();\n app.use(\n express.json({\n limit: '10mb',\n })\n );\n app.use(\n express.urlencoded({\n limit: '10mb',\n extended: true,\n })\n );\n if (\n (ConnectionStatus.isOffline()\n ? await Doctor.validateWithoutNetworkAsync(projectRoot)\n : await Doctor.validateWithNetworkAsync(projectRoot)) === Doctor.FATAL\n ) {\n throw new Error(`Couldn't start project. Please fix the errors and restart the project.`);\n }\n // Serve the manifest.\n const manifestHandler = ManifestHandler.getManifestHandler(projectRoot);\n const loadingHandler = LoadingPageHandler.getLoadingPageHandler(projectRoot);\n app.get('/', manifestHandler);\n app.get('/manifest', manifestHandler);\n app.get('/index.exp', manifestHandler);\n app.get(LoadingPageHandler.LoadingEndpoint, loadingHandler);\n app.get(LoadingPageHandler.DeepLinkEndpoint, loadingHandler);\n app.post('/logs', async (req, res) => {\n try {\n const deviceId = req.get('Device-Id');\n const deviceName = req.get('Device-Name');\n if (deviceId && deviceName && req.body) {\n _handleDeviceLogs(projectRoot, deviceId, deviceName, req.body);\n }\n } catch (e: any) {\n ProjectUtils.logError(projectRoot, 'expo', `Error getting device logs: ${e} ${e.stack}`);\n }\n res.send('Success');\n });\n app.post('/shutdown', async (req, res) => {\n server.close();\n res.send('Success');\n });\n const expRc = await readExpRcAsync(projectRoot);\n const expoServerPort = expRc.manifestPort ? expRc.manifestPort : await getFreePortAsync(19000);\n await ProjectSettings.setPackagerInfoAsync(projectRoot, {\n expoServerPort,\n });\n let server = app.listen(expoServerPort, () => {\n const info = server.address() as AddressInfo;\n const host = info.address;\n const port = info.port;\n ProjectUtils.logDebug(projectRoot, 'expo', `Local server listening at http://${host}:${port}`);\n });\n}\n\nexport async function stopExpoServerAsync(projectRoot: string): Promise<void> {\n assertValidProjectRoot(projectRoot);\n const packagerInfo = await ProjectSettings.readPackagerInfoAsync(projectRoot);\n if (packagerInfo && packagerInfo.expoServerPort) {\n try {\n await axios.request({\n method: 'post',\n url: `http://127.0.0.1:${packagerInfo.expoServerPort}/shutdown`,\n });\n } catch {}\n }\n await ProjectSettings.setPackagerInfoAsync(projectRoot, {\n expoServerPort: null,\n });\n}\n"],"mappings":"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"}