Socket
Socket
Sign inDemoInstall

@graphql-inspector/validate-command

Package Overview
Dependencies
Maintainers
2
Versions
525
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@graphql-inspector/validate-command - npm Package Compare versions

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc