@hotmeshio/hotmesh
Version:
Serverless Workflow
169 lines (168 loc) • 7.49 kB
TypeScript
import { KeyStoreParams } from '../../../../types/hotmesh';
import { PostgresClientType } from '../../../../types/postgres';
import { ProviderTransaction } from '../../../../types/provider';
import { stringModule } from './kvtypes/string';
import { hashModule } from './kvtypes/hash';
import { listModule } from './kvtypes/list';
import { zsetModule } from './kvtypes/zset';
/**
* KVSQL is a class that provides a set of methods to interact with a Postgres database.
* It is used to interact with the database in a key-value manner.
*/
export declare class KVSQL {
pgClient: PostgresClientType;
namespace: string;
appId: string;
string: ReturnType<typeof stringModule>;
hash: ReturnType<typeof hashModule>;
list: ReturnType<typeof listModule>;
zset: ReturnType<typeof zsetModule>;
constructor(pgClient: PostgresClientType, namespace: string, appId: string);
isStatusOnly(fields: string[]): boolean;
appendExpiryClause(baseQuery: string, tableAlias: string): string;
appendJobExpiryClause(baseQuery: string, tableAlias: string): string;
getMulti(): ProviderTransaction;
transact(): ProviderTransaction;
exec(...args: any[]): Promise<Array<any>>;
mintKey(type: KeyType, params: KeyStoreParams): string;
/**
* Resolves the table name when provided a key
*/
tableForKey(key: string, stats_type?: 'hash' | 'sorted_set' | 'list'): string;
safeName(input: string, prefix?: string): string;
set: (key: string, value: string, options?: import("../../../../types/provider").SetOptions, multi?: ProviderTransaction) => Promise<boolean>;
_set: (key: string, value: string, options?: import("../../../../types/provider").SetOptions) => {
sql: string;
params: any[];
};
get: (key: string, multi?: ProviderTransaction) => Promise<string>;
_get: (key: string) => {
sql: string;
params: any[];
};
del: (key: string, multi?: ProviderTransaction) => Promise<number>;
_del: (key: string) => {
sql: string;
params: any[];
};
setnx: (key: string, value: string, multi?: ProviderTransaction) => Promise<boolean>;
setnxex: (key: string, value: string, delay: number, multi?: ProviderTransaction) => Promise<boolean>;
hset: (key: string, fields: Record<string, string>, options?: import("../../../../types/provider").HSetOptions, multi?: ProviderTransaction) => Promise<number>;
_hset: (key: string, fields: Record<string, string>, options?: import("../../../../types/provider").HSetOptions) => {
sql: string;
params: any[];
};
hsetnx: (key: string, field: string, value: string, multi?: ProviderTransaction) => Promise<number>;
hget: (key: string, field: string, multi?: ProviderTransaction) => Promise<string>;
_hget: (key: string, field: string) => {
sql: string;
params: any[];
};
hdel: (key: string, fields: string[], multi?: unknown) => Promise<number>;
_hdel: (key: string, fields: string[]) => {
sql: string;
params: any[];
};
hmget: (key: string, fields: string[], multi?: ProviderTransaction) => Promise<string[]>;
_hmget: (key: string, fields: string[]) => {
sql: string;
params: any[];
};
hgetall: (key: string, multi?: ProviderTransaction) => Promise<Record<string, string>>;
hincrbyfloat: (key: string, field: string, increment: number, multi?: ProviderTransaction) => Promise<number>;
_hincrbyfloat: (key: string, field: string, increment: number) => {
sql: string;
params: any[];
};
hscan: (key: string, cursor: string, count?: number, pattern?: string, multi?: ProviderTransaction) => Promise<import("../../../../types/provider").HScanResult>;
_hscan: (key: string, cursor: string, count: number, pattern?: string) => {
sql: string;
params: any[];
};
expire: (key: string, seconds: number, multi?: ProviderTransaction) => Promise<boolean>;
_expire: (key: string, seconds: number) => {
sql: string;
params: any[];
};
scan: (cursor: number, count?: number, pattern?: string, multi?: ProviderTransaction) => Promise<{
cursor: number;
keys: string[];
}>;
_scan: (cursor: number, count: number, pattern?: string) => {
sql: string;
params: any[];
};
lrange: (key: string, start: number, end: number, multi?: ProviderTransaction) => Promise<string[]>;
_lrange: (key: string, start: number, end: number) => {
sql: string;
params: any[];
};
rpush: (key: string, value: string | string[], multi?: ProviderTransaction) => Promise<number>;
_rpush: (key: string, value: string | string[]) => {
sql: string;
params: any[];
};
lpush: (key: string, value: string | string[], multi?: ProviderTransaction) => Promise<number>;
_lpush: (key: string, value: string | string[]) => {
sql: string;
params: any[];
};
lpop: (key: string, multi?: ProviderTransaction) => Promise<string>;
_lpop: (key: string) => {
sql: string;
params: any[];
};
lmove: (source: string, destination: string, srcPosition: "LEFT" | "RIGHT", destPosition: "LEFT" | "RIGHT", multi?: ProviderTransaction) => Promise<string>;
_lmove: (source: string, destination: string, srcPosition: "LEFT" | "RIGHT", destPosition: "LEFT" | "RIGHT") => {
sql: string;
params: any[];
};
rename: (oldKey: string, newKey: string, multi?: ProviderTransaction) => Promise<void>;
_rename: (oldKey: string, newKey: string) => {
sql: string;
params: any[];
};
zadd: (key: string, score: number, member: string, options?: import("../../../../types/provider").ZAddOptions, multi?: ProviderTransaction) => Promise<number>;
_zadd: (key: string, score: number, member: string, options?: import("../../../../types/provider").ZAddOptions) => {
sql: string;
params: any[];
};
zrange: (key: string, start: number, stop: number, facet?: "WITHSCORES", multi?: ProviderTransaction) => Promise<string[]>;
_zrange: (key: string, start: number, stop: number, facet?: "WITHSCORES") => {
sql: string;
params: any[];
};
zrangebyscore: (key: string, min: number, max: number, multi?: ProviderTransaction) => Promise<string[]>;
_zrangebyscore: (key: string, min: number, max: number) => {
sql: string;
params: any[];
};
zrangebyscore_withscores: (key: string, min: number, max: number, multi?: ProviderTransaction) => Promise<{
member: string;
score: number;
}[]>;
_zrangebyscore_withscores: (key: string, min: number, max: number) => {
sql: string;
params: any[];
};
zrem: (key: string, member: string, multi?: ProviderTransaction) => Promise<number>;
_zrem: (key: string, member: string) => {
sql: string;
params: any[];
};
zrank: (key: string, member: string, multi?: ProviderTransaction) => Promise<number>;
_zrank: (key: string, member: string) => {
sql: string;
params: any[];
};
zscore: (key: string, member: string, multi?: ProviderTransaction) => Promise<number>;
_zscore: (key: string, member: string) => {
sql: string;
params: any[];
};
exists(key: string): Promise<string | 0>;
_exists(key: string): {
sql: string;
params: any[];
};
}