UNPKG

ts-graphql-query-genrator

Version:
117 lines 10.3 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "lodash"], factory); } })(function (require, exports) { "use strict"; exports.__esModule = true; var _ = require("lodash"); //#endregion var Query = /** @class */ (function () { function Query(Prefix, Indent) { if (Prefix === void 0) { Prefix = "Query"; } if (Indent === void 0) { Indent = 0; } this.Prefix = Prefix; this.Indent = Indent; this.Fields = []; this.ObjectFields = []; this.SimpleFunctionFields = []; this.FunctionFields = []; } Query.prototype.IncludeField = function (Key) { if (_.includes(this.Fields, Key)) throw new Error("This Field is already included"); this.Fields.push(Key); return this; }; Query.prototype.IncludeObject = function (Key, Include) { if (_.find(this.ObjectFields, { Key: Key }) != void 0) { throw new Error("This Field is already included"); } this.ObjectFields.push({ Key: Key, Query: Include }); return this; }; Query.prototype.IncludeSimpleFunction = function (Key) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } if (_.find(this.SimpleFunctionFields, { Key: Key }) != void 0) { throw new Error("This Field is already included"); } this.SimpleFunctionFields.push({ Key: Key, Parameters: args }); return this; }; Query.prototype.IncludeFunction = function (Key, Include) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } if (_.find(this.FunctionFields, { Key: Key }) != void 0) { throw new Error("This Field is already included"); } this.FunctionFields.push({ Key: Key, Parameters: args, Query: Include }); return this; }; Query.prototype.ToQuery = function () { var result = _.repeat(' ', this.Indent * 4) + this.Prefix + " {\n"; var newIndent = _.repeat(' ', (this.Indent + 1) * 4); for (var _i = 0, _a = this.Fields; _i < _a.length; _i++) { var field = _a[_i]; result += newIndent + field + "\n"; } for (var _b = 0, _c = this.ObjectFields; _b < _c.length; _b++) { var object = _c[_b]; var query = new Query(object.Key.toString(), this.Indent + 1); object.Query(query); result += query.ToQuery() + "\n"; } for (var _d = 0, _e = this.SimpleFunctionFields; _d < _e.length; _d++) { var simplefunc = _e[_d]; result += newIndent + simplefunc.Key + "("; var strings = _.map(simplefunc.Parameters, function (v) { return v["0"] + ":" + JSON.stringify(v["1"]) + ","; }); for (var _f = 0, strings_1 = strings; _f < strings_1.length; _f++) { var str = strings_1[_f]; result += str; } if (simplefunc.Parameters.length != 0) result = _.trimEnd(result, ","); result += ")\n"; } for (var _g = 0, _h = this.FunctionFields; _g < _h.length; _g++) { var func = _h[_g]; result += newIndent + func.Key + "("; var strings = _.map(func.Parameters, function (v) { return v["0"] + ":" + JSON.stringify(v["1"]) + ","; }); for (var _j = 0, strings_2 = strings; _j < strings_2.length; _j++) { var str = strings_2[_j]; result += str; } if (func.Parameters.length != 0) result = _.trimEnd(result, ","); result += ") "; var query = new Query("", this.Indent + 1); func.Query(query); result += _.trimStart(query.ToQuery()) + "\n"; } result += _.repeat(" ", this.Indent * 4) + "}"; return result; }; return Query; }()); exports.Query = Query; }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBQSwwQkFBNEI7SUFpRDVCLFlBQVk7SUFFWjtRQU9JLGVBQVksTUFBZ0IsRUFBQyxNQUFpQjtZQUFsQyx1QkFBQSxFQUFBLGdCQUFnQjtZQUFDLHVCQUFBLEVBQUEsVUFBaUI7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBRU0sNEJBQVksR0FBbkIsVUFBb0IsR0FBa0M7WUFDbEQsSUFBRyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUMsR0FBRyxDQUFDO2dCQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVNLDZCQUFhLEdBQXBCLFVBQWtHLEdBQVEsRUFBQyxPQUErQjtZQUN0SSxJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7YUFDckQ7WUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDbkIsR0FBRyxFQUFD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