Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import type { JsonSchema } from '@metamask/kernel-utils';
export type Capability<Args extends Record<string, unknown>, Return = null> = (
args: Args,
) => Promise<Return>;
export type CapabilitySchema<ArgNames extends string> = {
description: string;
args: Record<ArgNames, JsonSchema>;
returns?: JsonSchema;
};
export type ExtractRecordKeys<Rec> =
Rec extends Record<infer Key, unknown> ? Key : never;
export type CapabilitySpec<
Args extends Record<string, unknown> = Record<string, unknown>,
Return = void,
> = {
func: Capability<Args, Return>;
schema: CapabilitySchema<ExtractRecordKeys<Args>>;
};
export type CapabilityRecord<Keys extends string = string> = Record<
Keys,
CapabilitySpec<never, unknown>
>;
|