thinking-data-provider
Version:
60 lines (55 loc) • 1.61 kB
TypeScript
/**
* Extends interfaces in Vue.js
*/
import Vue from 'vue';
export {
createDataProvider,
createVuePlugin
}
type OptionalKeyOf<T> = {
[key in keyof T]?: T[key]
}
declare module 'vue/types/vue' {
interface Vue {
$createDataProvider<T, V, FULLDATA, D = null, STATE>(args: {
action: Function<Promise>;
variables?: V;
update?: function(FULLDATA): D;
initData?: FULLDATA;
skip?: Boolean;
beforeSend?: Function;
onSuccess?: function({
loading: Boolean;
data: any;
fullData: any;
error: any;
variables: V;
send: Function;
init: Function;
extra: T;
}): any;
onError?: Function;
onComplete?: Function;
extra?: T;
}): {
loading: Boolean;
data: D extends null | undefined | never ? FULLDATA : D;
fullData: FULLDATA;
error: any;
variables: V;
send: function(OptionalKeyOf<V>?): Promise<D>;
sending: function(OptionalKeyOf<V>?): Promise<D>;
sends: function(): Promise<D>;
sendings: function(): Promise<D>;
setData: function(FULLDATA?);
initData: Function;
init: Function;
extra: T;
setVars: function(V, B);
setExtra: function(T, B);
times: number;
successTimes: number;
errorTimes: number;
};
};
}