vue-global-config
Version:
Configure your Vue 2/3 components globally.
45 lines (39 loc) • 1.82 kB
text/typescript
import { ComponentPublicInstance } from 'vue-demi';
type PropType<T> = PropConstructor<T> | PropConstructor<T>[];
type PropConstructor<T = any> = {
new (...args: any[]): T & object;
} | {
(): T;
} | PropMethod<T>;
type PropMethod<T, TConstructor = any> = [T] extends [((...args: any) => any) | undefined] ? {
new (): TConstructor;
(): T;
readonly prototype: TConstructor;
} : never;
declare function conclude(configSequence: any[], options?: {
type?: PropType<any>;
default?: any;
defaultIsDynamic?: boolean;
required?: boolean;
validator?: (prop: any) => boolean;
camelizeObjectKeys?: boolean;
mergeObject?: string | false;
mergeObjectCustomizer?: (objValue: any, srcValue: any, key: string, object: Record<string, any>, source: Record<string, any>, stack: object) => any;
mergeObjectApplyOnlyToDefault?: boolean;
mergeFunction?: false | ((accumulator: any, currentValue: any, currentIndex?: any, array?: any) => (...args: any) => unknown);
mergeFunctionApplyOnlyToDefault?: boolean;
}): any;
declare function getLocalListeners(listeners: Record<keyof any, any>): Record<string | number | symbol, any>;
declare function listenGlobalHooks(this: ComponentPublicInstance, globalHooks: Record<keyof any, any>): void;
interface ResolvedResult {
props: Record<keyof any, any>;
attrs: Record<keyof any, any>;
listeners: Record<string, (...args: any) => unknown>;
hooks: Record<string, (...args: any) => unknown>;
slots: Record<string, (...args: any) => unknown>;
}
declare function resolveConfig(config: Record<keyof any, any>, { props, camelizePropNames, }?: {
props?: string[] | Record<keyof any, any>;
camelizePropNames?: boolean;
}): ResolvedResult;
export { conclude, getLocalListeners, listenGlobalHooks, resolveConfig };