UNPKG

cloudflare-client

Version:
119 lines (118 loc) 3.52 kB
import { type Credentials } from "./fetch.js"; declare type Options = { accountId: string; } & Credentials; declare type FindOptions = { /** * Page number of paginated results * @minimum 1 * @default 1 */ page?: number; /** * Maximum number of results per page * @minimum 5 * @maximum 100 * @default 20 */ per_page?: number; /** * Field to order results by */ order?: "id" | "title"; /** * Direction to order namespaces */ direction?: "asc" | "desc"; }; export declare type Namespace = { id: string; title: string; supports_url_encoding: boolean; }; export declare type Key = { name: string; expiration: number; metadata: Record<string, string | number>; }; declare type KeysOptions = { /** * A string prefix used to filter down which keys will be returned. Exact * matches and any key names that begin with the prefix will be returned. */ prefix?: string; /** * The number of keys to return. The cursor attribute may be used to iterate * over the next batch of keys if there are more than the limit. * @minimum 10 * @maximum 1000 * @example 1000 */ first?: number; /** * Opaque token indicating the position from which to continue when requesting * the next set of records if the amount of list results was limited by the * limit parameter. A valid value for the cursor can be obtained from the * cursors object in the result_info structure. * @example "6Ck1la0VxJ0djhidm1MdX2FyDGxLKVeeHZZmORS_8XeSuhz9SjIJRaSa2lnsF01tQOHrfTGAP3R5X1Kv5iVUuMbNKhWNAXHOl6ePB0TUL8nw" */ after?: string; }; declare type SetOptions = { expires?: number; expiresTtl?: number; /** * @default JSON.stringify */ encode?: ((value: any) => any) | false; /** * @default "text/plain; charset=utf-8" */ contentType?: string; }; declare type GetOptions = { /** * @default JSON.parse */ decode?: ((value: ArrayBuffer) => any) | false; }; /** * Cloudflare KV Storage client */ export declare function kv(options: Options): { /** * List Namespaces * @see https://api.cloudflare.com/#workers-kv-namespace-list-namespaces */ find: (params?: FindOptions | undefined) => import("./fetch.js").Query<Namespace>; /** * Create a Namespace * @see https://api.cloudflare.com/#workers-kv-namespace-properties */ create: (name: string) => Promise<Namespace>; /** * Rename a Namespace * @see https://api.cloudflare.com/#workers-kv-namespace-rename-a-namespace */ update: (id: string, title: string) => Promise<null>; /** * Remove a Namespace * @see https://api.cloudflare.com/#workers-kv-namespace-remove-a-namespace */ delete: (id: string) => Promise<null>; namespace(id: string): { keys: (params?: KeysOptions | undefined) => import("./fetch.js").Query<Key>; /** * Read key-value pair * @see https://api.cloudflare.com/#workers-kv-namespace-read-key-value-pair */ get: <T = any>(key: string, options?: GetOptions) => Promise<T>; /** * Write key-value pair * @see https://api.cloudflare.com/#workers-kv-namespace-write-key-value-pair */ set: <T_1 = any>(key: string, value: T_1, options?: SetOptions) => Promise<undefined>; delete: (id: string) => Promise<void>; }; }; export {};