alina sireneva
1c53bd7a71
All checks were successful
Tests / test-deno (push) Successful in 1m40s
Tests / test-node (node20) (push) Successful in 1m49s
Tests / test-bun (push) Successful in 1m47s
Tests / test-node (node18) (push) Successful in 1m54s
Tests / test-node (node22) (push) Successful in 1m52s
Tests / test-web (chromium) (push) Successful in 1m47s
Tests / test-web (firefox) (push) Successful in 1m4s
Docs / build (push) Successful in 6m2s
Tests / lint (push) Successful in 6m44s
Tests / e2e-deno (push) Successful in 58s
Tests / e2e (push) Successful in 49s
|
||
---|---|---|
.. | ||
src | ||
build.config.js | ||
package.json | ||
README.md | ||
tsconfig.json |
@mtcute/web
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'
})
const self = await tg.start()
console.log(`✨ logged in as ${self.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'
// main.ts
import { TelegramClient, TelegramWorkerPort } from '@mtcute/web'
const client = new BaseTelegramClient({
apiId: 12345,
apiHash: 'abcdef',
storage: 'my-account'
})
new TelegramWorker({ client })
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 })
const self = await tg.start()
console.log(`✨ logged in as ${user.displayName}`)