const app = require('electron').app

if (!app.isReady()) {
  throw new Error('Can not initialize protocol module before app is ready')
}

const protocol = process.atomBinding('protocol').protocol

// Warn about removed APIs.
var logAndThrow = function (callback, message) {
  console.error(message)
  if (callback) {
    return callback(new Error(message))
  } else {
    throw new Error(message)
  }
}

protocol.registerProtocol = function (scheme, handler, callback) {
  return logAndThrow(callback, 'registerProtocol API has been replaced by the register[File/Http/Buffer/String]Protocol API family, please switch to the new APIs.')
}

protocol.isHandledProtocol = function (scheme, callback) {
  return logAndThrow(callback, 'isHandledProtocol API has been replaced by isProtocolHandled.')
}

protocol.interceptProtocol = function (scheme, handler, callback) {
  return logAndThrow(callback, 'interceptProtocol API has been replaced by the intercept[File/Http/Buffer/String]Protocol API family, please switch to the new APIs.')
}

module.exports = protocol