registerPlugin
La función registerPlugin
agrega un nuevo complemento a Scully. Ésta función tiene 5 parámetros:
registerPlugin(
type: PluginTypes,
name: string | symbol,
plugin: PluginFunction,
validator?: validator,
options?: { replaceExistingPlugin = false }
)
type: PluginTypes
- Indica el tipo de complemento.
- los tipos existentes son:
router
,render
,fileHandler
,allDone
, orrouteDiscoveryDone
.
name: string | symbol
- El nombre del complemento.
- Debe ser único para ese tipo de complemento.
- Para reemplazar un complemento existente, utiliza la opción
replaceExistingPlugin
.
plugin: promise | async function
- La función asincrónica del complemento.
- Contiene la lógica del complemento.
- Los tipos de complementos estan descritos en sus propias descripciones.
validator?: function(opcional)
- Una función validadora.
- Debe devolver un arreglo de errores.
- Si no existen errores, debe devolver el valor
false
. - Si devuelve un
string<array>
, esos strings son tomados como errores, y el proceso es abortado.
Ayuda: Agrega un color a los errores de validación usando los colores que exporta Scully.
Ejemplo de Validador:
import { yellow } from '@scullyio/scully';
// Omitted code ...
const validator = async (options) => {
const errors = [];
if (options.numberOfPages && typeof options.numberOfPages !== 'number') {
errors.push(
`my-custom-plugin numberOfPages should be a number, not a ${yellow(
typeof options.numberOfPages
)}`
);
}
return errors;
};
options?: {replaceExistingPlugin:boolean}(optional)
Un objeto options
puede ser utilizado para establecer opciones.
Hasta el momento, la única opción disponibles es replaceExistingPlugin
.