matcha-keystone-utils
Version:
Useful features for Keystone 6: validators, fields, componentBlocks...
43 lines (24 loc) • 1.57 kB
Markdown
# Keystone Utils
## Relationship required
Relationship field validator, raising a validation error when relationship doesn't have at least one object.
Like the `isRequired: true` on other fields.
### Usage
- Add `validateInput: relationRequiredValidateInput` in the hooks of the relationship field
### Example
See [testSchema/relationshipRequired/index.ts](https://github.com/matchawine/keystoneUtils/blob/main/testSchema/relationshipRequired/index.ts).
## Cascade delete
On a 1-to-1 or 1-to-many relationship:
- Delete children when parent is deleted
- Do not delete children when they are removed from parent relation
### Usage
- Use `beforeOperationDeleteOne({ ref: "<child ref>" })` for one-to-one relationships and `beforeOperationDeleteMany({ ref: "<child ref>" })` for one-to-many relationships
- The ref value must be the same as the ref config of the relationship field
- Add it as a before operation hook to relationship fields you want to cascade delete
### Example
See [testSchema/cascadeDelete/oneToOne.ts](https://github.com/matchawine/keystoneUtils/blob/main/testSchema/cascadeDelete/oneToOne.ts) and [testSchema/cascadeDelete/oneToMany.ts](https://github.com/matchawine/keystoneUtils/blob/main/testSchema/cascadeDelete/oneToMany.ts).
## History [Beta]
### Usage
- Add the History schema to your lists using `getHistoryEntity()`
- Add the `afterOperationSaveHistory` hook to any object you want to historize
### Example
See [testSchema/historized](https://github.com/matchawine/keystoneUtils/blob/main/testSchema/history/historized.ts)