Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import { Airgram, Auth, isError, prompt, toObject } from 'airgram'
import debug from 'debug'
const writeLog = debug('airgram:log')
const writeInfo = debug('airgram:info')
const writeError = debug('airgram:error')
const airgram = new Airgram({
apiId: process.env.APP_ID as number | undefined,
apiHash: process.env.APP_HASH,
command: process.env.TDLIB_COMMAND,
databaseDirectory: '../../db',
logVerbosityLevel: 2
})
airgram.use(new Auth({
code: () => prompt('Please enter the secret code:\n'),
phoneNumber: () => prompt('Please enter your phone number:\n')
}))
// async/await style of requests
void (async () => {
const me = toObject(await airgram.api.getMe())
writeInfo('[Me] ', me)
})()
// Example above is equivalent to:
// airgram.api.getMe().then(toObject).then((me) => {
// writeLog(`[Me] `, me)
// })
// handle errors
const writeLog = debug('airgram:log')
const writeError = debug('airgram:error')
const store = new Store()
const airgram = new Airgram({
apiId: process.env.APP_ID as number | undefined,
apiHash: process.env.APP_HASH,
command: process.env.TDLIB_COMMAND,
databaseDirectory: '../../db',
logVerbosityLevel: 2,
// the following option allows to extend the base context
context: { $store: store }
})
airgram.use(new Auth({
code: () => prompt('Please enter the secret code:\n'),
phoneNumber: () => prompt('Please enter your phone number:\n')
}))
airgram.on(UPDATE.updateUser, async ({ $store, update }, next) => {
const { user } = update
$store.users.set(user.id, user)
return next()
})
airgram.on(UPDATE.updateNewChat, async ({ $store, update }, next) => {
const { chat } = update
$store.chats.set(chat.id, chat)
return next()
})