text: /**
   * 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.
   *
   * @flow
   * @format
   */
  
  'use strict';
  
  const fs = require('fs-extra');
  
  exports.watchFile = async function(
    filename: string,
    callback: () => *,
  ): Promise<void> {
    fs.watchFile(filename, () => {
      callback();
    });
  
    await callback();
  };
  
  exports.makeAsyncCommand = (command: (argv: any) => Promise<*>) => (
    // eslint-disable-next-line lint/no-unclear-flowtypes
    argv: any,
  ) => {
    Promise.resolve(command(argv)).catch(error => {
      console.error(error.stack);
      process.exitCode = 1;
    });
  };
  