Socket
Book a DemoInstallSign in
Socket

@bluealba/microservices-toolkit

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bluealba/microservices-toolkit

Library that contains common elements used in microservices

2.0.1
latest
npmnpm
Version published
Weekly downloads
123
-43.32%
Maintainers
1
Weekly downloads
 
Created
Source

Microservices Toolkit

Little library with a few "common" functionality that we use in our microservices.

Installation

npm i @bluealba/microservices-toolkit

Use Cases

Data

Pool

Pool is a wrapper on pg-pool that provides the possibility to query centralizing error handling using retries and mapping responses

Pool provides:

  • getPool: returns the pg-pool object for direct use.
  • query: queries the database with the given statement and parameters logging any possible error before rethrowing the exception.
  • recoverQuery: same as query but with retries (configured by maxQueryRetries).
  • mappedQuery: same as recoverQuery but adding a mapping parameter that is used to map each value of the result set.

Code example

In order to create a connection pool you should use the following code.

const config = ...;
const toolkit = require("@bluealba/microservices-toolkit");

const pgPool = toolkit.buildPGClient(config);

We use the config object to configure the pool expecting the following attributes.

  {
    host: config.host,
    database: config.dbName,
    user: config.user,
    password: config.password,
    port: config.port,
    max: config.maxPoolSize,
    idleTimeoutMillis: config.idleTimeout,
    connectionTimeoutMillis: config.dbTimeout,
    maxUses: config.maxUses,
  }

Also, the configuration should have the following value to specify the amount of retries

maxQueryRetries  

Error

graphqlCustomErrorFn

Is a custom error handler for graphql that allows the user to provide errors with extensions that

Configure the custom error handling using:

const toolkit = require("@bluealba/microservices-toolkit");

const graphqlCustomErrorFn = toolkit.graphqlCustomErrorFn;

app.use(
  "/graphql",
  graphqlHTTP({
    schema,
    pretty: true,
    graphiql: true,
    customFormatErrorFn: graphqlCustomErrorFn(),
  })
);

Errors should be created adding an extension field like in this example:

class StatusCodeError extends Error {

  constructor(statusCode, errorCode, message) {
    super(message);
    this.extensions = { errorCode: errorCode, statusCode: statusCode, message: message };
  }

}

Middelware

errorHandler

Simple error handler for express that catches any loose error and turns it into a well-formed JSON error with a 500 status code.


const toolkit = require("@bluealba/microservices-toolkit");

const errorHandler =  toolkit.errorHandler;
app.use(errorHandler(logger));

gatewayAuth

Filter that adds an auth object to the request using the x-forwarded-user-* headers added by the proxy this object provides:

  • username:
  • displayName:
  • operations:
  • can: method that check if the user has the given operation
  • matchesLoggedUser: checks if the parameter is the username

Code example


const toolkit = require("@bluealba/microservices-toolkit");

const gatewayAuth =  toolkit.gatewayAuth; 
app.use(gatewayAuth());

getAuthHeaders


const toolkit = require("@bluealba/microservices-toolkit");
const getAuthHeaders = toolkit.getAuthHeaders;

const authHeaders = getAuthHeaders(req);

Performance

run

wraps any give call with a method that logs the time the method takes to run when called


const toolkit = require("@bluealba/microservices-toolkit");
const run = toolkit.run;

module.exports = run(getSegments, "getSegments");

SQL

Util class that provides methods to generate sql parts.

  • formatDate,
  • escapeQuotes,
  • wrapInQuotes,
  • wrapInDoublesQuotes,
  • generateAnyClause,
  • generateInClause,

Code example


const toolkit = require("@bluealba/microservices-toolkit");
const { generateAnyClause } = toolkit.sqlUtils;

Keywords

database

FAQs

Package last updated on 02 Jul 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.