Documentation Index
Fetch the complete documentation index at: https://zapo.to/llms.txt
Use this file to discover all available pages before exploring further.
Cada pacote de backend exporta uma factory create*Store que você passa para uma entrada de backends do createStore. Todos os backends implementam os mesmos contratos de store por domínio, então trocar de backend é uma mudança de config, não de código.
SQLite
@zapo-js/store-sqlite — createSqliteStore(config).
import { createSqliteStore } from '@zapo-js/store-sqlite'
const sqlite = createSqliteStore({
path: '.auth/state.sqlite',
driver: 'auto'
})
| Campo | Tipo | Descrição |
|---|
path | string | Caminho do arquivo de banco de dados. Obrigatório. |
driver | WaSqliteDriver | Seleção do driver nativo ('auto', …). |
pragmas | Record<string, string | number> | Pragmas do SQLite. |
tableNames | WaSqliteTableNameOverrides | Sobrescreve os nomes das tabelas. |
batchSizes | WaSqliteBatchSizeSelection | Ajusta os tamanhos de lote. |
cacheTtlMs | { retryMs?, groupMetadataMs?, deviceListMs?, messageSecretMs? } | TTLs de cache. |
Requer a peer dependency better-sqlite3.
PostgreSQL
@zapo-js/store-postgres — createPostgresStore(config).
import { createPostgresStore } from '@zapo-js/store-postgres'
const postgres = createPostgresStore({
pool: { connectionString: process.env.DATABASE_URL },
tablePrefix: 'wa_'
})
| Campo | Tipo | Descrição |
|---|
pool | Pool | PoolConfig | Um pool pg existente ou uma config de pool. Obrigatório. |
tablePrefix | string | Prefixo para as tabelas criadas. |
cacheTtlMs | object | TTLs de cache (mesmo formato do SQLite). |
cleanup | { intervalMs?, onError? } | Poller de limpeza em segundo plano. |
Também exporta createPgPool e ensurePgMigrations. Requer a peer dependency pg.
MySQL
@zapo-js/store-mysql — createMysqlStore(config).
import { createMysqlStore } from '@zapo-js/store-mysql'
const mysql = createMysqlStore({
pool: { uri: process.env.MYSQL_URL },
tablePrefix: 'wa_'
})
| Campo | Tipo | Descrição |
|---|
pool | Pool | PoolOptions | Um pool mysql2 ou opções. Obrigatório. |
tablePrefix | string | Prefixo para as tabelas criadas. |
cacheTtlMs | object | TTLs de cache. |
cleanup | { enabled?, intervalMs?, onError? } | Poller de limpeza em segundo plano. |
Também exporta createMysqlPool e ensureMysqlMigrations. Requer a peer dependency mysql2.
Redis
@zapo-js/store-redis — createRedisStore(config).
import { createRedisStore } from '@zapo-js/store-redis'
const redis = createRedisStore({
redis: { host: '127.0.0.1', port: 6379 },
keyPrefix: 'wa:'
})
| Campo | Tipo | Descrição |
|---|
redis | Redis | RedisOptions | Uma instância ioredis ou opções. Obrigatório. |
keyPrefix | string | Prefixo para todas as chaves. |
cacheTtlMs | object | TTLs de cache. |
Requer a peer dependency ioredis.
MongoDB
@zapo-js/store-mongo — createMongoStore(config).
import { createMongoStore } from '@zapo-js/store-mongo'
const mongo = createMongoStore({
db: { uri: process.env.MONGO_URL, database: 'zapo' },
collectionPrefix: 'wa_'
})
| Campo | Tipo | Descrição |
|---|
db | Db | { uri, database, options? } | Um Db do mongodb ou informações de conexão. Obrigatório. |
collectionPrefix | string | Prefixo para as collections criadas. |
cacheTtlMs | object | TTLs de cache. |
Requer a peer dependency mongodb.
Misturando backends
O createStore permite que cada domínio escolha um backend por nome, então você pode combiná-los:
createStore({
backends: { redis, postgres },
providers: {
auth: 'redis', signal: 'redis', senderKey: 'redis',
appState: 'redis', privacyToken: 'redis',
messages: 'postgres', threads: 'postgres', contacts: 'postgres'
}
})
Veja Stores para a lista completa de domínios.