@reactionable/amplify
Version:
Reactionable package for Amplify
44 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.query = void 0;
const tslib_1 = require("tslib");
const api_graphql_1 = require("@aws-amplify/api-graphql");
function isGraphQLResult(arg) {
return !!(arg &&
"object" === typeof arg &&
(arg["data"] !== undefined || arg["errors"] !== undefined));
}
function extractData(result) {
const data = result[Object.keys(result)[0]];
return data;
}
function query({ query, variables, rawData, }) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
let result;
try {
result = yield api_graphql_1.GraphQLAPI.graphql((0, api_graphql_1.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;
});
}
exports.query = query;
//# sourceMappingURL=Query.js.map