UNPKG

vue-function-api-sd

Version:

Provide logic composition capabilities for Vue.

43 lines (42 loc) 2.09 kB
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 {};