This plugin allows you to easily add custom fields to Strapi.
npm install strapi-plugin-generic-custom-fields
---

A plugin for Strapi Headless CMS that provides a powerful and easy way to add custom fields to your Strapi entities.
To configure the Generic Custom Fields plugin, add your custom fields configuration to the plugin settings. Each custom field should follow this structure:
``typescript`
type Config = {
customFields: Array<{
name: string; // The unique name of the custom field.
description?: string; // A description for the custom field.
icon?: string; // One of the supported StrapiIcon names, e.g. 'Alien', 'Archive', 'ArrowDown', etc.
inputSize?: {
default: 4 | 6 | 8 | 12; // Default input size.
isResizable: boolean; // Whether the input size can be changed.
};
searchable?: boolean; // Whether the custom field is searchable (calls fetchItems with query).
fetchItems: ({ query: string | undefined }): { items: Item[] } | Promise<{ items: Item[] }>; // Function to fetch multiple items. This function is called on server-side.
fetchItem: ({ value: string }): Item | Promise
}>,
}
type Item = {
value: string; // Unique identifier for the item. This is used to store the value of the custom field.
label: string; // Label of the item.
icon?: {
src: string; // URL of the icon.
colorMask?: boolean; // Whether the icon should be masked with the color of the field.
}
};fetchItems
This configuration allows you to define custom fields that can fetch items either synchronously or asynchronously. The function is used to retrieve a list of items based on a query string that can be empty, while the fetchItem` function retrieves a single item based on its value.
Check Wiki page for Example Implementations