UNPKG

@keyv/mysql

Version:

MySQL/MariaDB storage adapter for Keyv

33 lines (29 loc) 1.27 kB
import EventEmitter from 'node:events'; import { KeyvStoreAdapter, StoredData } from 'keyv'; import mysql, { ConnectionOptions } from 'mysql2'; type KeyvMysqlOptions = { dialect?: "mysql"; uri?: string; table?: string; keySize?: number; intervalExpiration?: number; iterationLimit?: string | number; } & ConnectionOptions; type QueryType<T> = Promise<T extends mysql.RowDataPacket[][] | mysql.RowDataPacket[] | mysql.OkPacket | mysql.OkPacket[] | mysql.ResultSetHeader ? T : never>; declare class KeyvMysql extends EventEmitter implements KeyvStoreAdapter { ttlSupport: boolean; opts: KeyvMysqlOptions; namespace?: string; query: <T>(sqlString: string) => QueryType<T>; constructor(keyvOptions?: KeyvMysqlOptions | string); get<Value>(key: string): Promise<StoredData<Value>>; getMany<Value>(keys: string[]): Promise<StoredData<Value>[]>; set(key: string, value: any): Promise<never>; delete(key: string): Promise<boolean>; deleteMany(key: string[]): Promise<boolean>; clear(): Promise<void>; iterator(namespace?: string): AsyncGenerator<any, void, any>; has(key: string): Promise<boolean>; disconnect(): Promise<void>; } export { KeyvMysql, type KeyvMysqlOptions, KeyvMysql as default };