client refactor progress

This commit is contained in:
Craig
2020-01-20 14:36:18 +00:00
parent 46928ec7de
commit e542627805
19 changed files with 1110 additions and 424 deletions

25
client/src/types/eventemitter.d.ts vendored Normal file
View File

@ -0,0 +1,25 @@
declare module 'eventemitter3' {
type Arguments<T> = [T] extends [(...args: infer U) => any] ? U : [T] extends [void] ? [] : [T]
class TypedEventEmitter<Events> {
addListener<E extends keyof Events>(event: E, listener: Events[E]): this
on<E extends keyof Events>(event: E, listener: Events[E]): this
once<E extends keyof Events>(event: E, listener: Events[E]): this
prependListener<E extends keyof Events>(event: E, listener: Events[E]): this
prependOnceListener<E extends keyof Events>(event: E, listener: Events[E]): this
off<E extends keyof Events>(event: E, listener: Events[E]): this
removeAllListeners<E extends keyof Events>(event?: E): this
removeListener<E extends keyof Events>(event: E, listener: Events[E]): this
emit<E extends keyof Events>(event: E, ...args: Arguments<Events[E]>): boolean
eventNames(): (keyof Events)[]
listeners<E extends keyof Events>(event: E): Function[]
listenerCount<E extends keyof Events>(event: E): number
getMaxListeners(): number
setMaxListeners(maxListeners: number): this
}
export = TypedEventEmitter
}

9
client/src/types/vue.d.ts vendored Normal file
View File

@ -0,0 +1,9 @@
import { NekoClient } from '~/client'
import { accessor } from '~/store'
declare module 'vue/types/vue' {
interface Vue {
$accessor: typeof accessor
$client: NekoClient
}
}