@graphql-inspector/validate-command 0.0.0-canary.02a53c5 → 0.0.0-canary.0f79587
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 +1 -0
- package/{index.cjs.js → index.js} +18 -8
- package/{index.esm.js → index.mjs} +18 -8
- package/package.json +17 -7
- package/index.cjs.js.map +0 -1
- package/index.esm.js.map +0 -1
package/index.d.ts
CHANGED
|
@@ -17,9 +17,6 @@ function handler({ schema, documents, strictFragments, maxDepth, apollo, keepCli
|
|
|
17
17
|
apollo,
|
|
18
18
|
keepClientFields,
|
|
19
19
|
});
|
|
20
|
-
if (filter) {
|
|
21
|
-
invalidDocuments = invalidDocuments.filter((doc) => filter.some((filepath) => doc.source.name.includes(filepath)));
|
|
22
|
-
}
|
|
23
20
|
if (!invalidDocuments.length) {
|
|
24
21
|
logger.Logger.success('All documents are valid');
|
|
25
22
|
}
|
|
@@ -37,7 +34,7 @@ function handler({ schema, documents, strictFragments, maxDepth, apollo, keepCli
|
|
|
37
34
|
if (!silent) {
|
|
38
35
|
logger.Logger.log(`\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\n`);
|
|
39
36
|
}
|
|
40
|
-
printInvalidDocuments(invalidDocuments, 'errors', true, silent);
|
|
37
|
+
printInvalidDocuments(useFilter(invalidDocuments, filter), 'errors', true, silent);
|
|
41
38
|
}
|
|
42
39
|
else {
|
|
43
40
|
logger.Logger.success('All documents are valid');
|
|
@@ -46,12 +43,12 @@ function handler({ schema, documents, strictFragments, maxDepth, apollo, keepCli
|
|
|
46
43
|
if (!silent) {
|
|
47
44
|
logger.Logger.info(`\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\n`);
|
|
48
45
|
}
|
|
49
|
-
printInvalidDocuments(invalidDocuments, 'deprecated', false, silent);
|
|
46
|
+
printInvalidDocuments(useFilter(invalidDocuments, filter), 'deprecated', false, silent);
|
|
50
47
|
}
|
|
51
48
|
if (output) {
|
|
52
49
|
fs.writeFileSync(output, JSON.stringify({
|
|
53
50
|
status: !shouldFailProcess,
|
|
54
|
-
documents: invalidDocuments,
|
|
51
|
+
documents: useFilter(invalidDocuments, filter),
|
|
55
52
|
}, null, 2), {
|
|
56
53
|
encoding: 'utf-8',
|
|
57
54
|
});
|
|
@@ -77,6 +74,12 @@ function useRelativePaths(docs) {
|
|
|
77
74
|
return doc;
|
|
78
75
|
});
|
|
79
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
|
+
}
|
|
80
83
|
const index = commands.createCommand((api) => {
|
|
81
84
|
const { loaders } = api;
|
|
82
85
|
return {
|
|
@@ -125,6 +128,11 @@ const index = commands.createCommand((api) => {
|
|
|
125
128
|
array: true,
|
|
126
129
|
type: 'string',
|
|
127
130
|
},
|
|
131
|
+
ignore: {
|
|
132
|
+
describe: 'Ignore and do not load these files (supports glob)',
|
|
133
|
+
array: true,
|
|
134
|
+
type: 'string',
|
|
135
|
+
},
|
|
128
136
|
onlyErrors: {
|
|
129
137
|
describe: 'Show only errors',
|
|
130
138
|
type: 'boolean',
|
|
@@ -162,12 +170,15 @@ const index = commands.createCommand((api) => {
|
|
|
162
170
|
const silent = args.silent || false;
|
|
163
171
|
const relativePaths = args.relativePaths || false;
|
|
164
172
|
const onlyErrors = args.onlyErrors || false;
|
|
173
|
+
const ignore = args.ignore || [];
|
|
165
174
|
const schema = yield loaders.loadSchema(args.schema, {
|
|
166
175
|
headers,
|
|
167
176
|
token,
|
|
168
177
|
method,
|
|
169
178
|
}, apolloFederation, aws);
|
|
170
|
-
const documents = yield loaders.loadDocuments(args.documents
|
|
179
|
+
const documents = yield loaders.loadDocuments(args.documents, {
|
|
180
|
+
ignore,
|
|
181
|
+
});
|
|
171
182
|
return handler({
|
|
172
183
|
schema,
|
|
173
184
|
documents,
|
|
@@ -225,4 +236,3 @@ function renderErrors(sourceName, errors, isError = false) {
|
|
|
225
236
|
|
|
226
237
|
exports.default = index;
|
|
227
238
|
exports.handler = handler;
|
|
228
|
-
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -13,9 +13,6 @@ function handler({ schema, documents, strictFragments, maxDepth, apollo, keepCli
|
|
|
13
13
|
apollo,
|
|
14
14
|
keepClientFields,
|
|
15
15
|
});
|
|
16
|
-
if (filter) {
|
|
17
|
-
invalidDocuments = invalidDocuments.filter((doc) => filter.some((filepath) => doc.source.name.includes(filepath)));
|
|
18
|
-
}
|
|
19
16
|
if (!invalidDocuments.length) {
|
|
20
17
|
Logger.success('All documents are valid');
|
|
21
18
|
}
|
|
@@ -33,7 +30,7 @@ function handler({ schema, documents, strictFragments, maxDepth, apollo, keepCli
|
|
|
33
30
|
if (!silent) {
|
|
34
31
|
Logger.log(`\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\n`);
|
|
35
32
|
}
|
|
36
|
-
printInvalidDocuments(invalidDocuments, 'errors', true, silent);
|
|
33
|
+
printInvalidDocuments(useFilter(invalidDocuments, filter), 'errors', true, silent);
|
|
37
34
|
}
|
|
38
35
|
else {
|
|
39
36
|
Logger.success('All documents are valid');
|
|
@@ -42,12 +39,12 @@ function handler({ schema, documents, strictFragments, maxDepth, apollo, keepCli
|
|
|
42
39
|
if (!silent) {
|
|
43
40
|
Logger.info(`\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\n`);
|
|
44
41
|
}
|
|
45
|
-
printInvalidDocuments(invalidDocuments, 'deprecated', false, silent);
|
|
42
|
+
printInvalidDocuments(useFilter(invalidDocuments, filter), 'deprecated', false, silent);
|
|
46
43
|
}
|
|
47
44
|
if (output) {
|
|
48
45
|
writeFileSync(output, JSON.stringify({
|
|
49
46
|
status: !shouldFailProcess,
|
|
50
|
-
documents: invalidDocuments,
|
|
47
|
+
documents: useFilter(invalidDocuments, filter),
|
|
51
48
|
}, null, 2), {
|
|
52
49
|
encoding: 'utf-8',
|
|
53
50
|
});
|
|
@@ -73,6 +70,12 @@ function useRelativePaths(docs) {
|
|
|
73
70
|
return doc;
|
|
74
71
|
});
|
|
75
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
|
+
}
|
|
76
79
|
const index = createCommand((api) => {
|
|
77
80
|
const { loaders } = api;
|
|
78
81
|
return {
|
|
@@ -121,6 +124,11 @@ const index = createCommand((api) => {
|
|
|
121
124
|
array: true,
|
|
122
125
|
type: 'string',
|
|
123
126
|
},
|
|
127
|
+
ignore: {
|
|
128
|
+
describe: 'Ignore and do not load these files (supports glob)',
|
|
129
|
+
array: true,
|
|
130
|
+
type: 'string',
|
|
131
|
+
},
|
|
124
132
|
onlyErrors: {
|
|
125
133
|
describe: 'Show only errors',
|
|
126
134
|
type: 'boolean',
|
|
@@ -158,12 +166,15 @@ const index = createCommand((api) => {
|
|
|
158
166
|
const silent = args.silent || false;
|
|
159
167
|
const relativePaths = args.relativePaths || false;
|
|
160
168
|
const onlyErrors = args.onlyErrors || false;
|
|
169
|
+
const ignore = args.ignore || [];
|
|
161
170
|
const schema = yield loaders.loadSchema(args.schema, {
|
|
162
171
|
headers,
|
|
163
172
|
token,
|
|
164
173
|
method,
|
|
165
174
|
}, apolloFederation, aws);
|
|
166
|
-
const documents = yield loaders.loadDocuments(args.documents
|
|
175
|
+
const documents = yield loaders.loadDocuments(args.documents, {
|
|
176
|
+
ignore,
|
|
177
|
+
});
|
|
167
178
|
return handler({
|
|
168
179
|
schema,
|
|
169
180
|
documents,
|
|
@@ -221,4 +232,3 @@ function renderErrors(sourceName, errors, isError = false) {
|
|
|
221
232
|
|
|
222
233
|
export default index;
|
|
223
234
|
export { handler };
|
|
224
|
-
//# 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.0f79587",
|
|
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.0f79587",
|
|
11
|
+
"@graphql-inspector/core": "0.0.0-canary.0f79587",
|
|
12
|
+
"@graphql-inspector/logger": "0.0.0-canary.0f79587",
|
|
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 { relative } from 'path';\nimport { writeFileSync } from 'fs';\nimport { Source, print } from 'graphql';\nexport function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, onlyErrors, relativePaths, output, silent, }) {\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 if (failOnDeprecated) {\n invalidDocuments = moveDeprecatedToErrors(invalidDocuments);\n }\n if (relativePaths) {\n invalidDocuments = useRelativePaths(invalidDocuments);\n }\n const errorsCount = countErrors(invalidDocuments);\n const deprecated = countDeprecated(invalidDocuments);\n const shouldFailProcess = errorsCount > 0;\n if (errorsCount) {\n if (!silent) {\n Logger.log(`\\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\\n`);\n }\n printInvalidDocuments(invalidDocuments, 'errors', true, silent);\n }\n else {\n Logger.success('All documents are valid');\n }\n if (deprecated && !onlyErrors) {\n if (!silent) {\n Logger.info(`\\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\\n`);\n }\n printInvalidDocuments(invalidDocuments, 'deprecated', false, silent);\n }\n if (output) {\n writeFileSync(output, JSON.stringify({\n status: !shouldFailProcess,\n documents: invalidDocuments,\n }, null, 2), {\n encoding: 'utf-8',\n });\n }\n if (shouldFailProcess) {\n process.exit(1);\n }\n }\n}\nfunction moveDeprecatedToErrors(docs) {\n return docs.map((doc) => {\n var _a, _b;\n return ({\n source: doc.source,\n errors: [...((_a = doc.errors) !== null && _a !== void 0 ? _a : []), ...((_b = doc.deprecated) !== null && _b !== void 0 ? _b : [])],\n deprecated: [],\n });\n });\n}\nfunction useRelativePaths(docs) {\n return docs.map((doc) => {\n doc.source.name = relative(process.cwd(), doc.source.name);\n return doc;\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 onlyErrors: {\n describe: 'Show only errors',\n type: 'boolean',\n default: false,\n },\n relativePaths: {\n describe: 'Show relative paths',\n type: 'boolean',\n default: false,\n },\n silent: {\n describe: 'Do not print results',\n type: 'boolean',\n default: false,\n },\n output: {\n describe: 'Output JSON file',\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 output = args.output;\n const silent = args.silent || false;\n const relativePaths = args.relativePaths || false;\n const onlyErrors = args.onlyErrors || false;\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 silent,\n output,\n relativePaths,\n onlyErrors,\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 printInvalidDocuments(invalidDocuments, listKey, isError = false, silent = false) {\n if (silent) {\n return;\n }\n invalidDocuments.forEach((doc) => {\n if (doc.errors.length) {\n renderErrors(doc.source.name, doc[listKey], isError).forEach((line) => {\n Logger.log(line);\n });\n }\n });\n}\nfunction renderErrors(sourceName, errors, isError = false) {\n const errorsAsString = errors\n .map((e) => ` - ${bolderize(e.message)}`)\n .join('\\n');\n return [\n isError ? chalk.redBright('error') : chalk.yellowBright('warn'),\n `in ${sourceName}:\\n\\n`,\n errorsAsString,\n '\\n\\n',\n ];\n}\n//# sourceMappingURL=index.js.map"],"names":["validateDocuments","Source","print","Logger","writeFileSync","relative","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 { relative } from 'path';\nimport { writeFileSync } from 'fs';\nimport { Source, print } from 'graphql';\nexport function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, filter, onlyErrors, relativePaths, output, silent, }) {\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 if (failOnDeprecated) {\n invalidDocuments = moveDeprecatedToErrors(invalidDocuments);\n }\n if (relativePaths) {\n invalidDocuments = useRelativePaths(invalidDocuments);\n }\n const errorsCount = countErrors(invalidDocuments);\n const deprecated = countDeprecated(invalidDocuments);\n const shouldFailProcess = errorsCount > 0;\n if (errorsCount) {\n if (!silent) {\n Logger.log(`\\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\\n`);\n }\n printInvalidDocuments(invalidDocuments, 'errors', true, silent);\n }\n else {\n Logger.success('All documents are valid');\n }\n if (deprecated && !onlyErrors) {\n if (!silent) {\n Logger.info(`\\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\\n`);\n }\n printInvalidDocuments(invalidDocuments, 'deprecated', false, silent);\n }\n if (output) {\n writeFileSync(output, JSON.stringify({\n status: !shouldFailProcess,\n documents: invalidDocuments,\n }, null, 2), {\n encoding: 'utf-8',\n });\n }\n if (shouldFailProcess) {\n process.exit(1);\n }\n }\n}\nfunction moveDeprecatedToErrors(docs) {\n return docs.map((doc) => {\n var _a, _b;\n return ({\n source: doc.source,\n errors: [...((_a = doc.errors) !== null && _a !== void 0 ? _a : []), ...((_b = doc.deprecated) !== null && _b !== void 0 ? _b : [])],\n deprecated: [],\n });\n });\n}\nfunction useRelativePaths(docs) {\n return docs.map((doc) => {\n doc.source.name = relative(process.cwd(), doc.source.name);\n return doc;\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 onlyErrors: {\n describe: 'Show only errors',\n type: 'boolean',\n default: false,\n },\n relativePaths: {\n describe: 'Show relative paths',\n type: 'boolean',\n default: false,\n },\n silent: {\n describe: 'Do not print results',\n type: 'boolean',\n default: false,\n },\n output: {\n describe: 'Output JSON file',\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 output = args.output;\n const silent = args.silent || false;\n const relativePaths = args.relativePaths || false;\n const onlyErrors = args.onlyErrors || false;\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 silent,\n output,\n relativePaths,\n onlyErrors,\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 printInvalidDocuments(invalidDocuments, listKey, isError = false, silent = false) {\n if (silent) {\n return;\n }\n invalidDocuments.forEach((doc) => {\n if (doc.errors.length) {\n renderErrors(doc.source.name, doc[listKey], isError).forEach((line) => {\n Logger.log(line);\n });\n }\n });\n}\nfunction renderErrors(sourceName, errors, isError = false) {\n const errorsAsString = errors\n .map((e) => ` - ${bolderize(e.message)}`)\n .join('\\n');\n return [\n isError ? chalk.redBright('error') : chalk.yellowBright('warn'),\n `in ${sourceName}:\\n\\n`,\n errorsAsString,\n '\\n\\n',\n ];\n}\n//# sourceMappingURL=index.js.map"],"names":["validateDocuments"],"mappings":"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"}
|