@v4fire/core
Version:
V4Fire core library
97 lines (78 loc) • 1.83 kB
text/typescript
/*!
* V4Fire Core
* https://github.com/V4Fire/Core
*
* Released under the MIT license
* https://github.com/V4Fire/Core/blob/master/LICENSE
*/
export type WarnExprType =
'api' |
'module' |
'constant' |
'function' |
'class' |
'component' |
'method' |
'property' |
'accessor';
export type WarnContext =
'warning' |
'deprecated' |
'unimplemented';
export interface WarnAlternativeOptions {
/**
* Name of an alternative function/method/etc.
*/
name: string;
/**
* Source path of the alternative
*/
source?: string;
}
export type WarnAlternative = string | WarnAlternativeOptions;
export interface WarnOptions {
/**
* Type of warn context
* @type `'warning'`
*/
context?: WarnContext;
/**
* Name of an expression to wrap
*/
name?: string;
/**
* Type of expression to wrap
*/
type?: WarnExprType;
/**
* Name of a function/method/etc. that need to use instead of the current
* or an object with additional options of the alternative
*/
alternative?: WarnAlternative;
/**
* Indicates that a function/method/etc. was renamed, but its interface still actual,
* the value contains a name after renaming
*/
renamedTo?: string;
/**
* Indicates that a function/method/etc. was moved to a different file, but its interface still actual,
* the value contains a source path after moving
*/
movedTo?: string;
/**
* Additional information
*/
notice?: string;
}
export interface InlineWarnOptions extends WarnOptions {
/** @see [[WarnOptions.name]] */
name: string;
/** @see [[WarnOptions.type]] */
type: WarnExprType;
}
export interface WarnedFn<A extends unknown[] = [], R = unknown> {
(...args: A): R;
warning: WarnOptions | InlineWarnOptions;
deprecated?: WarnOptions | InlineWarnOptions;
unimplemented?: WarnOptions | InlineWarnOptions;
}