Socket
Socket
Sign inDemoInstall

graphql-js-tree

Package Overview
Dependencies
1
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.6 to 0.1.7

1

lib/Models/ParserTree.d.ts

@@ -5,2 +5,3 @@ import { Directive, OperationType, FieldType } from "./Spec";

name: string;
id: string;
type: {

@@ -7,0 +8,0 @@ fieldType: FieldType;

9

lib/Parser/index.js

@@ -23,2 +23,3 @@ "use strict";

const ParserUtils_1 = require("./ParserUtils");
const shared_1 = require("../shared");
class Parser {

@@ -41,2 +42,3 @@ static findComments(schema) {

if ((0, graphql_1.isTypeSystemDefinitionNode)(d) || (0, graphql_1.isTypeSystemExtensionNode)(d)) {
const args = typeResolver_1.TypeResolver.resolveFieldsFromDefinition(d);
if ('name' in d) {

@@ -52,3 +54,3 @@ return Object.assign(Object.assign({ name: d.name.value, type: d.kind === 'DirectiveDefinition'

type: d.kind,
} }, ('description' in d && ((_a = d.description) === null || _a === void 0 ? void 0 : _a.value) ? { description: d.description.value } : {})), { interfaces: 'interfaces' in d && d.interfaces ? d.interfaces.map((i) => i.name.value) : [], directives: 'directives' in d && d.directives ? typeResolver_1.TypeResolver.iterateDirectives(d.directives) : [], args: typeResolver_1.TypeResolver.resolveFieldsFromDefinition(d) });
} }, ('description' in d && ((_a = d.description) === null || _a === void 0 ? void 0 : _a.value) ? { description: d.description.value } : {})), { interfaces: 'interfaces' in d && d.interfaces ? d.interfaces.map((i) => i.name.value) : [], directives: 'directives' in d && d.directives ? typeResolver_1.TypeResolver.iterateDirectives(d.directives) : [], args, id: (0, shared_1.generateNodeId)(d.name.value, d.kind, args) });
}

@@ -91,3 +93,3 @@ }

.filter((d) => !!d);
const comments = Parser.findComments(schema).map((description) => ({
const comments = Parser.findComments(schema).map((description) => (0, shared_1.createParserField)({
name: Spec_1.Helpers.Comment,

@@ -100,5 +102,2 @@ type: {

},
args: [],
directives: [],
interfaces: [],
data: {

@@ -105,0 +104,0 @@ type: Spec_1.Helpers.Comment,

@@ -6,2 +6,3 @@ "use strict";

const Spec_1 = require("../Models/Spec");
const shared_1 = require("../shared");
class TypeResolver {

@@ -27,7 +28,11 @@ static resolveSingleFieldType(n) {

static iterateObjectTypeFields(fields) {
return fields.map((n) => (Object.assign(Object.assign({ name: n.name.value }, (n.description ? { description: n.description.value } : {})), { args: n.arguments ? TypeResolver.iterateInputValueFields(n.arguments) : [], type: { fieldType: TypeResolver.resolveSingleFieldType(n.type) }, directives: n.directives ? TypeResolver.iterateDirectives(n.directives) : [], interfaces: [], data: {
type: Spec_1.TypeSystemDefinition.FieldDefinition,
} })));
return fields.map((n) => {
const args = n.arguments ? TypeResolver.iterateInputValueFields(n.arguments) : [];
return Object.assign(Object.assign({ name: n.name.value }, (n.description ? { description: n.description.value } : {})), { args, type: { fieldType: TypeResolver.resolveSingleFieldType(n.type) }, directives: n.directives ? TypeResolver.iterateDirectives(n.directives) : [], interfaces: [], data: {
type: Spec_1.TypeSystemDefinition.FieldDefinition,
}, id: (0, shared_1.generateNodeId)(n.name.value, Spec_1.TypeSystemDefinition.FieldDefinition, args) });
});
}
static resolveObjectField(f) {
const args = TypeResolver.resolveValue(f.value);
return [

@@ -44,3 +49,4 @@ {

directives: [],
args: TypeResolver.resolveValue(f.value),
args,
id: (0, shared_1.generateNodeId)(f.name.value, Spec_1.Instances.Argument, args),
},

@@ -51,2 +57,3 @@ ];

if (value.kind === 'ListValue') {
const args = value.values.map((f) => TypeResolver.resolveValue(f)).reduce((a, b) => [...a, ...b], []);
return [

@@ -57,3 +64,3 @@ {

interfaces: [],
args: value.values.map((f) => TypeResolver.resolveValue(f)).reduce((a, b) => [...a, ...b], []),
args,
data: {

@@ -68,2 +75,3 @@ type: value.kind,

},
id: (0, shared_1.generateNodeId)(value.kind, value.kind, args),
},

@@ -73,8 +81,9 @@ ];

if (value.kind === 'ObjectValue') {
const args = value.fields.map((f) => TypeResolver.resolveObjectField(f)).reduce((a, b) => [...a, ...b], []);
return [
{
args,
name: value.kind,
directives: [],
interfaces: [],
args: value.fields.map((f) => TypeResolver.resolveObjectField(f)).reduce((a, b) => [...a, ...b], []),
data: {

@@ -89,2 +98,3 @@ type: value.kind,

},
id: (0, shared_1.generateNodeId)(value.kind, value.kind, args),
},

@@ -109,2 +119,3 @@ ];

},
id: (0, shared_1.generateNodeId)(value.value, value.kind, []),
},

@@ -114,5 +125,6 @@ ];

if (value.kind in Spec_1.Value) {
const name = 'value' in value ? value.value.toString() : 'name' in value ? value.name.value : '';
return [
{
name: 'value' in value ? value.value.toString() : 'name' in value ? value.name.value : '',
name,
type: {

@@ -130,2 +142,3 @@ fieldType: {

},
id: (0, shared_1.generateNodeId)(name, value.kind, []),
},

@@ -137,36 +150,47 @@ ];

static iterateDirectives(directives) {
return directives.map((n) => ({
name: n.name.value,
type: {
fieldType: {
name: n.name.value,
type: Models_1.Options.name,
return directives.map((n) => {
const args = n.arguments ? TypeResolver.iterateArgumentFields(n.arguments) : [];
return {
name: n.name.value,
type: {
fieldType: {
name: n.name.value,
type: Models_1.Options.name,
},
},
},
directives: [],
interfaces: [],
data: {
type: Spec_1.Instances.Directive,
},
args: n.arguments ? TypeResolver.iterateArgumentFields(n.arguments) : [],
}));
directives: [],
interfaces: [],
data: {
type: Spec_1.Instances.Directive,
},
args,
id: (0, shared_1.generateNodeId)(n.name.value, Spec_1.Instances.Directive, args),
};
});
}
static iterateArgumentFields(fields) {
return fields.map((n) => ({
name: n.name.value,
type: {
fieldType: TypeResolver.resolveInputValueOptions(n.value, n.name.value),
},
data: {
type: Spec_1.Instances.Argument,
},
args: TypeResolver.resolveValue(n.value),
directives: [],
interfaces: [],
}));
return fields.map((n) => {
const args = TypeResolver.resolveValue(n.value);
return {
name: n.name.value,
type: {
fieldType: TypeResolver.resolveInputValueOptions(n.value, n.name.value),
},
data: {
type: Spec_1.Instances.Argument,
},
directives: [],
interfaces: [],
args,
id: (0, shared_1.generateNodeId)(n.name.value, Spec_1.Instances.Argument, args),
};
});
}
static iterateInputValueFields(fields) {
return fields.map((n) => (Object.assign(Object.assign({ name: n.name.value }, (n.description ? { description: n.description.value } : {})), { directives: n.directives ? TypeResolver.iterateDirectives(n.directives) : [], type: { fieldType: TypeResolver.resolveSingleFieldType(n.type) }, data: {
type: Spec_1.ValueDefinition.InputValueDefinition,
}, interfaces: [], args: n.defaultValue ? TypeResolver.resolveValue(n.defaultValue) : [] })));
return fields.map((n) => {
const args = n.defaultValue ? TypeResolver.resolveValue(n.defaultValue) : [];
return Object.assign(Object.assign({ name: n.name.value }, (n.description ? { description: n.description.value } : {})), { directives: n.directives ? TypeResolver.iterateDirectives(n.directives) : [], type: { fieldType: TypeResolver.resolveSingleFieldType(n.type) }, data: {
type: Spec_1.ValueDefinition.InputValueDefinition,
}, args, interfaces: [], id: (0, shared_1.generateNodeId)(n.name.value, Spec_1.ValueDefinition.InputValueDefinition, args) });
});
}

@@ -186,3 +210,3 @@ static resolveInterfaces(n) {

type: Spec_1.ValueDefinition.EnumValueDefinition,
} })));
}, id: (0, shared_1.generateNodeId)(v.name.value, Spec_1.ValueDefinition.EnumValueDefinition, []) })));
}

@@ -205,2 +229,3 @@ if (n.kind === 'ScalarTypeDefinition') {

},
id: (0, shared_1.generateNodeId)(t.name.value, Spec_1.TypeSystemDefinition.UnionMemberDefinition, []),
}));

@@ -225,3 +250,3 @@ }

type: Spec_1.ValueDefinition.EnumValueDefinition,
} })));
}, id: (0, shared_1.generateNodeId)(v.name.value, Spec_1.ValueDefinition.EnumValueDefinition, []) })));
}

@@ -238,2 +263,3 @@ if ('types' in n && n.types) {

},
id: (0, shared_1.generateNodeId)(t.name.value, Spec_1.TypeSystemDefinition.UnionMemberDefinition, []),
}));

@@ -240,0 +266,0 @@ }

@@ -1,4 +0,9 @@

import { FieldType } from "../Models";
import { AllTypes, FieldType, ParserField } from "../Models";
export declare const getTypeName: (f: FieldType) => string;
export declare const compileType: (f: FieldType) => string;
export declare const decompileType: (typeName: string) => FieldType;
export declare const generateNodeId: (name: string, dataType: AllTypes, args: ParserField[]) => string;
declare type NodeCreation = Pick<ParserField, 'data' | 'name' | 'type'> & Partial<Omit<ParserField, 'data' | 'name' | 'type'>>;
export declare const createParserField: (props: NodeCreation) => ParserField;
export declare const compareParserFields: (f1: ParserField) => (f2: ParserField) => boolean;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.decompileType = exports.compileType = exports.getTypeName = void 0;
exports.compareParserFields = exports.createParserField = exports.generateNodeId = exports.decompileType = exports.compileType = exports.getTypeName = void 0;
const Models_1 = require("../Models");

@@ -43,1 +43,23 @@ const getTypeName = (f) => {

exports.decompileType = decompileType;
const generateNodeId = (name, dataType, args) => {
const s = [name, dataType, args.map((a) => a.name)].join('-');
return cyrb53(s);
};
exports.generateNodeId = generateNodeId;
const cyrb53 = (str, seed = 0) => {
let h1 = 0xdeadbeef ^ seed, h2 = 0x41c6ce57 ^ seed;
for (let i = 0, ch; i < str.length; i++) {
ch = str.charCodeAt(i);
h1 = Math.imul(h1 ^ ch, 2654435761);
h2 = Math.imul(h2 ^ ch, 1597334677);
}
h1 = Math.imul(h1 ^ (h1 >>> 16), 2246822507) ^ Math.imul(h2 ^ (h2 >>> 13), 3266489909);
h2 = Math.imul(h2 ^ (h2 >>> 16), 2246822507) ^ Math.imul(h1 ^ (h1 >>> 13), 3266489909);
return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(16);
};
const createParserField = (props) => {
return Object.assign({ args: [], directives: [], interfaces: [], id: (0, exports.generateNodeId)(props.name, props.data.type, props.args || []) }, props);
};
exports.createParserField = createParserField;
const compareParserFields = (f1) => (f2) => f1.id === f2.id;
exports.compareParserFields = compareParserFields;
{
"name": "graphql-js-tree",
"version": "0.1.6",
"version": "0.1.7",
"private": false,

@@ -5,0 +5,0 @@ "license": "MIT",

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc