UNPKG

@reactionable/amplify

Version:
40 lines 1.25 kB
import { Amplify } from "@aws-amplify/core"; import { GraphQLAPI, graphqlOperation } from "@aws-amplify/api-graphql"; function isGraphQLResult(arg) { return arg !== null && typeof arg === "object" && ("data" in arg || "errors" in arg); } function extractData(result) { const resultKeys = Object.keys(result); if (resultKeys.length !== 1) { return undefined; } const data = result[resultKeys[0]]; return data; } export async function query({ query, variables, rawData, }) { let result; try { result = await GraphQLAPI.graphql(Amplify, graphqlOperation(query, variables)); } catch (error) { if (error instanceof Error) { throw error; } if (!isGraphQLResult(error) || !error.errors) { throw new Error("An unexpected error occurred"); } throw new Error(error.errors.map((errorItem) => errorItem.message).join(", ")); } if (!result || !isGraphQLResult(result) || !result.data) { throw new Error("No data"); } if (rawData) { return result.data; } const data = extractData(result.data); if (!data) { throw new Error("No data"); } return data; } //# sourceMappingURL=Query.js.map