UNPKG

2.14 kBTypeScriptView Raw
1import { Logger } from "@atomist/skill-logging/lib/logging";
2import { GraphQLClient } from "./graphql";
3import { HttpClient } from "./http";
4import { CommandMessageClient, MessageClient } from "./message";
5import { ParameterPromptOptions, ParametersPromptObject } from "./parameter_prompt";
6import { CommandIncoming, EventIncoming } from "./payload";
7import { ProjectLoader } from "./project";
8import { CredentialProvider } from "./secrets";
9import { StorageProvider } from "./storage";
10export interface Configuration<C extends Record<string, any>> {
11 name: string;
12 parameters: C;
13 resourceProviders: Record<string, {
14 typeName: string;
15 selectedResourceProviders: Array<{
16 id: string;
17 }>;
18 }>;
19 url: string;
20}
21export interface Contextual<T, C> {
22 name: string;
23 workspaceId: string;
24 correlationId: string;
25 executionId: string;
26 credential: CredentialProvider;
27 graphql: GraphQLClient;
28 http: HttpClient;
29 message: MessageClient;
30 project: ProjectLoader;
31 audit: Logger & {
32 url: string;
33 };
34 storage: StorageProvider;
35 trigger: T;
36 configuration: Array<Configuration<C>>;
37 skill: {
38 id: string;
39 name: string;
40 namespace: string;
41 version: string;
42 };
43 close: () => Promise<void>;
44}
45export interface EventContext<E = any, C = any> extends Contextual<EventIncoming, C> {
46 data: E;
47}
48export interface CommandContext<C = any> extends Contextual<CommandIncoming, C> {
49 parameters: {
50 prompt<PARAMS = any>(parameters: ParametersPromptObject<PARAMS>, options?: ParameterPromptOptions): Promise<PARAMS>;
51 };
52 credential: CredentialProvider;
53 graphql: GraphQLClient;
54 http: HttpClient;
55 message: CommandMessageClient;
56}
57export interface HandlerStatus {
58 visibility?: "hidden";
59 code?: number;
60 reason?: string;
61}
62export declare type CommandHandler<C = any> = (context: CommandContext<C>) => Promise<void | HandlerStatus>;
63export declare type EventHandler<E = any, C = any> = (context: EventContext<E, C>) => Promise<void | HandlerStatus>;
64//# sourceMappingURL=handler.d.ts.map
\No newline at end of file