/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format */ import electron from 'electron'; import lodash from 'lodash'; import isProduction from './isProduction'; import path from 'path'; import fs from 'fs'; import {promisify} from 'util'; const getPackageJSON = async () => { const base = isProduction() && electron.remote ? electron.remote.app.getAppPath() : process.cwd(); const content = await promisify(fs.readFile)( path.join(base, 'package.json'), 'utf-8', ); return JSON.parse(content); }; export const readCurrentRevision: () => Promise = lodash.memoize(async () => { // This is provided as part of the bundling process for headless. if (global.__REVISION__) { return global.__REVISION__; } const json = await getPackageJSON(); return json.revision; });