Write your own
Each Plugin is nothing more than an
async function
that can perform customizations at either Agent level, Collection level, or both.export async function removeTimestamps(dataSource, collection, options) {
// ... call customization methods here
}
3 parameters are provided:
Name | Description |
---|---|
An object that allows customizing the whole agent. It has the same interface than the Agent you manipulate outside of Plugins | |
An object that allows customizing the collection that the Plugin was called from ( null if the Plugin was called on the Agent). It is the same object than is passed when you call customizeCollection | |
options | Options that are provided to the Plugin. There is no set structure for this parameter, as each Plugin will provide specific mandatory or optional options. |
When making a Plugin, you may want it to generalize to many different Collections.
This can be achieved by adopting different behavior depending on the
schema
of the Collection being targeted.Relevant documentation:
export async function removeTimestamps(dataSource, collection, options) {
for (const currentCollection of dataSource.collections) {
if (currentCollection.schema.fields.createdAt) {
currentCollection.removeField('createdAt');
}
if (currentCollection.schema.fields.updatedAt) {
currentCollection.removeField('updatedAt');
}
}
}
Last modified 1mo ago