-
Notifications
You must be signed in to change notification settings - Fork 667
Expand file tree
/
Copy pathlistDefinitions.ts
More file actions
49 lines (42 loc) · 1.48 KB
/
listDefinitions.ts
File metadata and controls
49 lines (42 loc) · 1.48 KB
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import type { WebinyConfig } from "../../types.js";
import { Result } from "../../Result.js";
import type { HttpError, GraphQLError, NetworkError } from "../../errors.js";
import type { TaskDefinition } from "./taskTypes.js";
export async function listDefinitions(
config: WebinyConfig,
fetchFn: typeof fetch
): Promise<Result<TaskDefinition[], HttpError | GraphQLError | NetworkError>> {
const { executeGraphQL } = await import("../executeGraphQL.js");
const query = `
query ListTaskDefinitions {
backgroundTasks {
listDefinitions {
data {
id
title
description
}
error {
message
code
}
}
}
}
`;
const result = await executeGraphQL(config, fetchFn, query, {});
if (result.isFail()) {
return Result.fail(result.error);
}
const responseData = result.value;
if (responseData.backgroundTasks.listDefinitions.error) {
const { GraphQLError } = await import("../../errors.js");
return Result.fail(
new GraphQLError(
responseData.backgroundTasks.listDefinitions.error.message,
responseData.backgroundTasks.listDefinitions.error.code
)
);
}
return Result.ok(responseData.backgroundTasks.listDefinitions.data);
}