123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- // Deprecate a method.
- const deprecate = function (oldName, newName, fn) {
- var warned
- warned = false
- return function () {
- if (!(warned || process.noDeprecation)) {
- warned = true
- deprecate.warn(oldName, newName)
- }
- return fn.apply(this, arguments)
- }
- }
- // The method is renamed.
- deprecate.rename = function (object, oldName, newName) {
- var newMethod, warned
- warned = false
- newMethod = function () {
- if (!(warned || process.noDeprecation)) {
- warned = true
- deprecate.warn(oldName, newName)
- }
- return this[newName].apply(this, arguments)
- }
- if (typeof object === 'function') {
- object.prototype[oldName] = newMethod
- } else {
- object[oldName] = newMethod
- }
- }
- // Forward the method to member.
- deprecate.member = function (object, method, member) {
- var warned
- warned = false
- object.prototype[method] = function () {
- if (!(warned || process.noDeprecation)) {
- warned = true
- deprecate.warn(method, member + '.' + method)
- }
- return this[member][method].apply(this[member], arguments)
- }
- }
- // Deprecate a property.
- deprecate.property = function (object, property, method) {
- return Object.defineProperty(object, property, {
- get: function () {
- var warned
- warned = false
- if (!(warned || process.noDeprecation)) {
- warned = true
- deprecate.warn(property + ' property', method + ' method')
- }
- return this[method]()
- }
- })
- }
- // Deprecate an event.
- deprecate.event = function (emitter, oldName, newName, fn) {
- var warned = false
- return emitter.on(newName, function (...args) {
- // there is listeners for old API.
- if (this.listenerCount(oldName) > 0) {
- if (!(warned || process.noDeprecation)) {
- warned = true
- deprecate.warn("'" + oldName + "' event", "'" + newName + "' event")
- }
- if (fn != null) {
- fn.apply(this, arguments)
- } else {
- this.emit.apply(this, [oldName].concat(args))
- }
- }
- })
- }
- // Print deprecation warning.
- deprecate.warn = function (oldName, newName) {
- return deprecate.log(oldName + ' is deprecated. Use ' + newName + ' instead.')
- }
- var deprecationHandler = null
- // Print deprecation message.
- deprecate.log = function (message) {
- if (typeof deprecationHandler === 'function') {
- deprecationHandler(message)
- } else if (process.throwDeprecation) {
- throw new Error(message)
- } else if (process.traceDeprecation) {
- return console.trace(message)
- } else {
- return console.warn('(electron) ' + message)
- }
- }
- deprecate.setHandler = function (handler) {
- deprecationHandler = handler
- }
- deprecate.getHandler = function () {
- return deprecationHandler
- }
- module.exports = deprecate
|