01 April 2022

Simulando uuid_generate_v4() en pg-mem para javascript

Como usar el generador de uuid para pg-mem

Miguel Angel Acevedo
Miguel Angel Acevedo @faultydev

pg-mem es un proyecto de codigo abierto para javascript (funciona en Node.js y el navegador) donde podemos simular un servidor de Postgres en memoria, bastante útil para unit test y test locales.

No viene sin sus propias limitation, por defecto, pg-mem no tiene implementado extensiones nativas.

La más común que uso es uuid_generate_v4 como valor por defecto devuelve un uuid para los id en mis tablas.

Si quieramos emular el mismo comportamiento aquí el código:

import { v4 } from "uuid";

db.registerExtension("uuid-ossp", (schema) => {
  schema.registerFunction({
    name: "uuid_generate_v4",
    returns: DataType.uuid,
    implementation: v4,
    impure: true,
  });
});

Más información en inglés en el GitHub del proyecto oficial: https://github.com/oguimbal/pg-mem/wiki/FAQ#-what-if-i-need-an-extension-like-uuid-ossp-

Categories

Node.js Typescript Simulador Test Postgres