refactor: improve function deprecation module (#19012)
* add removeFunction to deprecation module * clarify deprecate api * throw error * change error msg
This commit is contained in:
parent
a90306876e
commit
d79e6bbffe
3 changed files with 18 additions and 5 deletions
|
@ -34,9 +34,21 @@ const deprecate: ElectronInternal.DeprecationUtil = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// remove a function with no replacement
|
||||||
|
removeFunction: (fn, removedName) => {
|
||||||
|
if (!fn) { throw Error(`'${removedName} function' is invalid or does not exist.`) }
|
||||||
|
|
||||||
|
// wrap the deprecated function to warn user
|
||||||
|
const warn = warnOnce(`${fn.name} function`)
|
||||||
|
return function (this: any) {
|
||||||
|
warn()
|
||||||
|
fn.apply(this, arguments)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// change the name of a function
|
// change the name of a function
|
||||||
function: (fn, newName) => {
|
renameFunction: (fn, newName) => {
|
||||||
const warn = warnOnce(fn.name, newName)
|
const warn = warnOnce(`${fn.name} function`, `${newName} function`)
|
||||||
return function (this: any) {
|
return function (this: any) {
|
||||||
warn()
|
warn()
|
||||||
fn.apply(this, arguments)
|
fn.apply(this, arguments)
|
||||||
|
|
|
@ -87,7 +87,7 @@ describe('deprecate', () => {
|
||||||
deprecate.setHandler(m => { msg = m })
|
deprecate.setHandler(m => { msg = m })
|
||||||
|
|
||||||
function oldFn () { return 'hello' }
|
function oldFn () { return 'hello' }
|
||||||
const deprecatedFn = deprecate.function(oldFn)
|
const deprecatedFn = deprecate.removeFunction(oldFn, 'oldFn')
|
||||||
deprecatedFn()
|
deprecatedFn()
|
||||||
|
|
||||||
expect(msg).to.be.a('string')
|
expect(msg).to.be.a('string')
|
||||||
|
@ -100,7 +100,7 @@ describe('deprecate', () => {
|
||||||
|
|
||||||
function oldFn () { return 'hello' }
|
function oldFn () { return 'hello' }
|
||||||
function newFn () { return 'goodbye' }
|
function newFn () { return 'goodbye' }
|
||||||
const deprecatedFn = deprecate.function(oldFn, newFn)
|
const deprecatedFn = deprecate.renameFunction(oldFn, newFn)
|
||||||
deprecatedFn()
|
deprecatedFn()
|
||||||
|
|
||||||
expect(msg).to.be.a('string')
|
expect(msg).to.be.a('string')
|
||||||
|
|
3
typings/internal-electron.d.ts
vendored
3
typings/internal-electron.d.ts
vendored
|
@ -76,7 +76,8 @@ declare namespace ElectronInternal {
|
||||||
getHandler(): DeprecationHandler | null;
|
getHandler(): DeprecationHandler | null;
|
||||||
warn(oldName: string, newName: string): void;
|
warn(oldName: string, newName: string): void;
|
||||||
log(message: string): void;
|
log(message: string): void;
|
||||||
function(fn: Function, newName: string): Function;
|
removeFunction(fn: Function, removedName: string): Function;
|
||||||
|
renameFunction(fn: Function, newName: string): Function;
|
||||||
event(emitter: NodeJS.EventEmitter, oldName: string, newName: string): void;
|
event(emitter: NodeJS.EventEmitter, oldName: string, newName: string): void;
|
||||||
fnToProperty(module: any, prop: string, getter: string, setter: string): void;
|
fnToProperty(module: any, prop: string, getter: string, setter: string): void;
|
||||||
removeProperty<T, K extends (keyof T & string)>(object: T, propertyName: K): T;
|
removeProperty<T, K extends (keyof T & string)>(object: T, propertyName: K): T;
|
||||||
|
|
Loading…
Reference in a new issue