@devticon-os/graphql-codegen-axios 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/enums.js +5 -1
- package/src/index.js +17 -6
- package/src/input.js +15 -13
- package/src/render.js +6 -2
package/package.json
CHANGED
package/src/enums.js
CHANGED
|
@@ -2,7 +2,11 @@ const { GraphQLEnumType } = require('graphql/type');
|
|
|
2
2
|
const findUsageEnums = (types, schema) => {
|
|
3
3
|
const enums = [];
|
|
4
4
|
for (let type of types) {
|
|
5
|
-
|
|
5
|
+
for (let e of findEnumInType(type, schema, enums)) {
|
|
6
|
+
if (!enums.includes(e)) {
|
|
7
|
+
enums.push(e);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
6
10
|
}
|
|
7
11
|
|
|
8
12
|
return enums.map(e => ({
|
package/src/index.js
CHANGED
|
@@ -4,7 +4,15 @@ const { findUsageInputs } = require('./input');
|
|
|
4
4
|
const { getVariablesFields } = require('./variables');
|
|
5
5
|
const { getResultsFields } = require('./results');
|
|
6
6
|
const { findScalars } = require('./scalar');
|
|
7
|
-
const {
|
|
7
|
+
const {
|
|
8
|
+
renderType,
|
|
9
|
+
renderQuery,
|
|
10
|
+
renderSdk,
|
|
11
|
+
renderScalars,
|
|
12
|
+
renderEnum,
|
|
13
|
+
renderHeader,
|
|
14
|
+
renderFragment,
|
|
15
|
+
} = require('./render');
|
|
8
16
|
const { findUsageEnums } = require('./enums');
|
|
9
17
|
const { findUsageFragments } = require('./fragments');
|
|
10
18
|
|
|
@@ -16,14 +24,12 @@ module.exports = {
|
|
|
16
24
|
try {
|
|
17
25
|
const functions = [];
|
|
18
26
|
const queries = [];
|
|
27
|
+
const inputs = findUsageInputs(documents, schema);
|
|
19
28
|
const fragments = findUsageFragments(documents, schema);
|
|
20
|
-
const types = [
|
|
29
|
+
const types = [];
|
|
21
30
|
const scalars = findScalars(schema);
|
|
22
31
|
|
|
23
32
|
for (let { document } of documents) {
|
|
24
|
-
const inputs = findUsageInputs(document, schema);
|
|
25
|
-
types.push(...inputs);
|
|
26
|
-
|
|
27
33
|
for (const definition of document.definitions) {
|
|
28
34
|
if (definition.kind !== 'OperationDefinition') {
|
|
29
35
|
continue;
|
|
@@ -76,7 +82,7 @@ module.exports = {
|
|
|
76
82
|
// }
|
|
77
83
|
}
|
|
78
84
|
|
|
79
|
-
const enums = findUsageEnums(types, schema);
|
|
85
|
+
const enums = findUsageEnums([...types, ...inputs, ...fragments], schema);
|
|
80
86
|
return [
|
|
81
87
|
renderHeader('HELPERS'),
|
|
82
88
|
helpers,
|
|
@@ -84,6 +90,11 @@ module.exports = {
|
|
|
84
90
|
renderScalars(scalars),
|
|
85
91
|
renderHeader('Enum'),
|
|
86
92
|
...enums.map(e => renderEnum(e)),
|
|
93
|
+
renderHeader('FRAGMENTS'),
|
|
94
|
+
...fragments.map(t => renderType(t)),
|
|
95
|
+
...fragments.map(f => renderFragment(f)),
|
|
96
|
+
renderHeader('INPUTS'),
|
|
97
|
+
...inputs.map(t => renderType(t)),
|
|
87
98
|
renderHeader('TYPES'),
|
|
88
99
|
...types.map(t => renderType(t)),
|
|
89
100
|
renderHeader('QUERIES'),
|
package/src/input.js
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
const { GraphQLInputObjectType, GraphQLNonNull, GraphQLList } = require('graphql/type');
|
|
2
2
|
const { getGraphqlTypeInfo } = require('./types');
|
|
3
|
-
const findUsageInputs = (
|
|
3
|
+
const findUsageInputs = (documents, schema) => {
|
|
4
4
|
const inputs = [];
|
|
5
|
-
for (let
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
inputs.
|
|
15
|
-
|
|
5
|
+
for (let { document } of documents) {
|
|
6
|
+
for (let definition of document.definitions) {
|
|
7
|
+
if (definition.kind !== 'OperationDefinition') {
|
|
8
|
+
continue;
|
|
9
|
+
}
|
|
10
|
+
for (const variableDefinition of definition.variableDefinitions) {
|
|
11
|
+
const type = unpackVariableType(variableDefinition.type);
|
|
12
|
+
const name = type.name.value;
|
|
13
|
+
const input = findInputInSchema(name, schema);
|
|
14
|
+
if (input && !inputs.includes(input)) {
|
|
15
|
+
inputs.push(input);
|
|
16
|
+
inputs.push(...findInputDependencies(input, schema, inputs));
|
|
17
|
+
}
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
|
-
return inputs.map(input => ({
|
|
21
|
+
return [...new Set(inputs)].map(input => ({
|
|
20
22
|
name: input.name,
|
|
21
23
|
fields: getInputFields(input),
|
|
22
24
|
}));
|
package/src/render.js
CHANGED
|
@@ -45,7 +45,7 @@ const renderQuery = ({ name, ast, allFragments }) => {
|
|
|
45
45
|
const raw = print(ast).replace('@firstOrFail', '').replace('@first', '').replace('@nonNullable', '');
|
|
46
46
|
|
|
47
47
|
let fragments = getUsedFragments(raw, allFragments);
|
|
48
|
-
fragments = [...new Set(fragments)].map(f =>
|
|
48
|
+
fragments = [...new Set(fragments)].map(f => `\${${f.name}FragmentQuery}`);
|
|
49
49
|
|
|
50
50
|
const gql = fragments.join('\n') + '\n' + raw;
|
|
51
51
|
return `const ${name}RawQuery = \`${gql}\`;`;
|
|
@@ -61,6 +61,10 @@ const renderEnum = e => {
|
|
|
61
61
|
str += `};`;
|
|
62
62
|
return str;
|
|
63
63
|
};
|
|
64
|
+
|
|
65
|
+
const renderFragment = fragment => {
|
|
66
|
+
return `export const ${fragment.name}FragmentQuery = \`${print(fragment.type)}\`;`;
|
|
67
|
+
};
|
|
64
68
|
const renderScalars = (scalars, map = {}) => {
|
|
65
69
|
map = {
|
|
66
70
|
String: 'string',
|
|
@@ -76,4 +80,4 @@ const renderScalars = (scalars, map = {}) => {
|
|
|
76
80
|
})
|
|
77
81
|
.join(',')}};`;
|
|
78
82
|
};
|
|
79
|
-
module.exports = { renderType, renderQuery, renderSdk, renderScalars, renderEnum, renderHeader };
|
|
83
|
+
module.exports = { renderType, renderQuery, renderSdk, renderScalars, renderEnum, renderHeader, renderFragment };
|