1 | import { Logger } from "@atomist/skill-logging/lib/logging";
|
2 | import { GraphQLClient } from "./graphql";
|
3 | import { HttpClient } from "./http";
|
4 | import { CommandMessageClient, MessageClient } from "./message";
|
5 | import { ParameterPromptOptions, ParametersPromptObject } from "./parameter_prompt";
|
6 | import { CommandIncoming, EventIncoming } from "./payload";
|
7 | import { ProjectLoader } from "./project";
|
8 | import { CredentialProvider } from "./secrets";
|
9 | import { StorageProvider } from "./storage";
|
10 | export 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 | }
|
21 | export 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 | }
|
45 | export interface EventContext<E = any, C = any> extends Contextual<EventIncoming, C> {
|
46 | data: E;
|
47 | }
|
48 | export 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 | }
|
57 | export interface HandlerStatus {
|
58 | visibility?: "hidden";
|
59 | code?: number;
|
60 | reason?: string;
|
61 | }
|
62 | export declare type CommandHandler<C = any> = (context: CommandContext<C>) => Promise<void | HandlerStatus>;
|
63 | export declare type EventHandler<E = any, C = any> = (context: EventContext<E, C>) => Promise<void | HandlerStatus>;
|
64 |
|
\ | No newline at end of file |