feat: awaitable type

This commit is contained in:
MARCROCK22 2024-03-26 15:45:07 -04:00
parent f100c8b5d0
commit 0136b6aae0
2 changed files with 26 additions and 24 deletions

View File

@ -1,41 +1,41 @@
import type { Awaitable } from '../../common';
export interface Adapter { export interface Adapter {
isAsync: boolean; isAsync: boolean;
scan(query: string, keys?: false): RPV<any[]>; scan(query: string, keys?: false): Awaitable<any[]>;
scan(query: string, keys: true): RPV<string[]>; scan(query: string, keys: true): Awaitable<string[]>;
scan(query: string, keys?: boolean): RPV<(any | string)[]>; scan(query: string, keys?: boolean): Awaitable<(any | string)[]>;
get(keys: string[]): RPV<any[]>; get(keys: string[]): Awaitable<any[]>;
get(keys: string): RPV<any | null>; get(keys: string): Awaitable<any | null>;
get(keys: string | string[]): RPV<any | null>; get(keys: string | string[]): Awaitable<any | null>;
set(keyValue: [string, any][]): RPV<void>; set(keyValue: [string, any][]): Awaitable<void>;
set(id: string, data: any): RPV<void>; set(id: string, data: any): Awaitable<void>;
set(id: string | [string, any][], data?: any): RPV<void>; set(id: string | [string, any][], data?: any): Awaitable<void>;
patch(updateOnly: boolean, keyValue: [string, any][]): RPV<void>; patch(updateOnly: boolean, keyValue: [string, any][]): Awaitable<void>;
patch(updateOnly: boolean, id: string, data: any): RPV<void>; patch(updateOnly: boolean, id: string, data: any): Awaitable<void>;
patch(updateOnly: boolean, id: string | [string, any][], data?: any): RPV<void>; patch(updateOnly: boolean, id: string | [string, any][], data?: any): Awaitable<void>;
values(to: string): RPV<any[]>; values(to: string): Awaitable<any[]>;
keys(to: string): RPV<string[]>; keys(to: string): Awaitable<string[]>;
count(to: string): RPV<number>; count(to: string): Awaitable<number>;
remove(keys: string | string[]): RPV<void>; remove(keys: string | string[]): Awaitable<void>;
contains(to: string, keys: string): RPV<boolean>; contains(to: string, keys: string): Awaitable<boolean>;
getToRelationship(to: string): RPV<string[]>; getToRelationship(to: string): Awaitable<string[]>;
bulkAddToRelationShip(data: Record<string, string[]>): RPV<void>; bulkAddToRelationShip(data: Record<string, string[]>): Awaitable<void>;
addToRelationship(to: string, keys: string | string[]): RPV<void>; addToRelationship(to: string, keys: string | string[]): Awaitable<void>;
removeToRelationship(to: string, keys: string | string[]): RPV<void>; removeToRelationship(to: string, keys: string | string[]): Awaitable<void>;
removeRelationship(to: string | string[]): RPV<void>; removeRelationship(to: string | string[]): Awaitable<void>;
} }
export type RPV<V> = Promise<V> | V;

View File

@ -190,3 +190,5 @@ export type FlatObjectKeys<T extends Record<string, any>, Key = keyof T> = Key e
? `${Key}` ? `${Key}`
: never : never
: never; : never;
export type Awaitable<V> = Promise<V> | V;