ember-source
Version:
A JavaScript framework for creating ambitious web applications
67 lines (62 loc) • 2.82 kB
TypeScript
declare module '@ember/debug/lib/deprecate' {
import type { HandlerCallback } from "@ember/debug/lib/handlers";
interface Available {
available: string;
}
interface Enabled extends Available {
enabled: string;
}
export interface DeprecationOptions {
id: string;
until: string;
url?: string;
for: string;
since: Available | Enabled;
}
export type DeprecateFunc = (message: string, test?: boolean, options?: DeprecationOptions) => void;
export type MissingOptionDeprecateFunc = (id: string, missingOption: string) => string;
/**
@module @ember/debug
@public
*/
/**
Allows for runtime registration of handler functions that override the default deprecation behavior.
Deprecations are invoked by calls to [@ember/debug/deprecate](/ember/release/classes/@ember%2Fdebug/methods/deprecate?anchor=deprecate).
The following example demonstrates its usage by registering a handler that throws an error if the
message contains the word "should", otherwise defers to the default handler.
```javascript
import { registerDeprecationHandler } from '@ember/debug';
registerDeprecationHandler((message, options, next) => {
if (message.indexOf('should') !== -1) {
throw new Error(`Deprecation message with should: ${message}`);
} else {
// defer to whatever handler was registered before this one
next(message, options);
}
});
```
The handler function takes the following arguments:
<ul>
<li> <code>message</code> - The message received from the deprecation call.</li>
<li> <code>options</code> - An object passed in with the deprecation call containing additional information including:</li>
<ul>
<li> <code>id</code> - An id of the deprecation in the form of <code>package-name.specific-deprecation</code>.</li>
<li> <code>until</code> - The Ember version number the feature and deprecation will be removed in.</li>
</ul>
<li> <code>next</code> - A function that calls into the previously registered handler.</li>
</ul>
@public
@static
@method registerDeprecationHandler
@for @ember/debug
@param handler {Function} A function to handle deprecation calls.
@since 2.1.0
*/
let registerHandler: (handler: HandlerCallback<DeprecationOptions>) => void;
let missingOptionsDeprecation: string;
let missingOptionsIdDeprecation: string;
let missingOptionDeprecation: MissingOptionDeprecateFunc;
let deprecate: DeprecateFunc;
export default deprecate;
export { registerHandler, missingOptionsDeprecation, missingOptionsIdDeprecation, missingOptionDeprecation, };
}