vue-function-api-sd
Version:
Provide logic composition capabilities for Vue.
43 lines (42 loc) • 2.09 kB
TypeScript
import Vue from 'vue';
export interface Wrapper<V> {
value: V;
}
declare type Value<T> = Wrapper<T>;
declare type BailTypes = Function | Map<any, any> | Set<any> | WeakMap<any, any> | WeakSet<any>;
export declare type UnwrapValue<T> = T extends Value<infer V> ? UnwrapValue2<V> : T extends BailTypes ? T : T extends object ? {
[K in keyof T]: UnwrapValue2<T[K]>;
} : T;
declare type UnwrapValue2<T> = T extends Value<infer V> ? UnwrapValue3<V> : T extends BailTypes ? T : T extends object ? {
[K in keyof T]: UnwrapValue3<T[K]>;
} : T;
declare type UnwrapValue3<T> = T extends Value<infer V> ? UnwrapValue4<V> : T extends BailTypes ? T : T extends object ? {
[K in keyof T]: UnwrapValue4<T[K]>;
} : T;
declare type UnwrapValue4<T> = T extends Value<infer V> ? UnwrapValue5<V> : T extends BailTypes ? T : T extends object ? {
[K in keyof T]: UnwrapValue5<T[K]>;
} : T;
declare type UnwrapValue5<T> = T extends Value<infer V> ? UnwrapValue6<V> : T extends BailTypes ? T : T extends object ? {
[K in keyof T]: UnwrapValue6<T[K]>;
} : T;
declare type UnwrapValue6<T> = T extends Value<infer V> ? UnwrapValue7<V> : T extends BailTypes ? T : T extends object ? {
[K in keyof T]: UnwrapValue7<T[K]>;
} : T;
declare type UnwrapValue7<T> = T extends Value<infer V> ? UnwrapValue8<V> : T extends BailTypes ? T : T extends object ? {
[K in keyof T]: UnwrapValue8<T[K]>;
} : T;
declare type UnwrapValue8<T> = T extends Value<infer V> ? UnwrapValue9<V> : T extends BailTypes ? T : T extends object ? {
[K in keyof T]: UnwrapValue9<T[K]>;
} : T;
declare type UnwrapValue9<T> = T extends Value<infer V> ? UnwrapValue10<V> : T extends BailTypes ? T : T extends object ? {
[K in keyof T]: UnwrapValue10<T[K]>;
} : T;
declare type UnwrapValue10<T> = T extends Value<infer V> ? V : T;
export default abstract class AbstractWrapper<V> {
protected _propName?: string;
protected _vm?: Vue;
abstract value: V;
setVmProperty(vm: Vue, propName: string): void;
protected abstract exposeToDevtool(): void;
}
export {};