UNPKG

shopify-storefront

Version:
46 lines 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildMutation = exports.buildQuery = exports.buildGraphQLRequest = exports.gqlVariablesToBody = void 0; function gqlVariablesToBody(vars, returns) { const varTypes = []; const varAssign = []; // eslint-disable-next-line guard-for-in for (const key in vars) { const type = vars[key]; varTypes.push(`$${key}: ${type}`); varAssign.push(`${key}: $${key}`); } if (varTypes.length === 0 || varAssign.length === 0) { return `__OPERATION__ __NAME_CAP__ { __NAME__ { ${returns.join(' ')} } }`; } return `__OPERATION__ __NAME_CAP__(${varTypes.join(',')}) { __NAME__(${varAssign.join(',')}){ ${returns.join(' ')} } }`; } exports.gqlVariablesToBody = gqlVariablesToBody; function buildGraphQLRequest(operation, name, variables, returns) { const nameCap = name.replace(name[0], name[0].toUpperCase()); const body = gqlVariablesToBody(variables, returns) .replace(/__OPERATION__/g, operation) .replace(/__NAME__/g, name) .replace(/__NAME_CAP__/g, nameCap); const req = {}; req[operation] = `${body}`; return req; } exports.buildGraphQLRequest = buildGraphQLRequest; function buildQuery(name, variables, returns) { return buildGraphQLRequest('query', name, variables, returns); } exports.buildQuery = buildQuery; function buildMutation(name, variables, returns) { return buildGraphQLRequest('mutation', name, variables, returns); } exports.buildMutation = buildMutation; //# sourceMappingURL=utils.js.map