1 | {"version":3,"file":"Watchman.js","names":["_spawnAsync","data","_interopRequireDefault","require","_fsExtra","_pTimeout","_path","_internal","obj","__esModule","default","WAIT_FOR_WATCHMAN_VERSION_MS","isPlatformSupported","process","platform","addToPathAsync","Binaries","unblockAndGetVersionAsync","projectRoot","result","_unblockAndVersionAsync","watchmanVersion","JSON","parse","stdout","trim","version","pTimeout","_versionAsync","_unblockAsync","env","TMPDIR","USER","fs","removeSync","path","join","spawnAsync"],"sources":["../src/Watchman.ts"],"sourcesContent":["import spawnAsync, { SpawnResult } from '@expo/spawn-async';\nimport fs from 'fs-extra';\nimport pTimeout from 'p-timeout';\nimport path from 'path';\n\nimport { Binaries } from './internal';\n\nconst WAIT_FOR_WATCHMAN_VERSION_MS = 3000;\n\nexport function isPlatformSupported(): boolean {\n return process.platform === 'darwin';\n}\n\nexport async function addToPathAsync(): Promise<void> {\n if (!isPlatformSupported()) {\n return;\n }\n\n await Binaries.addToPathAsync('watchman');\n}\n\nexport async function unblockAndGetVersionAsync(projectRoot?: string): Promise<string | null> {\n if (!isPlatformSupported()) {\n return null;\n }\n\n try {\n // `watchman version` returns:\n // {\n // \"version\": \"4.7.0\"\n // }\n const result = await _unblockAndVersionAsync(projectRoot);\n const watchmanVersion = JSON.parse(result.stdout.trim()).version;\n return watchmanVersion;\n } catch {\n // TODO: Maybe check to make sure this is ENOENT (which means watchman isn't installed)\n // We might want to report other errors\n return null;\n }\n}\n\nasync function _unblockAndVersionAsync(projectRoot?: string): Promise<SpawnResult> {\n try {\n return await pTimeout(_versionAsync(), WAIT_FOR_WATCHMAN_VERSION_MS);\n } catch {\n await _unblockAsync(projectRoot);\n return await pTimeout(\n _versionAsync(),\n WAIT_FOR_WATCHMAN_VERSION_MS,\n '`watchman version` failed even after `launchctl unload`'\n );\n }\n}\n\nasync function _unblockAsync(projectRoot?: string): Promise<void> {\n if (process.env.TMPDIR && process.env.USER) {\n // XDL's copy of watchman:\n fs.removeSync(path.join(process.env.TMPDIR, `${process.env.USER}-state`));\n // homebrew's watchman:\n fs.removeSync(`/usr/local/var/run/watchman/${process.env.USER}-state`);\n }\n if (process.platform === 'darwin') {\n await spawnAsync('launchctl', [\n 'unload',\n '-F',\n '~/Library/LaunchAgents/com.github.facebook.watchman.plist',\n ]);\n }\n if (projectRoot) {\n await spawnAsync('watchman', ['watch-del', projectRoot]);\n await spawnAsync('watchman', ['watch-project', projectRoot]);\n }\n}\n\nasync function _versionAsync(): Promise<SpawnResult> {\n return await spawnAsync('watchman', ['version']);\n}\n"],"mappings":"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"} |