@keyv/mysql
Version:
MySQL/MariaDB storage adapter for Keyv
33 lines (29 loc) • 1.27 kB
TypeScript
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 };