mtcute/packages/web
2024-07-16 21:40:32 +00:00
..
src chore(web): inlined iterator 2024-06-28 14:08:45 +03:00
build.config.cjs chore!: started extracting platform-specific stuff into separate packages 2024-03-07 05:35:36 +03:00
package.json v0.16.0 2024-07-16 21:40:32 +00:00
README.md docs: updated readmes 2024-03-07 05:35:37 +03:00
tsconfig.json chore!: started extracting platform-specific stuff into separate packages 2024-03-07 05:35:36 +03:00
typedoc.cjs docs: updated readmes 2024-03-07 05:35:37 +03:00

@mtcute/web

📖 API Reference

Web support package for mtcute. Includes:

  • WASM crypto provider
  • Websocket transport
  • IndexedDB storage
  • TelegramClient implementation using the above

Usage

import { TelegramClient } from '@mtcute/web'

const tg = new TelegramClient({
    apiId: 12345,
    apiHash: 'abcdef',
    storage: 'my-account'
})

tg.run(async (user) => {
    console.log(`✨ logged in as ${user.displayName}`)
})

Usage with workers

You can also use this package with web workers to offload most of the heavy lifting to a separate thread:

// worker.ts
import { BaseTelegramClient, TelegramWorker } from '@mtcute/web'

const client = new BaseTelegramClient({
    apiId: 12345,
    apiHash: 'abcdef',
    storage: 'my-account'
})

new TelegramWorker({ client })

// main.ts
import { TelegramClient, TelegramWorkerPort } from '@mtcute/web'

const worker = new Worker(new URL('./worker.ts', import.meta.url), { type: 'module' }) // or SharedWorker
const port = new TelegramWorkerPort({ worker })
const tg = new TelegramClient({ client: port })

tg.run({}, async (user) => {
    console.log(`✨ logged in as ${user.displayName}`)
})