@graphql-inspector/validate-command 0.0.0-canary.485af9a → 0.0.0-canary.4c9888f
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/index.d.ts +10 -1
- package/{index.cjs.js → index.js} +103 -40
- package/{index.esm.js → index.mjs} +103 -40
- package/package.json +17 -7
- package/index.cjs.js.map +0 -1
- package/index.esm.js.map +0 -1
package/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { GlobalArgs, CommandFactory } from '@graphql-inspector/commands';
|
|
|
2
2
|
import { Source as DocumentSource } from '@graphql-tools/utils';
|
|
3
3
|
import { GraphQLSchema } from 'graphql';
|
|
4
4
|
export { CommandFactory };
|
|
5
|
-
export declare function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, }: {
|
|
5
|
+
export declare function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, onlyErrors, relativePaths, output, silent, }: {
|
|
6
6
|
schema: GraphQLSchema;
|
|
7
7
|
documents: DocumentSource[];
|
|
8
8
|
failOnDeprecated: boolean;
|
|
@@ -11,6 +11,10 @@ export declare function handler({ schema, documents, strictFragments, maxDepth,
|
|
|
11
11
|
keepClientFields: boolean;
|
|
12
12
|
maxDepth?: number;
|
|
13
13
|
filter?: string[];
|
|
14
|
+
onlyErrors?: boolean;
|
|
15
|
+
relativePaths?: boolean;
|
|
16
|
+
output?: string;
|
|
17
|
+
silent?: boolean;
|
|
14
18
|
}): void;
|
|
15
19
|
declare const _default: CommandFactory<{}, {
|
|
16
20
|
schema: string;
|
|
@@ -21,5 +25,10 @@ declare const _default: CommandFactory<{}, {
|
|
|
21
25
|
keepClientFields: boolean;
|
|
22
26
|
maxDepth?: number | undefined;
|
|
23
27
|
filter?: string[] | undefined;
|
|
28
|
+
onlyErrors?: boolean | undefined;
|
|
29
|
+
relativePaths?: boolean | undefined;
|
|
30
|
+
output?: string | undefined;
|
|
31
|
+
silent?: boolean | undefined;
|
|
32
|
+
ignore?: string[] | undefined;
|
|
24
33
|
} & GlobalArgs>;
|
|
25
34
|
export default _default;
|
|
@@ -6,52 +6,80 @@ const tslib = require('tslib');
|
|
|
6
6
|
const commands = require('@graphql-inspector/commands');
|
|
7
7
|
const logger = require('@graphql-inspector/logger');
|
|
8
8
|
const core = require('@graphql-inspector/core');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
const fs = require('fs');
|
|
9
11
|
const graphql = require('graphql');
|
|
10
12
|
|
|
11
|
-
function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, }) {
|
|
13
|
+
function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, onlyErrors, relativePaths, output, silent, }) {
|
|
12
14
|
let invalidDocuments = core.validate(schema, documents.map((doc) => new graphql.Source(graphql.print(doc.document), doc.location)), {
|
|
13
15
|
strictFragments,
|
|
14
16
|
maxDepth,
|
|
15
17
|
apollo,
|
|
16
18
|
keepClientFields,
|
|
17
19
|
});
|
|
18
|
-
if (filter) {
|
|
19
|
-
invalidDocuments = invalidDocuments.filter((doc) => filter.some((filepath) => doc.source.name.includes(filepath)));
|
|
20
|
-
}
|
|
21
20
|
if (!invalidDocuments.length) {
|
|
22
21
|
logger.Logger.success('All documents are valid');
|
|
23
22
|
}
|
|
24
23
|
else {
|
|
24
|
+
if (failOnDeprecated) {
|
|
25
|
+
invalidDocuments = moveDeprecatedToErrors(invalidDocuments);
|
|
26
|
+
}
|
|
27
|
+
if (relativePaths) {
|
|
28
|
+
invalidDocuments = useRelativePaths(invalidDocuments);
|
|
29
|
+
}
|
|
25
30
|
const errorsCount = countErrors(invalidDocuments);
|
|
26
31
|
const deprecated = countDeprecated(invalidDocuments);
|
|
32
|
+
const shouldFailProcess = errorsCount > 0;
|
|
27
33
|
if (errorsCount) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
logger.Logger.log(line);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
});
|
|
34
|
+
if (!silent) {
|
|
35
|
+
logger.Logger.log(`\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\n`);
|
|
36
|
+
}
|
|
37
|
+
printInvalidDocuments(useFilter(invalidDocuments, filter), 'errors', true, silent);
|
|
36
38
|
}
|
|
37
|
-
else
|
|
39
|
+
else {
|
|
38
40
|
logger.Logger.success('All documents are valid');
|
|
39
41
|
}
|
|
40
|
-
if (deprecated) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
if (deprecated && !onlyErrors) {
|
|
43
|
+
if (!silent) {
|
|
44
|
+
logger.Logger.info(`\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\n`);
|
|
45
|
+
}
|
|
46
|
+
printInvalidDocuments(useFilter(invalidDocuments, filter), 'deprecated', false, silent);
|
|
47
|
+
}
|
|
48
|
+
if (output) {
|
|
49
|
+
fs.writeFileSync(output, JSON.stringify({
|
|
50
|
+
status: !shouldFailProcess,
|
|
51
|
+
documents: useFilter(invalidDocuments, filter),
|
|
52
|
+
}, null, 2), {
|
|
53
|
+
encoding: 'utf-8',
|
|
48
54
|
});
|
|
49
55
|
}
|
|
50
|
-
if (
|
|
56
|
+
if (shouldFailProcess) {
|
|
51
57
|
process.exit(1);
|
|
52
58
|
}
|
|
53
59
|
}
|
|
54
60
|
}
|
|
61
|
+
function moveDeprecatedToErrors(docs) {
|
|
62
|
+
return docs.map((doc) => {
|
|
63
|
+
var _a, _b;
|
|
64
|
+
return ({
|
|
65
|
+
source: doc.source,
|
|
66
|
+
errors: [...((_a = doc.errors) !== null && _a !== void 0 ? _a : []), ...((_b = doc.deprecated) !== null && _b !== void 0 ? _b : [])],
|
|
67
|
+
deprecated: [],
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function useRelativePaths(docs) {
|
|
72
|
+
return docs.map((doc) => {
|
|
73
|
+
doc.source.name = path.relative(process.cwd(), doc.source.name);
|
|
74
|
+
return doc;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function useFilter(docs, patterns) {
|
|
78
|
+
if (!patterns || !patterns.length) {
|
|
79
|
+
return docs;
|
|
80
|
+
}
|
|
81
|
+
return docs.filter((doc) => patterns.some((filepath) => doc.source.name.includes(filepath)));
|
|
82
|
+
}
|
|
55
83
|
const index = commands.createCommand((api) => {
|
|
56
84
|
const { loaders } = api;
|
|
57
85
|
return {
|
|
@@ -98,7 +126,31 @@ const index = commands.createCommand((api) => {
|
|
|
98
126
|
filter: {
|
|
99
127
|
describe: 'Show results only from a list of files (or file)',
|
|
100
128
|
array: true,
|
|
101
|
-
type: 'string'
|
|
129
|
+
type: 'string',
|
|
130
|
+
},
|
|
131
|
+
ignore: {
|
|
132
|
+
describe: 'Ignore and do not load these files (supports glob)',
|
|
133
|
+
array: true,
|
|
134
|
+
type: 'string',
|
|
135
|
+
},
|
|
136
|
+
onlyErrors: {
|
|
137
|
+
describe: 'Show only errors',
|
|
138
|
+
type: 'boolean',
|
|
139
|
+
default: false,
|
|
140
|
+
},
|
|
141
|
+
relativePaths: {
|
|
142
|
+
describe: 'Show relative paths',
|
|
143
|
+
type: 'boolean',
|
|
144
|
+
default: false,
|
|
145
|
+
},
|
|
146
|
+
silent: {
|
|
147
|
+
describe: 'Do not print results',
|
|
148
|
+
type: 'boolean',
|
|
149
|
+
default: false,
|
|
150
|
+
},
|
|
151
|
+
output: {
|
|
152
|
+
describe: 'Output JSON file',
|
|
153
|
+
type: 'string',
|
|
102
154
|
},
|
|
103
155
|
});
|
|
104
156
|
},
|
|
@@ -114,12 +166,19 @@ const index = commands.createCommand((api) => {
|
|
|
114
166
|
const strictFragments = !args.noStrictFragments;
|
|
115
167
|
const keepClientFields = args.keepClientFields || false;
|
|
116
168
|
const failOnDeprecated = args.deprecated;
|
|
169
|
+
const output = args.output;
|
|
170
|
+
const silent = args.silent || false;
|
|
171
|
+
const relativePaths = args.relativePaths || false;
|
|
172
|
+
const onlyErrors = args.onlyErrors || false;
|
|
173
|
+
const ignore = args.ignore || [];
|
|
117
174
|
const schema = yield loaders.loadSchema(args.schema, {
|
|
118
175
|
headers,
|
|
119
176
|
token,
|
|
120
177
|
method,
|
|
121
178
|
}, apolloFederation, aws);
|
|
122
|
-
const documents = yield loaders.loadDocuments(args.documents
|
|
179
|
+
const documents = yield loaders.loadDocuments(args.documents, {
|
|
180
|
+
ignore,
|
|
181
|
+
});
|
|
123
182
|
return handler({
|
|
124
183
|
schema,
|
|
125
184
|
documents,
|
|
@@ -129,6 +188,10 @@ const index = commands.createCommand((api) => {
|
|
|
129
188
|
keepClientFields,
|
|
130
189
|
failOnDeprecated,
|
|
131
190
|
filter: args.filter,
|
|
191
|
+
silent,
|
|
192
|
+
output,
|
|
193
|
+
relativePaths,
|
|
194
|
+
onlyErrors,
|
|
132
195
|
});
|
|
133
196
|
});
|
|
134
197
|
},
|
|
@@ -147,29 +210,29 @@ function countDeprecated(invalidDocuments) {
|
|
|
147
210
|
}
|
|
148
211
|
return 0;
|
|
149
212
|
}
|
|
150
|
-
function
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
213
|
+
function printInvalidDocuments(invalidDocuments, listKey, isError = false, silent = false) {
|
|
214
|
+
if (silent) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
invalidDocuments.forEach((doc) => {
|
|
218
|
+
if (doc.errors.length) {
|
|
219
|
+
renderErrors(doc.source.name, doc[listKey], isError).forEach((line) => {
|
|
220
|
+
logger.Logger.log(line);
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
});
|
|
160
224
|
}
|
|
161
|
-
function
|
|
162
|
-
const
|
|
225
|
+
function renderErrors(sourceName, errors, isError = false) {
|
|
226
|
+
const errorsAsString = errors
|
|
163
227
|
.map((e) => ` - ${logger.bolderize(e.message)}`)
|
|
164
228
|
.join('\n');
|
|
165
229
|
return [
|
|
166
|
-
|
|
167
|
-
`in ${
|
|
168
|
-
|
|
230
|
+
isError ? logger.chalk.redBright('error') : logger.chalk.yellowBright('warn'),
|
|
231
|
+
`in ${sourceName}:\n\n`,
|
|
232
|
+
errorsAsString,
|
|
169
233
|
'\n\n',
|
|
170
234
|
];
|
|
171
235
|
}
|
|
172
236
|
|
|
173
237
|
exports.default = index;
|
|
174
238
|
exports.handler = handler;
|
|
175
|
-
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -2,52 +2,80 @@ import { __awaiter } from 'tslib';
|
|
|
2
2
|
import { createCommand, parseGlobalArgs } from '@graphql-inspector/commands';
|
|
3
3
|
import { Logger, chalk, bolderize } from '@graphql-inspector/logger';
|
|
4
4
|
import { validate } from '@graphql-inspector/core';
|
|
5
|
+
import { relative } from 'path';
|
|
6
|
+
import { writeFileSync } from 'fs';
|
|
5
7
|
import { Source, print } from 'graphql';
|
|
6
8
|
|
|
7
|
-
function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, }) {
|
|
9
|
+
function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, onlyErrors, relativePaths, output, silent, }) {
|
|
8
10
|
let invalidDocuments = validate(schema, documents.map((doc) => new Source(print(doc.document), doc.location)), {
|
|
9
11
|
strictFragments,
|
|
10
12
|
maxDepth,
|
|
11
13
|
apollo,
|
|
12
14
|
keepClientFields,
|
|
13
15
|
});
|
|
14
|
-
if (filter) {
|
|
15
|
-
invalidDocuments = invalidDocuments.filter((doc) => filter.some((filepath) => doc.source.name.includes(filepath)));
|
|
16
|
-
}
|
|
17
16
|
if (!invalidDocuments.length) {
|
|
18
17
|
Logger.success('All documents are valid');
|
|
19
18
|
}
|
|
20
19
|
else {
|
|
20
|
+
if (failOnDeprecated) {
|
|
21
|
+
invalidDocuments = moveDeprecatedToErrors(invalidDocuments);
|
|
22
|
+
}
|
|
23
|
+
if (relativePaths) {
|
|
24
|
+
invalidDocuments = useRelativePaths(invalidDocuments);
|
|
25
|
+
}
|
|
21
26
|
const errorsCount = countErrors(invalidDocuments);
|
|
22
27
|
const deprecated = countDeprecated(invalidDocuments);
|
|
28
|
+
const shouldFailProcess = errorsCount > 0;
|
|
23
29
|
if (errorsCount) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
Logger.log(line);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
});
|
|
30
|
+
if (!silent) {
|
|
31
|
+
Logger.log(`\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\n`);
|
|
32
|
+
}
|
|
33
|
+
printInvalidDocuments(useFilter(invalidDocuments, filter), 'errors', true, silent);
|
|
32
34
|
}
|
|
33
|
-
else
|
|
35
|
+
else {
|
|
34
36
|
Logger.success('All documents are valid');
|
|
35
37
|
}
|
|
36
|
-
if (deprecated) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
if (deprecated && !onlyErrors) {
|
|
39
|
+
if (!silent) {
|
|
40
|
+
Logger.info(`\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\n`);
|
|
41
|
+
}
|
|
42
|
+
printInvalidDocuments(useFilter(invalidDocuments, filter), 'deprecated', false, silent);
|
|
43
|
+
}
|
|
44
|
+
if (output) {
|
|
45
|
+
writeFileSync(output, JSON.stringify({
|
|
46
|
+
status: !shouldFailProcess,
|
|
47
|
+
documents: useFilter(invalidDocuments, filter),
|
|
48
|
+
}, null, 2), {
|
|
49
|
+
encoding: 'utf-8',
|
|
44
50
|
});
|
|
45
51
|
}
|
|
46
|
-
if (
|
|
52
|
+
if (shouldFailProcess) {
|
|
47
53
|
process.exit(1);
|
|
48
54
|
}
|
|
49
55
|
}
|
|
50
56
|
}
|
|
57
|
+
function moveDeprecatedToErrors(docs) {
|
|
58
|
+
return docs.map((doc) => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
return ({
|
|
61
|
+
source: doc.source,
|
|
62
|
+
errors: [...((_a = doc.errors) !== null && _a !== void 0 ? _a : []), ...((_b = doc.deprecated) !== null && _b !== void 0 ? _b : [])],
|
|
63
|
+
deprecated: [],
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function useRelativePaths(docs) {
|
|
68
|
+
return docs.map((doc) => {
|
|
69
|
+
doc.source.name = relative(process.cwd(), doc.source.name);
|
|
70
|
+
return doc;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function useFilter(docs, patterns) {
|
|
74
|
+
if (!patterns || !patterns.length) {
|
|
75
|
+
return docs;
|
|
76
|
+
}
|
|
77
|
+
return docs.filter((doc) => patterns.some((filepath) => doc.source.name.includes(filepath)));
|
|
78
|
+
}
|
|
51
79
|
const index = createCommand((api) => {
|
|
52
80
|
const { loaders } = api;
|
|
53
81
|
return {
|
|
@@ -94,7 +122,31 @@ const index = createCommand((api) => {
|
|
|
94
122
|
filter: {
|
|
95
123
|
describe: 'Show results only from a list of files (or file)',
|
|
96
124
|
array: true,
|
|
97
|
-
type: 'string'
|
|
125
|
+
type: 'string',
|
|
126
|
+
},
|
|
127
|
+
ignore: {
|
|
128
|
+
describe: 'Ignore and do not load these files (supports glob)',
|
|
129
|
+
array: true,
|
|
130
|
+
type: 'string',
|
|
131
|
+
},
|
|
132
|
+
onlyErrors: {
|
|
133
|
+
describe: 'Show only errors',
|
|
134
|
+
type: 'boolean',
|
|
135
|
+
default: false,
|
|
136
|
+
},
|
|
137
|
+
relativePaths: {
|
|
138
|
+
describe: 'Show relative paths',
|
|
139
|
+
type: 'boolean',
|
|
140
|
+
default: false,
|
|
141
|
+
},
|
|
142
|
+
silent: {
|
|
143
|
+
describe: 'Do not print results',
|
|
144
|
+
type: 'boolean',
|
|
145
|
+
default: false,
|
|
146
|
+
},
|
|
147
|
+
output: {
|
|
148
|
+
describe: 'Output JSON file',
|
|
149
|
+
type: 'string',
|
|
98
150
|
},
|
|
99
151
|
});
|
|
100
152
|
},
|
|
@@ -110,12 +162,19 @@ const index = createCommand((api) => {
|
|
|
110
162
|
const strictFragments = !args.noStrictFragments;
|
|
111
163
|
const keepClientFields = args.keepClientFields || false;
|
|
112
164
|
const failOnDeprecated = args.deprecated;
|
|
165
|
+
const output = args.output;
|
|
166
|
+
const silent = args.silent || false;
|
|
167
|
+
const relativePaths = args.relativePaths || false;
|
|
168
|
+
const onlyErrors = args.onlyErrors || false;
|
|
169
|
+
const ignore = args.ignore || [];
|
|
113
170
|
const schema = yield loaders.loadSchema(args.schema, {
|
|
114
171
|
headers,
|
|
115
172
|
token,
|
|
116
173
|
method,
|
|
117
174
|
}, apolloFederation, aws);
|
|
118
|
-
const documents = yield loaders.loadDocuments(args.documents
|
|
175
|
+
const documents = yield loaders.loadDocuments(args.documents, {
|
|
176
|
+
ignore,
|
|
177
|
+
});
|
|
119
178
|
return handler({
|
|
120
179
|
schema,
|
|
121
180
|
documents,
|
|
@@ -125,6 +184,10 @@ const index = createCommand((api) => {
|
|
|
125
184
|
keepClientFields,
|
|
126
185
|
failOnDeprecated,
|
|
127
186
|
filter: args.filter,
|
|
187
|
+
silent,
|
|
188
|
+
output,
|
|
189
|
+
relativePaths,
|
|
190
|
+
onlyErrors,
|
|
128
191
|
});
|
|
129
192
|
});
|
|
130
193
|
},
|
|
@@ -143,29 +206,29 @@ function countDeprecated(invalidDocuments) {
|
|
|
143
206
|
}
|
|
144
207
|
return 0;
|
|
145
208
|
}
|
|
146
|
-
function
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
209
|
+
function printInvalidDocuments(invalidDocuments, listKey, isError = false, silent = false) {
|
|
210
|
+
if (silent) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
invalidDocuments.forEach((doc) => {
|
|
214
|
+
if (doc.errors.length) {
|
|
215
|
+
renderErrors(doc.source.name, doc[listKey], isError).forEach((line) => {
|
|
216
|
+
Logger.log(line);
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
});
|
|
156
220
|
}
|
|
157
|
-
function
|
|
158
|
-
const
|
|
221
|
+
function renderErrors(sourceName, errors, isError = false) {
|
|
222
|
+
const errorsAsString = errors
|
|
159
223
|
.map((e) => ` - ${bolderize(e.message)}`)
|
|
160
224
|
.join('\n');
|
|
161
225
|
return [
|
|
162
|
-
|
|
163
|
-
`in ${
|
|
164
|
-
|
|
226
|
+
isError ? chalk.redBright('error') : chalk.yellowBright('warn'),
|
|
227
|
+
`in ${sourceName}:\n\n`,
|
|
228
|
+
errorsAsString,
|
|
165
229
|
'\n\n',
|
|
166
230
|
];
|
|
167
231
|
}
|
|
168
232
|
|
|
169
233
|
export default index;
|
|
170
234
|
export { handler };
|
|
171
|
-
//# sourceMappingURL=index.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphql-inspector/validate-command",
|
|
3
|
-
"version": "0.0.0-canary.
|
|
3
|
+
"version": "0.0.0-canary.4c9888f",
|
|
4
4
|
"description": "Validate Documents in GraphQL Inspector",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"peerDependencies": {
|
|
7
|
-
"graphql": "^0.13.0 || ^14.0.0 || ^15.0.0"
|
|
7
|
+
"graphql": "^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@graphql-inspector/commands": "0.0.0-canary.
|
|
11
|
-
"@graphql-inspector/core": "0.0.0-canary.
|
|
12
|
-
"@graphql-inspector/logger": "0.0.0-canary.
|
|
10
|
+
"@graphql-inspector/commands": "0.0.0-canary.4c9888f",
|
|
11
|
+
"@graphql-inspector/core": "0.0.0-canary.4c9888f",
|
|
12
|
+
"@graphql-inspector/logger": "0.0.0-canary.4c9888f",
|
|
13
13
|
"tslib": "^2.0.0"
|
|
14
14
|
},
|
|
15
15
|
"repository": {
|
|
@@ -29,10 +29,20 @@
|
|
|
29
29
|
"url": "https://github.com/kamilkisiela"
|
|
30
30
|
},
|
|
31
31
|
"license": "MIT",
|
|
32
|
-
"main": "index.
|
|
33
|
-
"module": "index.
|
|
32
|
+
"main": "index.js",
|
|
33
|
+
"module": "index.mjs",
|
|
34
34
|
"typings": "index.d.ts",
|
|
35
35
|
"typescript": {
|
|
36
36
|
"definition": "index.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"exports": {
|
|
39
|
+
".": {
|
|
40
|
+
"require": "./index.js",
|
|
41
|
+
"import": "./index.mjs"
|
|
42
|
+
},
|
|
43
|
+
"./*": {
|
|
44
|
+
"require": "./*.js",
|
|
45
|
+
"import": "./*.mjs"
|
|
46
|
+
}
|
|
37
47
|
}
|
|
38
48
|
}
|
package/index.cjs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../../dist/commands/validate/src/index.js"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { createCommand, parseGlobalArgs, } from '@graphql-inspector/commands';\nimport { Logger, bolderize, chalk } from '@graphql-inspector/logger';\nimport { validate as validateDocuments, } from '@graphql-inspector/core';\nimport { Source, print } from 'graphql';\nexport function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, }) {\n let invalidDocuments = validateDocuments(schema, documents.map((doc) => new Source(print(doc.document), doc.location)), {\n strictFragments,\n maxDepth,\n apollo,\n keepClientFields,\n });\n if (filter) {\n invalidDocuments = invalidDocuments.filter((doc) => filter.some((filepath) => doc.source.name.includes(filepath)));\n }\n if (!invalidDocuments.length) {\n Logger.success('All documents are valid');\n }\n else {\n const errorsCount = countErrors(invalidDocuments);\n const deprecated = countDeprecated(invalidDocuments);\n if (errorsCount) {\n Logger.log(`\\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\\n`);\n invalidDocuments.forEach((doc) => {\n if (doc.errors.length) {\n renderInvalidDocument(doc).forEach((line) => {\n Logger.log(line);\n });\n }\n });\n }\n else if (!failOnDeprecated) {\n Logger.success('All documents are valid');\n }\n if (deprecated) {\n Logger.info(`\\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\\n`);\n invalidDocuments.forEach((doc) => {\n if (doc.deprecated.length) {\n renderDeprecatedUsageInDocument(doc, failOnDeprecated).forEach((line) => {\n Logger.log(line);\n });\n }\n });\n }\n if (errorsCount || (deprecated && failOnDeprecated)) {\n process.exit(1);\n }\n }\n}\nexport default createCommand((api) => {\n const { loaders } = api;\n return {\n command: 'validate <documents> <schema>',\n describe: 'Validate Fragments and Operations',\n builder(yargs) {\n return yargs\n .positional('schema', {\n describe: 'Point to a schema',\n type: 'string',\n demandOption: true,\n })\n .positional('documents', {\n describe: 'Point to documents',\n type: 'string',\n demandOption: true,\n })\n .options({\n deprecated: {\n alias: 'd',\n describe: 'Fail on deprecated usage',\n type: 'boolean',\n default: false,\n },\n noStrictFragments: {\n describe: 'Do not fail on duplicated fragment names',\n type: 'boolean',\n default: false,\n },\n maxDepth: {\n describe: 'Fail on deep operations',\n type: 'number',\n },\n apollo: {\n describe: 'Support Apollo directives',\n type: 'boolean',\n default: false,\n },\n keepClientFields: {\n describe: 'Keeps the fields with @client, but removes @client directive from them',\n type: 'boolean',\n default: false,\n },\n filter: {\n describe: 'Show results only from a list of files (or file)',\n array: true,\n type: 'string'\n },\n });\n },\n handler(args) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const { headers, token } = parseGlobalArgs(args);\n const apollo = args.apollo || false;\n const aws = args.aws || false;\n const apolloFederation = args.federation || false;\n const method = ((_a = args.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) || 'POST';\n const maxDepth = args.maxDepth || undefined;\n const strictFragments = !args.noStrictFragments;\n const keepClientFields = args.keepClientFields || false;\n const failOnDeprecated = args.deprecated;\n const schema = yield loaders.loadSchema(args.schema, {\n headers,\n token,\n method,\n }, apolloFederation, aws);\n const documents = yield loaders.loadDocuments(args.documents);\n return handler({\n schema,\n documents,\n apollo,\n maxDepth,\n strictFragments,\n keepClientFields,\n failOnDeprecated,\n filter: args.filter,\n });\n });\n },\n };\n});\nfunction countErrors(invalidDocuments) {\n if (invalidDocuments.length) {\n return invalidDocuments.filter((doc) => doc.errors && doc.errors.length)\n .length;\n }\n return 0;\n}\nfunction countDeprecated(invalidDocuments) {\n if (invalidDocuments.length) {\n return invalidDocuments.filter((doc) => doc.deprecated && doc.deprecated.length).length;\n }\n return 0;\n}\nfunction renderInvalidDocument(invalidDoc) {\n const errors = invalidDoc.errors\n .map((e) => ` - ${bolderize(e.message)}`)\n .join('\\n');\n return [\n chalk.redBright('error'),\n `in ${invalidDoc.source.name}:\\n\\n`,\n errors,\n '\\n\\n',\n ];\n}\nfunction renderDeprecatedUsageInDocument(invalidDoc, isCritical = false) {\n const deprecated = invalidDoc.deprecated\n .map((e) => ` - ${bolderize(e.message)}`)\n .join('\\n');\n return [\n isCritical ? chalk.redBright('error') : chalk.yellowBright('warn'),\n `in ${invalidDoc.source.name}:\\n\\n`,\n deprecated,\n '\\n\\n',\n ];\n}\n//# sourceMappingURL=index.js.map"],"names":["validateDocuments","Source","print","Logger","createCommand","__awaiter","parseGlobalArgs","bolderize","chalk"],"mappings":"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"}
|
package/index.esm.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../dist/commands/validate/src/index.js"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { createCommand, parseGlobalArgs, } from '@graphql-inspector/commands';\nimport { Logger, bolderize, chalk } from '@graphql-inspector/logger';\nimport { validate as validateDocuments, } from '@graphql-inspector/core';\nimport { Source, print } from 'graphql';\nexport function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, }) {\n let invalidDocuments = validateDocuments(schema, documents.map((doc) => new Source(print(doc.document), doc.location)), {\n strictFragments,\n maxDepth,\n apollo,\n keepClientFields,\n });\n if (filter) {\n invalidDocuments = invalidDocuments.filter((doc) => filter.some((filepath) => doc.source.name.includes(filepath)));\n }\n if (!invalidDocuments.length) {\n Logger.success('All documents are valid');\n }\n else {\n const errorsCount = countErrors(invalidDocuments);\n const deprecated = countDeprecated(invalidDocuments);\n if (errorsCount) {\n Logger.log(`\\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\\n`);\n invalidDocuments.forEach((doc) => {\n if (doc.errors.length) {\n renderInvalidDocument(doc).forEach((line) => {\n Logger.log(line);\n });\n }\n });\n }\n else if (!failOnDeprecated) {\n Logger.success('All documents are valid');\n }\n if (deprecated) {\n Logger.info(`\\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\\n`);\n invalidDocuments.forEach((doc) => {\n if (doc.deprecated.length) {\n renderDeprecatedUsageInDocument(doc, failOnDeprecated).forEach((line) => {\n Logger.log(line);\n });\n }\n });\n }\n if (errorsCount || (deprecated && failOnDeprecated)) {\n process.exit(1);\n }\n }\n}\nexport default createCommand((api) => {\n const { loaders } = api;\n return {\n command: 'validate <documents> <schema>',\n describe: 'Validate Fragments and Operations',\n builder(yargs) {\n return yargs\n .positional('schema', {\n describe: 'Point to a schema',\n type: 'string',\n demandOption: true,\n })\n .positional('documents', {\n describe: 'Point to documents',\n type: 'string',\n demandOption: true,\n })\n .options({\n deprecated: {\n alias: 'd',\n describe: 'Fail on deprecated usage',\n type: 'boolean',\n default: false,\n },\n noStrictFragments: {\n describe: 'Do not fail on duplicated fragment names',\n type: 'boolean',\n default: false,\n },\n maxDepth: {\n describe: 'Fail on deep operations',\n type: 'number',\n },\n apollo: {\n describe: 'Support Apollo directives',\n type: 'boolean',\n default: false,\n },\n keepClientFields: {\n describe: 'Keeps the fields with @client, but removes @client directive from them',\n type: 'boolean',\n default: false,\n },\n filter: {\n describe: 'Show results only from a list of files (or file)',\n array: true,\n type: 'string'\n },\n });\n },\n handler(args) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const { headers, token } = parseGlobalArgs(args);\n const apollo = args.apollo || false;\n const aws = args.aws || false;\n const apolloFederation = args.federation || false;\n const method = ((_a = args.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) || 'POST';\n const maxDepth = args.maxDepth || undefined;\n const strictFragments = !args.noStrictFragments;\n const keepClientFields = args.keepClientFields || false;\n const failOnDeprecated = args.deprecated;\n const schema = yield loaders.loadSchema(args.schema, {\n headers,\n token,\n method,\n }, apolloFederation, aws);\n const documents = yield loaders.loadDocuments(args.documents);\n return handler({\n schema,\n documents,\n apollo,\n maxDepth,\n strictFragments,\n keepClientFields,\n failOnDeprecated,\n filter: args.filter,\n });\n });\n },\n };\n});\nfunction countErrors(invalidDocuments) {\n if (invalidDocuments.length) {\n return invalidDocuments.filter((doc) => doc.errors && doc.errors.length)\n .length;\n }\n return 0;\n}\nfunction countDeprecated(invalidDocuments) {\n if (invalidDocuments.length) {\n return invalidDocuments.filter((doc) => doc.deprecated && doc.deprecated.length).length;\n }\n return 0;\n}\nfunction renderInvalidDocument(invalidDoc) {\n const errors = invalidDoc.errors\n .map((e) => ` - ${bolderize(e.message)}`)\n .join('\\n');\n return [\n chalk.redBright('error'),\n `in ${invalidDoc.source.name}:\\n\\n`,\n errors,\n '\\n\\n',\n ];\n}\nfunction renderDeprecatedUsageInDocument(invalidDoc, isCritical = false) {\n const deprecated = invalidDoc.deprecated\n .map((e) => ` - ${bolderize(e.message)}`)\n .join('\\n');\n return [\n isCritical ? chalk.redBright('error') : chalk.yellowBright('warn'),\n `in ${invalidDoc.source.name}:\\n\\n`,\n deprecated,\n '\\n\\n',\n ];\n}\n//# sourceMappingURL=index.js.map"],"names":["validateDocuments"],"mappings":"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"}
|