text: /**
   * Copyright (c) 2017-present, Facebook, Inc.
   * All rights reserved.
   *
   * This source code is licensed under the BSD-style license found in the
   * LICENSE file in the root directory of this source tree. An additional grant
   * of patent rights can be found in the PATENTS file in the same directory.
   *
   * @flow strict
   * @format
   */
  
  import net from 'net';
  
  export async function getAvailableServerPort(): Promise<number> {
    return new Promise((resolve, reject) => {
      const server = net.createServer();
      server.unref();
      server.on('error', reject);
      server.listen({port: 0}, () => {
        const port = server.address().port;
        server.close(() => {
          resolve(port);
        });
      });
    });
  }
  