UNPKG

vue-tdweb

Version:

Documentation is coming.

59 lines (45 loc) 1.51 kB
import { ApiMethods, AuthorizationStateUnion, UPDATE } from '@airgram/api' import { Airgram } from 'tdweb-airgram' import { TdProvider } from './TdProvider' import { TdEventHandler, TdVueConstructor } from './types' class DollarTd { private _authState: AuthorizationStateUnion | { _: null } = { _: null } private readonly _authStateUnsubscribe?: () => void constructor (private readonly vm: TdVueConstructor) { this._authStateUnsubscribe = this.on(UPDATE.updateAuthorizationState, (authState: AuthorizationStateUnion) => { this._authState = authState }) } public get airgram (): Airgram.AirgramInstance { return this.provider.airgram } public get api (): ApiMethods { return this.airgram.api } public get authState (): AuthorizationStateUnion | { _: null } { return this._authState } private get provider (): TdProvider { return this.vm.$_tdProvider } public _destroy (): void { if (this._authStateUnsubscribe) { this._authStateUnsubscribe() } } public emit (update: Airgram.Update): Promise<any> { return this.airgram.emit(update) } public off (eventName: string, handler: TdEventHandler): void { this.provider.off(eventName, handler) } public on (eventName: string, handler: TdEventHandler): () => void { return this.provider.on(eventName, handler) } public once (eventName: string, handler: TdEventHandler): () => void { return this.provider.once(eventName, handler) } } export { DollarTd }