# Plugins

Los Plugins proporcionan una forma de organizar el código de la aplicación al dividir la lógica del servidor en componentes más pequeños. Cada plugin puede manipular el servidor a través de la interfaz estándar del servidor, pero con la capacidad adicional de proteger ciertas propiedades. Por ejemplo, configurar una ruta de archivo en un plugin no afecta la ruta de archivo establecida en otro plugin.

Un plugin es un objeto con las siguientes propiedades:

  • register - (requerido) la función de registro con la función asíncrona de firma (servidor, opciones) donde:

    • server: el objeto del servidor con un servidor.realm específico del plugin.
    • options: cualquier opción pasada al plugin durante el registro a través de server.register().
  • name: (obligatorio) la cadena de nombre del plugin. El nombre se usa como una clave única. Los Plugins publicados (por ejemplo, publicados en el registro npm) deben usar el mismo nombre que el campo de nombre en su archivo 'package.json'. Los nombres deben ser únicos dentro de cada aplicación.

  • version: cadena de versión del plugin (opcional). La versión solo se usa de manera informativa para permitir que otros plugins descubran las versiones cargadas. La versión debe ser la misma que la especificada en el archivo 'package.json' del plugin.

  • multiple: (opcional) si es true, permite que el plugin se registre varias veces con el mismo servidor. Por defecto es false.

  • dependencies: (opcional) una cadena o una matriz de cadenas que indican una dependencia del plugin. Lo mismo que establecer dependencias a través de server.dependency().

  • requirements: objeto (opcional) que declara el rango semver compatible con el plugin para:

    • node runtime semver range string.
    • hapi framework semver range string.
  • once: (opcional) si es true, solo registrará el plugin una vez por servidor. Si se establece, anula la opción de una vez pasada a server.register (). El valor predeterminado es null.

const plugin = {
    name: 'test',
    version: '1.0.0',
    register: function (server, options) {

        server.route({
            method: 'GET',
            path: '/test',
            handler: function (request, h) {

                return 'ok';
            }
        })
    }
}

# Plugin Blipp

# Instalación

sudo npm i blipp -S

# Uso del plugin

const Blipp = require('blipp')

// Dentro de la funcion que inicia el server:
await server.register({
      plugin: Blipp,
      options: {
        showAuth: true
      }
    })