UNPKG

5.32 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var helpers_1 = require("./helpers");
4var types_1 = require("./types");
5exports.plugins = [
6 {
7 name: "TypeScript " + helpers_1.italic('(required by other typescript plugins)'),
8 package: 'graphql-codegen-typescript',
9 value: 'typescript',
10 available: hasTag(types_1.Tags.typescript),
11 shouldBeSelected: function (tags) {
12 return oneOf(tags, types_1.Tags.angular, types_1.Tags.stencil) || allOf(tags, types_1.Tags.typescript, types_1.Tags.react) || noneOf(tags, types_1.Tags.flow);
13 }
14 },
15 {
16 name: "TypeScript Operations " + helpers_1.italic('(operations and fragments)'),
17 package: 'graphql-codegen-typescript-operations',
18 value: 'typescript-operations',
19 available: function (tags) { return allOf(tags, types_1.Tags.browser, types_1.Tags.typescript); },
20 shouldBeSelected: function (tags) { return oneOf(tags, types_1.Tags.angular, types_1.Tags.stencil) || allOf(tags, types_1.Tags.typescript, types_1.Tags.react); }
21 },
22 {
23 name: "TypeScript Resolvers " + helpers_1.italic('(strongly typed resolve functions)'),
24 package: 'graphql-codegen-typescript-resolvers',
25 value: 'typescript-resolvers',
26 available: function (tags) { return allOf(tags, types_1.Tags.node, types_1.Tags.typescript); },
27 shouldBeSelected: function (tags) { return noneOf(tags, types_1.Tags.flow); }
28 },
29 {
30 name: "Flow " + helpers_1.italic('(required by other flow plugins)'),
31 package: 'graphql-codegen-flow',
32 value: 'flow',
33 available: hasTag(types_1.Tags.flow),
34 shouldBeSelected: function (tags) { return noneOf(tags, types_1.Tags.typescript); }
35 },
36 {
37 name: "Flow Operations " + helpers_1.italic('(operations and fragments)'),
38 package: 'graphql-codegen-flow-operations',
39 value: 'flow-operations',
40 available: function (tags) { return allOf(tags, types_1.Tags.browser, types_1.Tags.flow); },
41 shouldBeSelected: function (tags) { return noneOf(tags, types_1.Tags.typescript); }
42 },
43 {
44 name: "Flow Resolvers " + helpers_1.italic('(strongly typed resolve functions)'),
45 package: 'graphql-codegen-flow-resolvers',
46 value: 'flow-resolvers',
47 available: function (tags) { return allOf(tags, types_1.Tags.node, types_1.Tags.flow); },
48 shouldBeSelected: function (tags) { return noneOf(tags, types_1.Tags.typescript); }
49 },
50 {
51 name: "TypeScript Apollo Angular " + helpers_1.italic('(typed GQL services)'),
52 package: 'graphql-codegen-typescript-apollo-angular',
53 value: 'typescript-apollo-angular',
54 available: hasTag(types_1.Tags.angular),
55 shouldBeSelected: function () { return true; }
56 },
57 {
58 name: "TypeScript React Apollo " + helpers_1.italic('(typed components and HOCs)'),
59 package: 'graphql-codegen-typescript-react-apollo',
60 value: 'typescript-react-apollo',
61 available: function (tags) { return allOf(tags, types_1.Tags.react, types_1.Tags.typescript); },
62 shouldBeSelected: function () { return true; }
63 },
64 {
65 name: "TypeScript Stencil Apollo " + helpers_1.italic('(typed components)'),
66 package: 'graphql-codegen-typescript-stencil-apollo',
67 value: 'typescript-stencil-apollo',
68 available: hasTag(types_1.Tags.stencil),
69 shouldBeSelected: function () { return true; }
70 },
71 {
72 name: "TypeScript MongoDB " + helpers_1.italic('(typed MongoDB objects)'),
73 package: 'graphql-codegen-typescript-mongodb',
74 value: 'typescript-mongodb',
75 available: function (tags) { return allOf(tags, types_1.Tags.node, types_1.Tags.typescript); },
76 shouldBeSelected: function () { return false; }
77 },
78 {
79 name: "TypeScript GraphQL files modules " + helpers_1.italic('(declarations for .graphql files)'),
80 package: 'graphql-codegen-typescript-graphql-files-modules',
81 value: 'typescript-graphql-files-modules',
82 available: function (tags) { return allOf(tags, types_1.Tags.browser, types_1.Tags.typescript); },
83 shouldBeSelected: function () { return false; }
84 },
85 {
86 name: "Introspection Fragment Matcher " + helpers_1.italic('(for Apollo Client)'),
87 package: 'graphql-codegen-fragment-matcher',
88 value: 'fragment-matcher',
89 available: hasTag(types_1.Tags.browser),
90 shouldBeSelected: function () { return false; }
91 }
92];
93function hasTag(tag) {
94 return function (tags) { return tags.includes(tag); };
95}
96function oneOf(list) {
97 var items = [];
98 for (var _i = 1; _i < arguments.length; _i++) {
99 items[_i - 1] = arguments[_i];
100 }
101 return list.some(function (i) { return items.includes(i); });
102}
103function noneOf(list) {
104 var items = [];
105 for (var _i = 1; _i < arguments.length; _i++) {
106 items[_i - 1] = arguments[_i];
107 }
108 return !list.some(function (i) { return items.includes(i); });
109}
110function allOf(list) {
111 var items = [];
112 for (var _i = 1; _i < arguments.length; _i++) {
113 items[_i - 1] = arguments[_i];
114 }
115 return items.every(function (i) { return list.includes(i); });
116}
117//# sourceMappingURL=plugins.js.map
\No newline at end of file