code: function Waker(credentials, config) {
      this.credentials = credentials;
  
      this.config = {
          autoLogin: true,
          errorIfAwake: true,
          keepSocket: false,
          debug: false,
  
          ...config,
      };
  
      this.ui = config.ui || StandardUserInterface.createForUI();
  }
docs: Construct a new Waker instance, which may be
  used to wake a PS4 and login to it. If desired,
  you may also retain the ps4socket connection
  used to login for other purposes (such as
  launching apps, or putting the system in standby).
  
  @param credentials Either a string path to a credentials
  file, or an object containing the
  credentials (formatted the same way that
  they'd be stored in the credentials.json)
  @param config A config object/map. Valid keys:
  - autoLogin: (default: true) If true, will open a socket
  connection and cause the PS4 to login with
  the credentials provided for waking
  - errorIfAwake: (default: true) If true, returns an Error
  to the callback from wake() if the PS4 was
  not in standby mode. If you're using Waker
  to get a ps4socket, you may want to
  specify `false` here so you can get a socket
  regardless of whether the PS4 is in standby
  - keepSocket: (default: false) If true, the callback from
  wake will have a single, extra parameter
  on successful connection, which will be
  a reference to a valid ps4socket if it is
  non-null. autoLogin must also be true for
  this to work. If false, the callback will
  only have the usual error parameter, and any
  socket opened (IE: if autoLogin is true)
  will be closed after logging in.
  
  @see lib/ps4socket for the things you can do with the socket