memcache-client
Version:
NodeJS memcached client
71 lines (70 loc) • 5.57 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { Socket } from "net";
import RedundantServers from "./redundant-servers";
import EventEmitter from "events";
import { MemcacheClientOptions, ErrorFirstCallback, PackedData } from "../types";
import { MemcacheConnection } from "./connection";
import { DefaultLogger } from "memcache-parser";
declare type StoreParams = string | number | Buffer | Record<string, unknown>;
declare type CommonCommandOption = Readonly<{
noreply?: boolean;
}>;
declare type StoreCommandOptions = CommonCommandOption & {
ignoreNotStored?: boolean;
} & Readonly<{
lifetime?: number;
compress?: boolean;
}>;
declare type CasCommandOptions = CommonCommandOption & StoreCommandOptions & Readonly<{
casUniq: number | string;
}>;
declare type SocketCallback = (socket?: Socket) => void;
declare type OperationCallback<Error, Data> = (error?: Error | null, data?: Data) => void;
export declare type RetrievalCommandResponse<ValueType> = {
tokens: string[];
casUniq?: number | string;
value: ValueType;
};
export declare type CasRetrievalCommandResponse<Type> = RetrievalCommandResponse<Type> & {
casUniq: string | number;
};
export declare type StatsCommandResponse = Record<"STAT", Array<Array<string>>>;
export declare type MultiRetrievalResponse<ValueType = unknown> = Record<string, RetrievalCommandResponse<ValueType>>;
export declare type MultiCasRetrievalResponse<ValueType = unknown> = Record<string, CasRetrievalCommandResponse<ValueType>>;
declare type MultiCasRetrieval<ValueType> = ValueType extends MultiCasRetrievalResponse ? ValueType : CasRetrievalCommandResponse<ValueType>;
declare type MultiRetrieval<ValueType> = ValueType extends MultiRetrievalResponse ? ValueType : RetrievalCommandResponse<ValueType>;
export declare class MemcacheClient extends EventEmitter {
options: MemcacheClientOptions;
socketID: number;
_logger: DefaultLogger;
_servers: RedundantServers;
private _packer;
private Promise;
constructor(options: MemcacheClientOptions);
shutdown(): void;
send<ValueType>(data: StoreParams | SocketCallback, options?: CommonCommandOption | ErrorFirstCallback, callback?: ErrorFirstCallback): Promise<ValueType>;
xsend(data: StoreParams | SocketCallback, options?: StoreCommandOptions): Promise<unknown>;
cmd<Response>(data: string, options?: CommonCommandOption, callback?: ErrorFirstCallback): Promise<Response>;
set(key: string, value: StoreParams, options?: StoreCommandOptions | OperationCallback<Error, string[]>, callback?: OperationCallback<Error, string[]>): Promise<string[]>;
add(key: string, value: StoreParams, options?: StoreCommandOptions | OperationCallback<Error, string[]>, callback?: OperationCallback<Error, string[]>): Promise<string[]>;
replace(key: string, value: StoreParams, options?: StoreCommandOptions | OperationCallback<Error, string[]>, callback?: OperationCallback<Error, string[]>): Promise<string[]>;
append(key: string, value: StoreParams, options?: StoreCommandOptions | OperationCallback<Error, string[]>, callback?: OperationCallback<Error, string[]>): Promise<string[]>;
prepend(key: string, value: StoreParams, options?: StoreCommandOptions | OperationCallback<Error, string[]>, callback?: OperationCallback<Error, string[]>): Promise<string[]>;
cas(key: string, value: StoreParams, options: CasCommandOptions, callback?: OperationCallback<Error, string[]>): Promise<string[]>;
delete(key: string, options?: CommonCommandOption | OperationCallback<Error, string[]>, callback?: OperationCallback<Error, string[]>): Promise<string[]>;
incr(key: string, value: number, options?: StoreCommandOptions | OperationCallback<Error, string>, callback?: OperationCallback<Error, string>): Promise<string>;
decr(key: string, value: number, options?: StoreCommandOptions | OperationCallback<Error, string>, callback?: OperationCallback<Error, string>): Promise<string>;
touch(key: string, exptime: string | number, options?: CommonCommandOption | OperationCallback<Error, string[]>, callback?: OperationCallback<Error, string[]>): Promise<string[]>;
version(callback?: OperationCallback<Error, string[]>): Promise<string[]>;
store(cmd: string, key: string, value: StoreParams, options?: Partial<CasCommandOptions> | OperationCallback<Error, string[]>, callback?: OperationCallback<Error, string[]>): Promise<string[]>;
get<ValueType>(key: string | string[], options?: StoreCommandOptions | OperationCallback<Error, MultiRetrieval<ValueType>>, callback?: OperationCallback<Error, MultiRetrieval<ValueType>>): Promise<MultiRetrieval<ValueType>>;
gets<ValueType>(key: string | string[], options?: StoreCommandOptions | OperationCallback<Error, MultiCasRetrieval<ValueType>>, callback?: OperationCallback<Error, MultiCasRetrieval<ValueType>>): Promise<MultiCasRetrieval<ValueType>>;
retrieve<T>(cmd: string, key: string[] | string, options?: StoreCommandOptions | OperationCallback<Error, T>, callback?: ErrorFirstCallback): Promise<T>;
xretrieve(cmd: string, key: string | string[], options?: StoreCommandOptions): Promise<unknown>;
_send(conn: MemcacheConnection, data: StoreParams | SocketCallback, options: Partial<CasCommandOptions>): Promise<unknown>;
_callbackSend(data: StoreParams | SocketCallback, options?: Partial<CasCommandOptions>, callback?: ErrorFirstCallback): Promise<unknown>;
_unpackValue(result: PackedData): number | string | Record<string, unknown> | Buffer;
}
export {};