forked from SFS/LightDMMock
Modernize deprecation handling
This commit is contained in:
parent
c6f8b2da10
commit
8f623405f7
@ -338,6 +338,27 @@ class LightDMMock {
|
|||||||
user.session = this.sessions[Math.floor((Math.random() * this.sessions.length))].name;
|
user.session = this.sessions[Math.floor((Math.random() * this.sessions.length))].name;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const deprecations = {
|
||||||
|
properties: [
|
||||||
|
{ deprecated: "default_language", alternative: "lightdm.language" },
|
||||||
|
{ deprecated: "default_layout", alternative: "lightdm.layout" },
|
||||||
|
{ deprecated: "select_guest", alternative: "lightdm.select_guest_hint" },
|
||||||
|
{ deprecated: "select_user", alternative: "lightdm.select_user_hint" },
|
||||||
|
{ deprecated: "timed_login_user", alternative: "lightdm.autologin_user" },
|
||||||
|
{ deprecated: "timed_login_delay", alternative: "lightdm.autologin_timeout" },
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
return new Proxy(this, {
|
||||||
|
get: (o, k, r) => {
|
||||||
|
if (deprecations.properties.map(o => o.deprecated).includes(k)) {
|
||||||
|
deprecationNotifier("property", k, deprecations.properties.alternative)
|
||||||
|
} else {
|
||||||
|
return Reflect.get(o, k, r);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -652,16 +673,21 @@ function IncompatibleArgumentTypesException(number, expected, received) {
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* global helper deprecationNotifier
|
* @desc
|
||||||
* throws ~balls~ errors at users who use deprecated methods and properties.
|
* throws ~balls~ errors at users who use deprecated methods and properties.
|
||||||
*
|
*
|
||||||
* @param {String} type [method||property]
|
* @param {String} type
|
||||||
* @param {String} depricated [deprecated method or property name]
|
* "method" or "property"
|
||||||
* @param {String} alternative [alternative method or property to use]
|
*
|
||||||
|
* @param {String} deprecated
|
||||||
|
* deprecated method or property name
|
||||||
|
*
|
||||||
|
* @param {String} alternative
|
||||||
|
* alternative method or property to use
|
||||||
*
|
*
|
||||||
* @throws {DeprecationException}
|
* @throws {DeprecationException}
|
||||||
*/
|
*/
|
||||||
window.deprecationNotifier = function(type, deprecated, alternative) {
|
export const deprecationNotifier = (type, deprecated, alternative) => {
|
||||||
throw new DeprecationException(type, deprecated, alternative);
|
throw new DeprecationException(type, deprecated, alternative);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -876,36 +902,6 @@ if(!Object.prototype.unwatch) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* Deprecated properties *
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
LightDMMock.watch('default_language', function() {
|
|
||||||
window.deprecationNotifier("property", "default_language", "lightdm.language");
|
|
||||||
});
|
|
||||||
|
|
||||||
LightDMMock.watch('default_layout', function() {
|
|
||||||
window.deprecationNotifier("property", "default_layout", "lightdm.layout");
|
|
||||||
});
|
|
||||||
|
|
||||||
LightDMMock.watch('select_guest', function() {
|
|
||||||
window.deprecationNotifier("property", "select_guest", "lightdm.select_guest_hint");
|
|
||||||
});
|
|
||||||
|
|
||||||
LightDMMock.watch('select_user', function() {
|
|
||||||
window.deprecationNotifier("property", "select_user", "lightdm.select_user_hint");
|
|
||||||
});
|
|
||||||
|
|
||||||
LightDMMock.watch('timed_login_user', function() {
|
|
||||||
window.deprecationNotifier("property", "timed_login_user", "lightdm.autologin_user");
|
|
||||||
});
|
|
||||||
|
|
||||||
LightDMMock.watch('timed_login_delay', function() {
|
|
||||||
window.deprecationNotifier("property", "timed_login_delay", "lightdm.autologin_timeout");
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* Module loading *
|
* Module loading *
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
Loading…
Reference in New Issue
Block a user