simple-graphql
Version:
The simple way to generates GraphQL schemas and Sequelize models from your models definition.
35 lines • 1.93 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = __importDefault(require("lodash"));
const toGraphQLFieldConfigMap_1 = __importDefault(require("../transformer/toGraphQLFieldConfigMap"));
const toGraphQLInputFieldConfigMap_1 = __importDefault(require("../transformer/toGraphQLInputFieldConfigMap"));
const StringHelper_1 = __importDefault(require("../utils/StringHelper"));
const mutationWithClientMutationId_1 = __importDefault(require("../transformer/mutationWithClientMutationId"));
exports.default = (mutationConfigMaps, payloadFields, context) => {
const mutations = {};
const addMutation = (name, options) => {
if (mutations[name]) {
throw new Error(`Mutation ${name} already defined.`);
}
const inputFields = (0, toGraphQLInputFieldConfigMap_1.default)(StringHelper_1.default.toInitialUpperCase(name), options.input || {}, context);
const outputFields = (0, toGraphQLFieldConfigMap_1.default)(name, 'Payload', options.output || {}, context);
const payloadFields = lodash_1.default.get(options, 'mutation.payloadFields', []);
mutations[name] = (0, mutationWithClientMutationId_1.default)({
name: StringHelper_1.default.toInitialUpperCase(name),
inputFields: inputFields,
outputFields: Object.assign(Object.assign({}, outputFields), payloadFields),
mutateAndGetPayload: context.hookMutationResolve(name, options),
description: options.description
});
};
for (let mutationConfigMap of mutationConfigMaps) {
lodash_1.default.forOwn(mutationConfigMap, (value, key) => {
addMutation(key, value);
});
}
return mutations;
};
//# sourceMappingURL=buildRootMutations.js.map