Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
@ephys/graphql-non-null-directive
Advanced tools
Makes your GraphQL input optional, but not null!
It's common for Update mutations to accept a partial input, in order to do a partial update.
The simplest version of this is to simply omit the non-nullish (!
) operator in the input declaration, and not update anything that's nullish:
input UpdateUserInput {
firstName: String
lastName: String
country: String
# ...
}
The issue with this is that you lose the ability to say "if provided, this field cannot be null"
With a @nonNull
directive, you get this ability back:
input UpdateUserInput {
firstName: String @nonNull
lastName: String @nonNull
country: String
# ...
}
The @nonNull
directive cannot be used on Argument Definitions.
That is because, unlike in Object Inputs, GraphQL.js will always default optional arguments to null
.
Instead of:
# this does not work!
type Mutation {
updateUser(firstName: String @nonNull): User
}
Do:
# this works!
type Mutation {
updateUser(input: UpdateUserInput!): User
}
input UpdateUserInput {
firstName: String @nonNull
# ...
}
*NB: This library is built using graphql-tools and should be compatible with apollo
npm i @ephys/graphql-non-null-directive
directive @nonNull on INPUT_FIELD_DEFINITION
import { createNonNullDirective } from '@ephys/graphql-non-null-directive';
const server = new ApolloServer({
// ...
schemaDirectives: {
nonNull: createNonNullDirective({
// (optional) use this property to change the ID of the directive
directiveName: 'nonNull',
// (optional) use this property to configure how Input Errors are built
// Input Errors are thrown when a @nonNull input received null..
buildInputError: (message: string) => {
return new Error(message);
},
}),
},
});
FAQs
Adds a @nonNull directive for GraphQL
The npm package @ephys/graphql-non-null-directive receives a total of 5 weekly downloads. As such, @ephys/graphql-non-null-directive popularity was classified as not popular.
We found that @ephys/graphql-non-null-directive 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.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.