1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.ONE_DAY = undefined;
|
7 | exports.getFields = getFields;
|
8 | exports.prettyPrint = prettyPrint;
|
9 | exports.toFilteredArray = toFilteredArray;
|
10 | exports.extendIncludes = extendIncludes;
|
11 |
|
12 | var _util = require('util');
|
13 |
|
14 | var _util2 = _interopRequireDefault(_util);
|
15 |
|
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17 |
|
18 | var ONE_DAY = exports.ONE_DAY = 24 * 60 * 60 * 1000;
|
19 |
|
20 | function getFields(info) {
|
21 | var fragments = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : info.fragments;
|
22 |
|
23 | if (info.kind !== 'Field') {
|
24 | info = info.fieldNodes[0];
|
25 | }
|
26 | var selections = info.selectionSet.selections;
|
27 | var reducer = function reducer(fields, selection) {
|
28 | if (selection.kind === 'FragmentSpread') {
|
29 | var name = selection.name.value;
|
30 | var fragment = fragments[name];
|
31 | if (!fragment) {
|
32 | throw new Error('Fragment \'' + name + '\' was not passed to getFields()');
|
33 | }
|
34 | fragment.selectionSet.selections.reduce(reducer, fields);
|
35 | } else if (selection.kind === 'InlineFragment') {
|
36 | selection.selectionSet.selections.reduce(reducer, fields);
|
37 | } else {
|
38 | fields[selection.name.value] = selection;
|
39 | }
|
40 | return fields;
|
41 | };
|
42 | return selections.reduce(reducer, {});
|
43 | }
|
44 |
|
45 | function prettyPrint(obj) {
|
46 | var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
47 | _ref$depth = _ref.depth,
|
48 | depth = _ref$depth === undefined ? 5 : _ref$depth,
|
49 | _ref$colors = _ref.colors,
|
50 | colors = _ref$colors === undefined ? true : _ref$colors,
|
51 | _ref$breakLength = _ref.breakLength,
|
52 | breakLength = _ref$breakLength === undefined ? 120 : _ref$breakLength;
|
53 |
|
54 | console.log(_util2.default.inspect(obj, { depth: depth, colors: colors, breakLength: breakLength }));
|
55 | }
|
56 |
|
57 | function toFilteredArray(obj) {
|
58 | return (Array.isArray(obj) ? obj : [obj]).filter(function (x) {
|
59 | return x;
|
60 | });
|
61 | }
|
62 |
|
63 | function extendIncludes(includes, moreIncludes) {
|
64 | includes = toFilteredArray(includes);
|
65 | moreIncludes = toFilteredArray(moreIncludes);
|
66 | var seen = {};
|
67 | return includes.concat(moreIncludes).filter(function (x) {
|
68 | if (seen[x]) {
|
69 | return false;
|
70 | }
|
71 | seen[x] = true;
|
72 | return true;
|
73 | });
|
74 | } |
\ | No newline at end of file |