npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@fran-834/gs-microservice-core

v1.0.27

Published

Core package for Node.js microservices by Galduria Software. Includes security, logging, validation, and error handling middlewares.

Readme

Galduria Software – Microservice Core

gs-microservice-core es un paquete opinionated para la creación de microservicios basados en Node.js y Express, utilizado como núcleo común en la plataforma Factal y en otros productos de Galduria Software.

Su objetivo es estandarizar y acelerar la creación de microservicios proporcionando una configuración base común que incluye middlewares, logging, validación, manejo de errores y utilidades transversales.

Este paquete está pensado principalmente para uso interno, aunque se publica de forma abierta para facilitar su reutilización, pruebas y despliegue.
No contiene claves, secretos, certificados ni lógica de negocio sensible.

License

ISC

Funcionalidades

gs-microservice-core proporciona un conjunto de funcionalidades comunes para microservicios Node.js/Express, con el objetivo de reducir código repetido y garantizar comportamientos homogéneos entre servicios.

Incluye, entre otras, las siguientes características:

  • Inicialización estandarizada de Express

    • Configuración base de la aplicación.
    • Preparado para ejecutarse detrás de proxies (Nginx, load balancers).
  • Logging centralizado y estructurado

    • Integración con Morgan y Winston.
    • Logs en formato JSON, pensados para sistemas como CloudWatch.
    • Inclusión automática de información de contexto (requestId, navegador, sistema operativo, tipo de dispositivo, etc.).
  • Identificador único de petición (requestId)

    • Asignación automática de un identificador único por request.
    • Permite trazar una petición a través de múltiples microservicios.
  • Detección de User-Agent

    • Identificación del navegador, sistema operativo y tipo de dispositivo (desktop, mobile, tablet).
    • Información accesible desde el contexto de la petición y disponible en los logs.
  • Validación de esquemas

    • Validación de payloads mediante esquemas JSON (AJV).
    • Respuestas de error homogéneas ante datos inválidos.
  • Autenticación basada en JWT

    • Middleware opcional para validación de tokens JWT.
    • Pensado para escenarios de microservicios detrás de un API Gateway.
  • Manejo centralizado de errores

    • Captura y normalización de errores no controlados.
    • Respuestas consistentes para el cliente.
  • Configuración de seguridad básica

    • Integración con Helmet.
    • Configuración de CORS.
  • Estructura común de respuestas

    • Respuestas HTTP homogéneas en todos los microservicios.
    • Facilita el consumo desde frontend y otros servicios.

Ejemplo de uso

A continuación se muestra un ejemplo básico de cómo inicializar un microservicio Express utilizando gs-microservice-core.

Ejemplo básico (sin autenticación)

import express from "express";
import { setupCoreMiddlewares, setupErrorHandler, standardResponse, logInfo } from "gs-microservice-core";

const app = express();

setupCoreMiddlewares(app, {
  gateway: false,
});

app.get("/health", (_req, res) => {
  standardResponse(res, 200, "Servicio operativo");
});

setupErrorHandler(app);

app.listen(3000, () => {
  logInfo("Servicio iniciado en el puerto 3000");
});

Ejemplo con autenticación

import express from "express";
import { setupCoreMiddlewares, setupErrorHandler, verifyToken, standardResponse } from "gs-microservice-core";

const app = express();

setupCoreMiddlewares(app, {
  jwtSecret: process.env.JWT_SECRET,
  gateway: false,
});

app.get("/secure", verifyToken, (req, res) => {
  standardResponse(res, 200, "Endpoint protegido", {
    userId: req.userId,
  });
});

setupErrorHandler(app);

app.listen(3000);

API

setupCoreMiddlewares(app, options)

Inicializa y configura los middlewares comunes del core en una aplicación Express.

Incluye, entre otros:

  • logging y trazabilidad
  • configuración de seguridad (Helmet)
  • configuración de CORS
  • parseo de JSON
  • contexto de petición
  • soporte para autenticación JWT

Firma

setupCoreMiddlewares(
  app: any,
  options?: {
    gateway?: boolean;
    jwtSecret?: string;
    helmetConfig?: HelmetOptions;
    corsOptions?: CorsOptions;
  }
): void

Parámetros

  • app
    Instancia de Express sobre la que se aplicarán los middlewares.

  • options.gateway (opcional, por defecto false)
    Indica si el microservicio actúa como API Gateway.

  • options.jwtSecret (opcional)
    Clave secreta para la validación de tokens JWT.

  • options.helmetConfig (opcional)
    Configuración personalizada para Helmet.

  • options.corsOptions (opcional)
    Configuración personalizada para CORS.


setupErrorHandler(app)

Configura el manejador global de errores de la aplicación.

Captura errores no controlados y los transforma en respuestas homogéneas.

Firma

setupErrorHandler(app: any): void

Debe ejecutarse después de definir todas las rutas.


verifyToken

Middleware para validar tokens JWT en rutas protegidas. El middleware añade la información del usuario autenticado al objeto req.

Firma

verifyToken(req: any, res: any, next: any): void

verifyPublicToken

Middleware para validar tokens públicos.

Firma

verifyPublicToken(req: any, res: any, next: any): void

standardResponse(res, code, message, data?, time?, invalidatedAt?, schema?, count?)

Envía una respuesta HTTP estandarizada.

Firma

standardResponse(
  res: any,
  code: number,
  message: string,
  data?: any,
  time?: number,
  invalidatedAt?: Date,
  schema?: any,
  count?: number
): void

validateSchema(schema, data)

Valida datos contra un esquema definido.

Firma

validateSchema(schema: any, data: any): boolean

Logging

Funciones de logging integradas en el core.

logInfo

logInfo(message: string): void

logError

logError(error: any): void

logDebug

logDebug(message: string): void

logOperation

Registra información de una operación a partir del contexto de la petición.

logOperation(req: any): void

Errores comunes

Clases y catálogos de errores reutilizables.

AppError;
commonErrors;
commonHTTPErrors;