@graphql-inspector/validate-command 2.8.1 → 3.0.2
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} +9 -2
- package/{index.esm.js → index.mjs} +9 -2
- package/package.json +16 -6
- package/index.cjs.js.map +0 -1
- package/index.esm.js.map +0 -1
package/index.d.ts
CHANGED
|
@@ -128,6 +128,11 @@ const index = commands.createCommand((api) => {
|
|
|
128
128
|
array: true,
|
|
129
129
|
type: 'string',
|
|
130
130
|
},
|
|
131
|
+
ignore: {
|
|
132
|
+
describe: 'Ignore and do not load these files (supports glob)',
|
|
133
|
+
array: true,
|
|
134
|
+
type: 'string',
|
|
135
|
+
},
|
|
131
136
|
onlyErrors: {
|
|
132
137
|
describe: 'Show only errors',
|
|
133
138
|
type: 'boolean',
|
|
@@ -165,12 +170,15 @@ const index = commands.createCommand((api) => {
|
|
|
165
170
|
const silent = args.silent || false;
|
|
166
171
|
const relativePaths = args.relativePaths || false;
|
|
167
172
|
const onlyErrors = args.onlyErrors || false;
|
|
173
|
+
const ignore = args.ignore || [];
|
|
168
174
|
const schema = yield loaders.loadSchema(args.schema, {
|
|
169
175
|
headers,
|
|
170
176
|
token,
|
|
171
177
|
method,
|
|
172
178
|
}, apolloFederation, aws);
|
|
173
|
-
const documents = yield loaders.loadDocuments(args.documents
|
|
179
|
+
const documents = yield loaders.loadDocuments(args.documents, {
|
|
180
|
+
ignore,
|
|
181
|
+
});
|
|
174
182
|
return handler({
|
|
175
183
|
schema,
|
|
176
184
|
documents,
|
|
@@ -228,4 +236,3 @@ function renderErrors(sourceName, errors, isError = false) {
|
|
|
228
236
|
|
|
229
237
|
exports.default = index;
|
|
230
238
|
exports.handler = handler;
|
|
231
|
-
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -124,6 +124,11 @@ const index = createCommand((api) => {
|
|
|
124
124
|
array: true,
|
|
125
125
|
type: 'string',
|
|
126
126
|
},
|
|
127
|
+
ignore: {
|
|
128
|
+
describe: 'Ignore and do not load these files (supports glob)',
|
|
129
|
+
array: true,
|
|
130
|
+
type: 'string',
|
|
131
|
+
},
|
|
127
132
|
onlyErrors: {
|
|
128
133
|
describe: 'Show only errors',
|
|
129
134
|
type: 'boolean',
|
|
@@ -161,12 +166,15 @@ const index = createCommand((api) => {
|
|
|
161
166
|
const silent = args.silent || false;
|
|
162
167
|
const relativePaths = args.relativePaths || false;
|
|
163
168
|
const onlyErrors = args.onlyErrors || false;
|
|
169
|
+
const ignore = args.ignore || [];
|
|
164
170
|
const schema = yield loaders.loadSchema(args.schema, {
|
|
165
171
|
headers,
|
|
166
172
|
token,
|
|
167
173
|
method,
|
|
168
174
|
}, apolloFederation, aws);
|
|
169
|
-
const documents = yield loaders.loadDocuments(args.documents
|
|
175
|
+
const documents = yield loaders.loadDocuments(args.documents, {
|
|
176
|
+
ignore,
|
|
177
|
+
});
|
|
170
178
|
return handler({
|
|
171
179
|
schema,
|
|
172
180
|
documents,
|
|
@@ -224,4 +232,3 @@ function renderErrors(sourceName, errors, isError = false) {
|
|
|
224
232
|
|
|
225
233
|
export default index;
|
|
226
234
|
export { handler };
|
|
227
|
-
//# sourceMappingURL=index.esm.js.map
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@graphql-inspector/validate-command",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.2",
|
|
4
4
|
"description": "Validate Documents in GraphQL Inspector",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"graphql": "^0.13.0 || ^14.0.0 || ^15.0.0"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@graphql-inspector/commands": "
|
|
11
|
-
"@graphql-inspector/core": "
|
|
12
|
-
"@graphql-inspector/logger": "
|
|
10
|
+
"@graphql-inspector/commands": "3.0.2",
|
|
11
|
+
"@graphql-inspector/core": "3.0.2",
|
|
12
|
+
"@graphql-inspector/logger": "3.0.2",
|
|
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 (!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(useFilter(invalidDocuments, filter), '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(useFilter(invalidDocuments, filter), 'deprecated', false, silent);\n }\n if (output) {\n writeFileSync(output, JSON.stringify({\n status: !shouldFailProcess,\n documents: useFilter(invalidDocuments, filter),\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}\nfunction useFilter(docs, patterns) {\n if (!patterns || !patterns.length) {\n return docs;\n }\n return docs.filter((doc) => patterns.some((filepath) => doc.source.name.includes(filepath)));\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 (!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(useFilter(invalidDocuments, filter), '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(useFilter(invalidDocuments, filter), 'deprecated', false, silent);\n }\n if (output) {\n writeFileSync(output, JSON.stringify({\n status: !shouldFailProcess,\n documents: useFilter(invalidDocuments, filter),\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}\nfunction useFilter(docs, patterns) {\n if (!patterns || !patterns.length) {\n return docs;\n }\n return docs.filter((doc) => patterns.some((filepath) => doc.source.name.includes(filepath)));\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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"}
|