@graphcms/validation
v1.6.0
Published
This is the validation package for the GraphCMS server backend and the GraphCMS webapp frontend. The purpose of this package is to validate user inputs at the frontend and backend level.
Downloads
80
Readme
GraphCMS/validation
This is the validation package for the GraphCMS server backend and the GraphCMS webapp frontend. The purpose of this package is to validate user inputs at the frontend and backend level.
Publishing to npm
Publishing is automated using Changesets:
- On your feature branch when your are done with your changes, run
yarn changeset
to generate a changeset file, which will include a short desciption of the change and the generated version bump. - Commit the generated file, push, and open a PR. Check that the changeset is detected accordingly by github in the PR.
- Once the PR gets merged to master, a package versions PR gets opened automatically containing all the changelog changes and versions bumps.
- Once reviewed, merge it to trigger the npm pushes.
Usage
Let's say you want to check if some string is a valid model api id. Here is how you would do that:
import * as Validator from '@graphcms/validation';
const model = {
apiId: 'TestModel', // The api id of the model in question
displayName: 'TestModel',
description: null,
};
Validator.object()
.shape({
data: Validator.object().shape({
apiId: Validator.model.apiId,
displayName: Validator.model.displayName,
description: Validator.model.description,
}),
})
.validateSync(model, {
abortEarly: false,
});
// Validation SUCCESSFUL
If a validation is NOT successful, a ValidationError
will be thrown.
API
The export from this module looks like this:
import * as validation from '@graphcms/validation';
/* validation => */ {
validation: Object // The validation package object
enumeration: Object // Validators for various enumeration data
apiId: yup.StringSchema // Validator schema for enumeration api ids
displayName: yup.StringSchema // Validator schema for enumeration display names
value: yup.StringSchema // Validator schema for enumeration entries
field: Object // Validators for various field data
apiId: yup.StringSchema // Validator schema for field api ids
displayName: yup.StringSchema // Validator schema for field display names
model: Object // Validators for various model data
apiId: yup.StringSchema // Validator schema for model api ids
displayName: yup.StringSchema // Validator schema for model display names
yup: Object // The yup.js validation package
}