@graphql-inspector/validate-command
Advanced tools
Comparing version 2.0.1 to 2.1.0
103
index.cjs.js
'use strict'; | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
const tslib = require('tslib'); | ||
@@ -9,3 +11,45 @@ const commands = require('@graphql-inspector/commands'); | ||
function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, }) { | ||
const invalidDocuments = core.validate(schema, documents.map((doc) => new graphql.Source(graphql.print(doc.document), doc.location)), { | ||
strictFragments, | ||
maxDepth, | ||
apollo, | ||
keepClientFields, | ||
}); | ||
if (!invalidDocuments.length) { | ||
logger.Logger.success('All documents are valid'); | ||
} | ||
else { | ||
const errorsCount = countErrors(invalidDocuments); | ||
const deprecated = countDeprecated(invalidDocuments); | ||
if (errorsCount) { | ||
logger.Logger.log(`\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\n`); | ||
invalidDocuments.forEach((doc) => { | ||
if (doc.errors.length) { | ||
renderInvalidDocument(doc).forEach((line) => { | ||
logger.Logger.log(line); | ||
}); | ||
} | ||
}); | ||
} | ||
else if (!failOnDeprecated) { | ||
logger.Logger.success('All documents are valid'); | ||
} | ||
if (deprecated) { | ||
logger.Logger.info(`\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\n`); | ||
invalidDocuments.forEach((doc) => { | ||
if (doc.deprecated.length) { | ||
renderDeprecatedUsageInDocument(doc, failOnDeprecated).forEach((line) => { | ||
logger.Logger.log(line); | ||
}); | ||
} | ||
}); | ||
} | ||
if (errorsCount || (deprecated && failOnDeprecated)) { | ||
process.exit(1); | ||
} | ||
} | ||
} | ||
const index = commands.createCommand((api) => { | ||
const { loaders } = api; | ||
return { | ||
@@ -27,4 +71,4 @@ command: 'validate <documents> <schema>', | ||
.options({ | ||
d: { | ||
alias: 'deprecated', | ||
deprecated: { | ||
alias: 'd', | ||
describe: 'Fail on deprecated usage', | ||
@@ -57,4 +101,8 @@ type: 'boolean', | ||
return tslib.__awaiter(this, void 0, void 0, function* () { | ||
const { loaders } = api; | ||
const { headers, token } = commands.parseGlobalArgs(args); | ||
const apollo = args.apollo || false; | ||
const maxDepth = args.maxDepth || undefined; | ||
const strictFragments = !args.noStrictFragments; | ||
const keepClientFields = args.keepClientFields || false; | ||
const failOnDeprecated = args.deprecated; | ||
const schema = yield loaders.loadSchema(args.schema, { | ||
@@ -65,41 +113,11 @@ headers, | ||
const documents = yield loaders.loadDocuments(args.documents); | ||
const invalidDocuments = core.validate(schema, documents.map((doc) => new graphql.Source(graphql.print(doc.document), doc.location)), { | ||
strictFragments: !args.noStrictFragments, | ||
maxDepth: args.maxDepth || undefined, | ||
apollo: args.apollo || false, | ||
keepClientFields: args.keepClientFields || false, | ||
return handler({ | ||
schema, | ||
documents, | ||
apollo, | ||
maxDepth, | ||
strictFragments, | ||
keepClientFields, | ||
failOnDeprecated, | ||
}); | ||
if (!invalidDocuments.length) { | ||
logger.Logger.success('All documents are valid'); | ||
} | ||
else { | ||
const errorsCount = countErrors(invalidDocuments); | ||
const deprecated = countDeprecated(invalidDocuments); | ||
if (errorsCount) { | ||
logger.Logger.log(`\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\n`); | ||
invalidDocuments.forEach((doc) => { | ||
if (doc.errors.length) { | ||
renderInvalidDocument(doc).forEach((line) => { | ||
logger.Logger.log(line); | ||
}); | ||
} | ||
}); | ||
} | ||
else if (!args.deprecated) { | ||
logger.Logger.success('All documents are valid'); | ||
} | ||
if (deprecated) { | ||
logger.Logger.info(`\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\n`); | ||
invalidDocuments.forEach((doc) => { | ||
if (doc.deprecated.length) { | ||
renderDeprecatedUsageInDocument(doc, args.deprecated).forEach((line) => { | ||
logger.Logger.log(line); | ||
}); | ||
} | ||
}); | ||
} | ||
if (errorsCount || (deprecated && args.deprecated)) { | ||
process.exit(1); | ||
} | ||
} | ||
}); | ||
@@ -145,3 +163,4 @@ }, | ||
module.exports = index; | ||
exports.default = index; | ||
exports.handler = handler; | ||
//# sourceMappingURL=index.cjs.js.map |
@@ -1,11 +0,23 @@ | ||
import { GlobalArgs } from '@graphql-inspector/commands'; | ||
declare const _default: import("../../commands/src").CommandFactory<{}, { | ||
import { GlobalArgs, CommandFactory } from '@graphql-inspector/commands'; | ||
import { Source as DocumentSource } from '@graphql-tools/utils'; | ||
import { GraphQLSchema } from 'graphql'; | ||
export { CommandFactory }; | ||
export declare function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, }: { | ||
schema: GraphQLSchema; | ||
documents: DocumentSource[]; | ||
failOnDeprecated: boolean; | ||
strictFragments: boolean; | ||
apollo: boolean; | ||
keepClientFields: boolean; | ||
maxDepth?: number; | ||
}): void; | ||
declare const _default: CommandFactory<{}, { | ||
schema: string; | ||
documents: string; | ||
deprecated?: boolean | undefined; | ||
deprecated: boolean; | ||
noStrictFragments: boolean; | ||
apollo?: boolean | undefined; | ||
keepClientFields?: boolean | undefined; | ||
apollo: boolean; | ||
keepClientFields: boolean; | ||
maxDepth?: number | undefined; | ||
} & GlobalArgs>; | ||
export default _default; |
@@ -7,3 +7,45 @@ import { __awaiter } from 'tslib'; | ||
function handler({ schema, documents, strictFragments, maxDepth, apollo, keepClientFields, failOnDeprecated, }) { | ||
const invalidDocuments = validate(schema, documents.map((doc) => new Source(print(doc.document), doc.location)), { | ||
strictFragments, | ||
maxDepth, | ||
apollo, | ||
keepClientFields, | ||
}); | ||
if (!invalidDocuments.length) { | ||
Logger.success('All documents are valid'); | ||
} | ||
else { | ||
const errorsCount = countErrors(invalidDocuments); | ||
const deprecated = countDeprecated(invalidDocuments); | ||
if (errorsCount) { | ||
Logger.log(`\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\n`); | ||
invalidDocuments.forEach((doc) => { | ||
if (doc.errors.length) { | ||
renderInvalidDocument(doc).forEach((line) => { | ||
Logger.log(line); | ||
}); | ||
} | ||
}); | ||
} | ||
else if (!failOnDeprecated) { | ||
Logger.success('All documents are valid'); | ||
} | ||
if (deprecated) { | ||
Logger.info(`\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\n`); | ||
invalidDocuments.forEach((doc) => { | ||
if (doc.deprecated.length) { | ||
renderDeprecatedUsageInDocument(doc, failOnDeprecated).forEach((line) => { | ||
Logger.log(line); | ||
}); | ||
} | ||
}); | ||
} | ||
if (errorsCount || (deprecated && failOnDeprecated)) { | ||
process.exit(1); | ||
} | ||
} | ||
} | ||
const index = createCommand((api) => { | ||
const { loaders } = api; | ||
return { | ||
@@ -25,4 +67,4 @@ command: 'validate <documents> <schema>', | ||
.options({ | ||
d: { | ||
alias: 'deprecated', | ||
deprecated: { | ||
alias: 'd', | ||
describe: 'Fail on deprecated usage', | ||
@@ -55,4 +97,8 @@ type: 'boolean', | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const { loaders } = api; | ||
const { headers, token } = parseGlobalArgs(args); | ||
const apollo = args.apollo || false; | ||
const maxDepth = args.maxDepth || undefined; | ||
const strictFragments = !args.noStrictFragments; | ||
const keepClientFields = args.keepClientFields || false; | ||
const failOnDeprecated = args.deprecated; | ||
const schema = yield loaders.loadSchema(args.schema, { | ||
@@ -63,41 +109,11 @@ headers, | ||
const documents = yield loaders.loadDocuments(args.documents); | ||
const invalidDocuments = validate(schema, documents.map((doc) => new Source(print(doc.document), doc.location)), { | ||
strictFragments: !args.noStrictFragments, | ||
maxDepth: args.maxDepth || undefined, | ||
apollo: args.apollo || false, | ||
keepClientFields: args.keepClientFields || false, | ||
return handler({ | ||
schema, | ||
documents, | ||
apollo, | ||
maxDepth, | ||
strictFragments, | ||
keepClientFields, | ||
failOnDeprecated, | ||
}); | ||
if (!invalidDocuments.length) { | ||
Logger.success('All documents are valid'); | ||
} | ||
else { | ||
const errorsCount = countErrors(invalidDocuments); | ||
const deprecated = countDeprecated(invalidDocuments); | ||
if (errorsCount) { | ||
Logger.log(`\nDetected ${errorsCount} invalid document${errorsCount > 1 ? 's' : ''}:\n`); | ||
invalidDocuments.forEach((doc) => { | ||
if (doc.errors.length) { | ||
renderInvalidDocument(doc).forEach((line) => { | ||
Logger.log(line); | ||
}); | ||
} | ||
}); | ||
} | ||
else if (!args.deprecated) { | ||
Logger.success('All documents are valid'); | ||
} | ||
if (deprecated) { | ||
Logger.info(`\nDetected ${deprecated} document${deprecated > 1 ? 's' : ''} with deprecated fields:\n`); | ||
invalidDocuments.forEach((doc) => { | ||
if (doc.deprecated.length) { | ||
renderDeprecatedUsageInDocument(doc, args.deprecated).forEach((line) => { | ||
Logger.log(line); | ||
}); | ||
} | ||
}); | ||
} | ||
if (errorsCount || (deprecated && args.deprecated)) { | ||
process.exit(1); | ||
} | ||
} | ||
}); | ||
@@ -144,2 +160,3 @@ }, | ||
export default index; | ||
export { handler }; | ||
//# sourceMappingURL=index.esm.js.map |
{ | ||
"name": "@graphql-inspector/validate-command", | ||
"version": "2.0.1", | ||
"version": "2.1.0", | ||
"description": "Validate Documents in GraphQL Inspector", | ||
"sideEffects": false, | ||
"peerDependencies": { | ||
@@ -9,5 +10,5 @@ "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" | ||
"dependencies": { | ||
"@graphql-inspector/commands": "2.0.1", | ||
"@graphql-inspector/core": "2.0.1", | ||
"@graphql-inspector/logger": "2.0.1", | ||
"@graphql-inspector/commands": "2.1.0", | ||
"@graphql-inspector/core": "2.1.0", | ||
"@graphql-inspector/logger": "2.1.0", | ||
"tslib": "^2.0.0" | ||
@@ -14,0 +15,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
35202
335
+ Added@ardatan/aggregate-error@0.0.6(transitive)
+ Added@graphql-inspector/commands@2.1.0(transitive)
+ Added@graphql-inspector/config@2.1.0(transitive)
+ Added@graphql-inspector/core@2.1.0(transitive)
+ Added@graphql-inspector/loaders@2.1.0(transitive)
+ Added@graphql-inspector/logger@2.1.0(transitive)
+ Added@graphql-tools/load@6.2.8(transitive)
+ Added@graphql-tools/merge@6.2.178.3.1(transitive)
+ Added@graphql-tools/schema@8.5.1(transitive)
+ Added@graphql-tools/utils@6.2.47.10.08.0.28.9.0(transitive)
+ Addedcamel-case@4.1.2(transitive)
+ Addedglobby@11.0.3(transitive)
+ Addedp-limit@3.1.0(transitive)
+ Addedtslib@2.0.32.2.02.3.1(transitive)
+ Addedvalue-or-promise@1.0.11(transitive)
+ Addedyocto-queue@0.1.0(transitive)
- Removed@babel/runtime@7.25.6(transitive)
- Removed@graphql-inspector/commands@2.0.1(transitive)
- Removed@graphql-inspector/config@2.0.1(transitive)
- Removed@graphql-inspector/core@2.0.1(transitive)
- Removed@graphql-inspector/loaders@2.0.1(transitive)
- Removed@graphql-inspector/logger@2.0.1(transitive)
- Removed@graphql-toolkit/common@0.10.7(transitive)
- Removed@graphql-toolkit/core@0.10.7(transitive)
- Removed@graphql-toolkit/schema-merging@0.10.7(transitive)
- Removed@wry/equality@0.1.11(transitive)
- Removedaggregate-error@3.0.1(transitive)
- Removedapollo-link@1.2.14(transitive)
- Removedapollo-link-http-common@0.2.16(transitive)
- Removedapollo-upload-client@13.0.0(transitive)
- Removedapollo-utilities@1.3.4(transitive)
- Removedasynckit@0.4.0(transitive)
- Removedclean-stack@2.2.0(transitive)
- Removedcombined-stream@1.0.8(transitive)
- Removeddeepmerge@4.2.2(transitive)
- Removeddelayed-stream@1.0.0(transitive)
- Removeddeprecated-decorator@0.1.6(transitive)
- Removedextract-files@8.1.0(transitive)
- Removedfast-json-stable-stringify@2.1.0(transitive)
- Removedform-data@3.0.1(transitive)
- Removedglobby@11.0.0(transitive)
- Removedgraphql-tools@5.0.0(transitive)
- Removedindent-string@4.0.0(transitive)
- Removediterall@1.3.0(transitive)
- Removedlodash@4.17.15(transitive)
- Removedmime-db@1.52.0(transitive)
- Removedmime-types@2.1.35(transitive)
- Removednode-fetch@2.7.0(transitive)
- Removedregenerator-runtime@0.14.1(transitive)
- Removedtr46@0.0.3(transitive)
- Removedts-invariant@0.4.4(transitive)
- Removedtslib@1.11.2(transitive)
- Removeduuid@7.0.3(transitive)
- Removedwebidl-conversions@3.0.1(transitive)
- Removedwhatwg-url@5.0.0(transitive)
- Removedzen-observable@0.8.15(transitive)
- Removedzen-observable-ts@0.8.21(transitive)