UNPKG

@stackend/api

Version:

JS bindings to api.stackend.com

138 lines 3.86 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports._objectToQueryParameters = exports._arrayToQueryParameters = exports.toQueryParameters = exports.mapGraphQLList = exports.forEachGraphQLList = exports.getPreviousCursor = exports.getNextCursor = exports.previousPage = exports.nextPage = void 0; /** * Create a request to the next page * @param req * @param after * @param first, if not present taken from req.last or defaults to 10 */ function nextPage(req, after, first) { var r = __assign(__assign({}, req), { after: after, first: first || req.first || req.last || 10 }); delete r['before']; delete r['last']; return r; } exports.nextPage = nextPage; /** * Create a request to the previous page * @param req * @param before * @param last, if not present taken from req.first or defaults to 10 */ function previousPage(req, before, last) { var r = __assign(__assign({}, req), { before: before, last: last || req.last || req.first || 10 }); delete r['after']; delete r['first']; return r; } exports.previousPage = previousPage; /** * Get the next cursor for a list, or null, if not available * @param list */ function getNextCursor(list) { if (list.pageInfo.hasNextPage && list.edges.length !== 0) { var x = list.edges[list.edges.length - 1]; return x.cursor; } return null; } exports.getNextCursor = getNextCursor; /** * Get the previous cursor for a list, or null, if not available * @param list */ function getPreviousCursor(list) { if (list.pageInfo.hasPreviousPage && list.edges.length !== 0) { var x = list.edges[0]; return x.cursor; } return null; } exports.getPreviousCursor = getPreviousCursor; /** * Iterate all list nodes * @param list * @param apply */ function forEachGraphQLList(list, apply) { if (!list || !list.edges) { return; } list.edges.forEach(function (n) { return apply(n.node); }); } exports.forEachGraphQLList = forEachGraphQLList; /** * Map each node of a graph ql list * @param list * @param apply */ function mapGraphQLList(list, apply) { if (!list || !list.edges) { return []; } return list.edges.map(function (value, index) { return apply(value.node, index); }); } exports.mapGraphQLList = mapGraphQLList; /** * Convert a js object into graphql format query * @param o */ function toQueryParameters(o) { if (o === null) { return 'null'; } var t = typeof o; if (t === 'undefined') { return 'null'; } if (t !== 'object') { // Primitive return JSON.stringify(o); } if (Array.isArray(o)) { return _arrayToQueryParameters(o); } return _objectToQueryParameters(o); } exports.toQueryParameters = toQueryParameters; function _arrayToQueryParameters(a) { var r = '['; for (var i = 0; i < a.length; i++) { var l = a[i]; if (i != 0) { r += ','; } r += toQueryParameters(l); } r += ']'; return r; } exports._arrayToQueryParameters = _arrayToQueryParameters; function _objectToQueryParameters(o) { var r = '{'; Object.keys(o).forEach(function (k, i) { if (i !== 0) { r += ','; } r += k + ':'; var v = o[k]; r += toQueryParameters(v); }); r += '}'; return r; } exports._objectToQueryParameters = _objectToQueryParameters; //# sourceMappingURL=graphql.js.map