Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
graphql-type-json
Advanced tools
The graphql-type-json npm package provides a way to include JSON objects as a GraphQL type. It allows for the use of arbitrary JSON objects as input or output types within a GraphQL schema, which can be useful when the shape of the data is not known in advance or when a flexible data structure is required.
JSON scalar type for GraphQL schema
This feature allows you to use JSON as a scalar type in your GraphQL schema. You can define a field to accept or return a JSON object without specifying its structure in advance.
{"GraphQLJSON": require('graphql-type-json').GraphQLJSON}
Using JSON type in GraphQL queries and mutations
With graphql-type-json, you can define query and mutation fields that accept or return JSON objects. This is useful for endpoints that deal with dynamic or unstructured data.
{"typeDefs": "type Query { getArbitraryData: JSON } type Mutation { submitArbitraryData(data: JSON): Boolean }"}
This package includes a collection of custom GraphQL scalar types, including a JSON type similar to graphql-type-json. It offers a wider range of scalars for different use cases, such as Date, Time, DateTime, EmailAddress, and more.
Similar to graphql-type-json, graphql-tools-types provides additional types for GraphQL, including a JSON type. It also includes other types like Void, Regex, and more, which can be useful for extending the capabilities of a GraphQL schema.
JSON scalar types for GraphQL.js.
This package exports a JSON value scalar GraphQL.js type:
import GraphQLJSON from 'graphql-type-json';
It also exports a JSON object scalar type:
import { GraphQLJSONObject } from 'graphql-type-json';
These types can also be imported as follows using CommonJS:
const { GraphQLJSON, GraphQLJSONObject } = require('graphql-type-json');
GraphQLJSON
can represent any JSON-serializable value, including scalars, arrays, and objects. GraphQLJSONObject
represents specifically JSON objects, which covers many practical use cases for JSON scalars.
You can use this in a programmatically-constructed schema as with any other scalar type:
import GraphQLJSON, { GraphQLJSONObject } from 'graphql-type-json';
export default new GraphQLObjectType({
name: 'MyType',
fields: {
myValue: { type: GraphQLJSON },
myObject: { type: GraphQLJSONObject },
},
});
When using the SDL with GraphQL-tools, define GraphQLJSON
as the resolver for the appropriate scalar type in your schema:
import { makeExecutableSchema } from 'graphql-tools';
import GraphQLJSON, { GraphQLJSONObject } from 'graphql-type-json';
const typeDefs = `
scalar JSON
scalar JSONObject
type MyType {
myValue: JSON
myObject: JSONObject
}
# ...
`;
const resolvers = {
JSON: GraphQLJSON,
JSONObject: GraphQLJSONObject,
};
export default makeExecutableSchema({ typeDefs, resolvers });
FAQs
JSON scalar types for GraphQL.js
The npm package graphql-type-json receives a total of 697,881 weekly downloads. As such, graphql-type-json popularity was classified as popular.
We found that graphql-type-json demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.