mtcute/packages/web/README.md

52 lines
1.2 KiB
Markdown
Raw Normal View History

2024-03-06 21:20:44 +03:00
# @mtcute/web
2024-03-06 21:20:44 +03:00
📖 [API Reference](https://ref.mtcute.dev/modules/_mtcute_web.html)
2024-03-06 21:20:44 +03:00
Web support package for mtcute. Includes:
- WASM crypto provider
- Websocket transport
- IndexedDB storage
- `TelegramClient` implementation using the above
## Usage
```typescript
2024-03-06 21:20:44 +03:00
import { TelegramClient } from '@mtcute/web'
2024-03-06 21:20:44 +03:00
const tg = new TelegramClient({
apiId: 12345,
apiHash: 'abcdef',
storage: 'my-account'
})
2024-07-26 06:46:18 +03:00
const self = await tg.start()
console.log(`✨ logged in as ${self.displayName}`)
```
2024-03-06 21:20:44 +03:00
## Usage with workers
You can also use this package with web workers to offload most of the heavy lifting to a separate thread:
```typescript
// worker.ts
import { BaseTelegramClient, TelegramWorker } from '@mtcute/web'
// main.ts
import { TelegramClient, TelegramWorkerPort } from '@mtcute/web'
2024-03-06 21:20:44 +03:00
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 })
2024-07-26 06:46:18 +03:00
const self = await tg.start()
console.log(`✨ logged in as ${user.displayName}`)
```