UNPKG

canner

Version:

Build CMS in few lines of code for different data sources

75 lines (59 loc) 2.48 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Query = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _utils = require("./utils"); var _lodash = require("lodash"); var Query = function Query(_ref) { var _this = this; var schema = _ref.schema; (0, _classCallCheck2.default)(this, Query); (0, _defineProperty2.default)(this, "schema", void 0); (0, _defineProperty2.default)(this, "queries", void 0); (0, _defineProperty2.default)(this, "variables", void 0); (0, _defineProperty2.default)(this, "updateQueries", function (pathArr, field, value) { var path = "".concat(pathArr.join('.fields.'), ".").concat(field); if (field === 'args') { var args = (0, _lodash.get)(_this.queries, path); _this.variables = (0, _objectSpread2.default)({}, _this.variables, Object.keys(args).reduce(function (result, key) { result[args[key]] = value[key]; return result; }, {})); } else { (0, _lodash.set)(_this.queries, path, value); } }); (0, _defineProperty2.default)(this, "getQueries", function (pathArr) { if (!pathArr || pathArr.length === 0) { return _this.queries; } var path = pathArr.join('.fields.'); return (0, _lodash.get)(_this.queries, path); }); (0, _defineProperty2.default)(this, "toGQL", function (key) { var variables = _this.getVairables(); if (key) { var obj = _this.getQueries([key]); return (0, _utils.objectToQueries)((0, _defineProperty2.default)({}, key, obj), !obj.declareArgs, variables); } else { return (0, _utils.objectToQueries)(_this.queries, false, variables); } }); (0, _defineProperty2.default)(this, "getVairables", function () { return (0, _lodash.mapKeys)(_this.variables, function (value, key) { return key.substr(1); }); }); this.schema = schema; var _schemaToQueriesObjec = (0, _utils.schemaToQueriesObject)(schema), queriesObj = _schemaToQueriesObjec.queriesObj, _variables = _schemaToQueriesObjec.variables; this.variables = _variables; this.queries = queriesObj; }; exports.Query = Query;