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',
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,
});
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: Object
enumeration: Object
apiId: yup.StringSchema
displayName: yup.StringSchema
value: yup.StringSchema
field: Object
apiId: yup.StringSchema
displayName: yup.StringSchema
model: Object
apiId: yup.StringSchema
displayName: yup.StringSchema
yup: Object
}