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

@teamnet/ic-orm

v1.2.8

Published

Database Management System for Total.js v4 and standalone

Readme

This ORM Works only for iCOne Systems. PLease, use Total.js Version for free.

Node Database Management System (ORM)


📚 Documentación Completa

Esta librería incluye documentación completa y detallada para desarrolladores:

🍃 MongoDB - Documentación Completa

Guías completas para trabajar con MongoDB:

🐘 PostgreSQL - Documentación Completa

Guías completas para trabajar con PostgreSQL:

Total: 8,735+ líneas de documentación profesional | 167 tests certificados


Initialization

  • installation $ npm i @teamnet/ic-orm
    • install MySQL: $ npm install mysql2
    • install PostgreSQL: $ npm install pg
    • install MongoDB: $ npm install mongodb
const dbms = require('@teamnet/ic-orm');

dbms.init([alias], connection_string);
// @alias {String} Optional, alias for connection string (default: 'default')
// @connection_string {String} A connection string to DB

// PostgreSQL
dbms.init('postgresql://user:pass@localhost:5432/dbname');
dbms.init('mypg', 'postgresql://user:pass@localhost:5432/dbname?max=10'); // with a name and connection pool

// MySQL & Maria DB
dbms.init('mysql://user:pass@localhost:3306/dbname');
dbms.init('mysql', 'mysql://user:pass@localhost:3306/dbname?max=10'); // with a name and connection pool

// MongoDB
dbms.init('mongodb://user:pass@localhost:27017/dbname');
dbms.init('mongo', 'mongodb://user:pass@localhost:27017/dbname?max=10'); // with a name and connection pool

// MongoDB with ReplicaSet
dbms.init('mongodb://user:pass@server1:27017,server2:27017,server3:27017/dbname?replicaSet=rs0&readPreference=secondaryPreferred&max=30');

// Total.js NoSQL embedded
dbms.init('nosql');
dbms.init('mynosql', 'nosql'); // with a name for more DB engines

// Total.js Table
dbms.init('table');
dbms.init('mytable', 'nosql'); // with a name for more DB engines

Usage

// Is a global method
var db = DBMS();

// Finds records
// A response: Array
// returns QueryBuilder
db.find('collection_table_name');
db.find('mypg/collection_table_name');
db.find('mynosql/collection_table_name');
db.find('mytable/collection_table_name');

// Finds the one record
// A response: Object
// returns QueryBuilder
db.one('collection_table_name');
db.one('mypg/collection_table_name');
db.one('mynosql/collection_table_name');
db.one('mytable/collection_table_name');

// Inserts a new record
// A response: Number
// returns QueryBuilder
db.insert('collection_table_name', document, [unique]);
db.insert('mypg/collection_table_name', document, [unique]);
db.insert('mynosql/collection_table_name', document, [unique]);
db.insert('mytable/collection_table_name', document, [unique]);

Connection Pooling

ICORM soporta connection pooling para PostgreSQL, MySQL y MongoDB. Los parámetros de configuración se pasan a través de la cadena de conexión.

PostgreSQL Connection Pool

// Formato: postgresql://user:pass@host:port/dbname?max=10&min=2&timeout=1000
// - max: número máximo de conexiones en el pool (por defecto: 8, recomendado: 8-20)
// - min: número mínimo de conexiones en el pool (por defecto: 2, recomendado: 2-4)
// - timeout: tiempo de inactividad en milisegundos (por defecto: 30000)
// - ssl: habilitar SSL (true/false)
// - pooling: habilitar pooling (por defecto: true)
// - native: usar bindings nativos (opcional)

dbms.init('postgresql://user:pass@localhost:5432/dbname?max=10&min=2&timeout=10000');

// Configuración optimizada para alta concurrencia (PostgreSQL v16):
dbms.init('postgresql://user:[email protected]:5432/pro_icone?max=8&min=2&timeout=10000');

Mejoras PostgreSQL v16:

  • ✅ Pool compartido con reconexión automática
  • ✅ Reintentos inteligentes con backoff exponencial
  • ✅ Manejadores de eventos del pool
  • ✅ Soporte para maxUses (previene memory leaks)
  • ✅ Compatible con PostgreSQL v16 y driver pg v8.x

MySQL Connection Pool

// Formato: mysql://user:pass@host:port/dbname?max=10
// - max: límite de conexiones (connectionLimit) (por defecto: 4)
// - ssl: habilitar SSL (true/false)

dbms.init('mysql://user:pass@localhost:3306/dbname?max=10');

MongoDB Connection Pool

// Formato: mongodb://user:pass@host:port/dbname?max=10
// - max o maxPoolSize: número máximo de conexiones en el pool (por defecto: 10)
// - Soporta todas las opciones estándar de MongoDB como replicaSet, readPreference, etc.

dbms.init('mongodb://user:pass@localhost:27017/dbname?max=10');

// Ejemplo con ReplicaSet
dbms.init('mongodb://user:pass@server1:27017,server2:27017,server3:27017/dbname?replicaSet=rs0&readPreference=secondaryPreferred&max=30');

Cierre de conexiones

Puedes cerrar explícitamente las conexiones para MongoDB y PostgreSQL:

MongoDB:

const mongo = require('./mongo');

// Cerrar la conexión explícitamente
await mongo.disconnect();

// O con callback
mongo.disconnect(function() {
  console.log('Conexión MongoDB cerrada');
});

PostgreSQL:

const pg = require('./pg');

// Cerrar todos los pools de PostgreSQL
await pg.disconnect();

// O con callback
pg.disconnect(function(err) {
  if (err) console.error('Error al cerrar pools:', err);
  else console.log('Pools de PostgreSQL cerrados');
});

En Total.js v4 (al cerrar la aplicación):

// definitions/events.js
ON('exit', async function() {
    console.log('Cerrando conexiones de base de datos...');
    await require('icorm/pg').disconnect();
    await require('icorm/mongo').disconnect();
    console.log('Conexiones cerradas correctamente');
});

📖 Más Información

Para aprender más sobre cómo usar icorm con MongoDB o PostgreSQL, consulta la documentación completa:

Incluye:

  • Guías de inicio rápido paso a paso
  • Connection pooling optimizado
  • Operaciones CRUD completas
  • Query Builder avanzado con todos los operadores
  • Operaciones matemáticas y SQL específicas
  • Transacciones, Scalar operations, BLOB storage
  • Ejemplos prácticos de sistemas completos
  • Solución de problemas y mejores prácticas

✅ Todo verificado con 167 tests certificados (59 MongoDB + 108 PostgreSQL)


👥 Autor y Mantenimiento

icorm v1.2.0 - Actualizado y mantenido por Teamnet.S.L.

  • 🔧 Mejoras de PostgreSQL v16 con connection pooling optimizado
  • 🔧 Soporte completo para MongoDB con ReplicaSets
  • 🔧 Reintentos automáticos con backoff exponencial
  • 🔧 Event handlers y gestión avanzada de pools
  • 📚 Documentación completa profesional (8,735+ líneas)
  • ✅ 167 tests certificados

Basado en Total.js DBMS - Framework original por Total.js Platform


📄 Licencia

Esta es una versión modificada y mejorada del ORM de Total.js, mantenida por Teamnet.S.L. para uso interno y de clientes.

Para la versión pública original, consulta: Total.js DBMS