@stackoverfloweth/vue-compositions
Version:
A collection of reusable vue compositions.
74 lines (73 loc) • 2.59 kB
TypeScript
import type { DevtoolsPluginApi, TimelineEvent, ExtractSettingsTypes } from '@vue/devtools-api';
import { SubscriptionChannel } from '../useSubscription/models/channel';
export declare const SUBSCRIPTION_DEVTOOLS_SETTINGS: {};
export type SubscriptionDevtoolsSettings = ExtractSettingsTypes<typeof SUBSCRIPTION_DEVTOOLS_SETTINGS>;
export declare function init(api: DevtoolsPluginApi<SubscriptionDevtoolsSettings>): void;
export declare function addChannel(channel: SubscriptionChannel): void;
export type UpdateChannelEventTypes = 'Loading' | 'Error' | 'Executed' | 'Response' | 'Refresh' | 'Paused' | 'Late';
type UpdateChannelEvent = {
[K in UpdateChannelEventTypes]: CreateSubscriptionDevtoolsTimelineEvent<K, EventTypeToDataMap[K]>;
}[UpdateChannelEventTypes];
export declare function updateChannel(channel: SubscriptionChannel, event: UpdateChannelEvent): void;
export declare function removeChannel(channel: SubscriptionChannel): void;
export declare function registerChannelSubscription(channel: SubscriptionChannel, subscriptionId: number): void;
export declare function removeChannelSubscription(channel: SubscriptionChannel, subscriptionId: number): void;
type CreateSubscriptionDevtoolsTimelineEvent<TEvent extends string, TData> = Omit<TimelineEvent<TData>, 'time'> & {
title: `${string} · ${TEvent}`;
groupId: string;
};
type EventTypeToDataMap = {
'Channel created': {
channel: SubscriptionChannel;
action: string;
};
'Channel removed': {
channel: SubscriptionChannel;
action: string;
};
'Subscription created': {
channel: SubscriptionChannel;
action: string;
subscriptionId: number;
};
'Subscription removed': {
channel: SubscriptionChannel;
action: string;
subscriptionId: number;
};
'Loading': {
channel: SubscriptionChannel;
action: string;
loading: boolean;
};
'Error': {
channel: SubscriptionChannel;
action: string;
error: unknown;
};
'Executed': {
channel: SubscriptionChannel;
action: string;
executed: boolean;
};
'Response': {
channel: SubscriptionChannel;
action: string;
response: unknown;
};
'Refresh': {
channel: SubscriptionChannel;
action: string;
};
'Paused': {
channel: SubscriptionChannel;
action: string;
paused: boolean;
};
'Late': {
channel: SubscriptionChannel;
action: string;
late: boolean;
};
};
export {};