UNPKG

3.22 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../src/commands/start/watchMode.ts"],"names":["printWatchModeInstructions","logger","log","enableWatchMode","messageSocket","process","stdin","setRawMode","debug","readline","emitKeypressEvents","restore","output","includes","on","_key","data","ctrl","name","exit","emit","broadcast","info"],"mappings":";;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AAEA,SAASA,0BAAT,GAAsC;AACpCC,qBAAOC,GAAP,CACE,mEADF;AAGD;;AAED,SAASC,eAAT,CAAyBC,aAAzB,EAA6C;AAC3C;AACA;AACA;AACA,MAAI,CAACC,OAAO,CAACC,KAAR,CAAcC,UAAnB,EAA+B;AAC7BN,uBAAOO,KAAP,CAAa,iDAAb;;AACA;AACD;;AAEDC,sBAASC,kBAAT,CAA4BL,OAAO,CAACC,KAApC;;AAEAD,EAAAA,OAAO,CAACC,KAAR,CAAcC,UAAd,CAAyB,IAAzB,EAX2C,CAa3C;AACA;AACA;;AACA,QAAMI,OAAO,GAAG,yBAAYC,MAAD,IAAoB;AAC7C,QAAIA,MAAM,CAACC,QAAP,CAAgB,8BAAhB,CAAJ,EAAqD;AACnDb,MAAAA,0BAA0B;AAC1BW,MAAAA,OAAO;AACR;AACF,GALe,CAAhB;AAOAN,EAAAA,OAAO,CAACC,KAAR,CAAcQ,EAAd,CAAiB,UAAjB,EAA6B,CAACC,IAAD,EAAOC,IAAP,KAAgB;AAC3C,UAAM;AAACC,MAAAA,IAAD;AAAOC,MAAAA;AAAP,QAAeF,IAArB;;AACA,QAAIC,IAAI,KAAK,IAAb,EAAmB;AACjB,cAAQC,IAAR;AACE,aAAK,GAAL;AACEb,UAAAA,OAAO,CAACc,IAAR;AACA;;AACF,aAAK,GAAL;AACEd,UAAAA,OAAO,CAACe,IAAR,CAAa,SAAb,EAAwB,SAAxB;AACA;AANJ;AAQD,KATD,MASO,IAAIF,IAAI,KAAK,GAAb,EAAkB;AACvBd,MAAAA,aAAa,CAACiB,SAAd,CAAwB,QAAxB,EAAkC,IAAlC;;AACApB,yBAAOqB,IAAP,CAAY,kBAAZ;AACD,KAHM,MAGA,IAAIJ,IAAI,KAAK,GAAb,EAAkB;AACvBd,MAAAA,aAAa,CAACiB,SAAd,CAAwB,SAAxB,EAAmC,IAAnC;;AACApB,yBAAOqB,IAAP,CAAY,2BAAZ;AACD;AACF,GAlBD;AAmBD;;eAEcnB,e","sourcesContent":["import readline from 'readline';\nimport hookStdout from '../../tools/hookStdout';\nimport {logger} from '@react-native-community/cli-tools';\n\nfunction printWatchModeInstructions() {\n logger.log(\n '\\n\\nTo reload the app press \"r\"\\nTo open developer menu press \"d\"',\n );\n}\n\nfunction enableWatchMode(messageSocket: any) {\n // We need to set this to true to catch key presses individually.\n // As a result we have to implement our own method for exiting\n // and other commands (e.g. ctrl+c & ctrl+z)\n if (!process.stdin.setRawMode) {\n logger.debug('Watch mode is not supported in this environment');\n return;\n }\n\n readline.emitKeypressEvents(process.stdin);\n\n process.stdin.setRawMode(true);\n\n // We have no way of knowing when the dependency graph is done loading\n // except by hooking into stdout itself. We want to print instructions\n // right after its done loading.\n const restore = hookStdout((output: string) => {\n if (output.includes('Fast - Scalable - Integrated')) {\n printWatchModeInstructions();\n restore();\n }\n });\n\n process.stdin.on('keypress', (_key, data) => {\n const {ctrl, name} = data;\n if (ctrl === true) {\n switch (name) {\n case 'c':\n process.exit();\n break;\n case 'z':\n process.emit('SIGTSTP', 'SIGTSTP');\n break;\n }\n } else if (name === 'r') {\n messageSocket.broadcast('reload', null);\n logger.info('Reloading app...');\n } else if (name === 'd') {\n messageSocket.broadcast('devMenu', null);\n logger.info('Opening developer menu...');\n }\n });\n}\n\nexport default enableWatchMode;\n"]}
\No newline at end of file