Registry / database / iridium

iridium

JSON →
library7.2.5jsnpmunverified

Iridium is a lightweight, TypeScript-first ORM for MongoDB designed for power-users who want fine-grained control over database interactions. The current stable version is 7.2.5, with a low release cadence (last release in 2019). It provides a bare-bones abstraction over the MongoDB driver, supporting schema validation, pre/post hooks, and minimal magic. Compared to Mongoose, Iridium offers less built-in convenience but greater transparency and performance for advanced use cases. It ships with TypeScript definitions and requires Node.js >= 6. It is ideal for projects that need a thin wrapper without heavy opinionation.

npm install iridium
INSTALL
IMPORT
SIG · IRIDIUM
I
iridium
databasejavascriptv7.2.5
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Iridium
import { Iridium } from 'iridium'
import Iridium from 'iridium'
Iridium is a named export (not default). Common mistake to use default import.
Model
import { Model } from 'iridium'
import { Model } from 'iridium/core'
Model is exported from the main 'iridium' package. No subpath needed.
Document
import { Document } from 'iridium'
import { Document } from 'mongoose'
Iridium's Document is distinct from Mongoose's. Use directly from iridium.

Shows how to connect to MongoDB, define a model with schema, create a document, and save it using Iridium.

const { Iridium, Model, Document } = require('iridium'); const database = new Iridium({ host: process.env.MONGO_HOST || 'localhost', port: parseInt(process.env.MONGO_PORT ?? '27017'), database: process.env.MONGO_DB || 'test' }); interface ICar { make: string; model: string; year: number; } class Car extends Model<ICar> { static schema = { make: { type: String, required: true }, model: { type: String, required: true }, year: { type: Number, min: 1886 } }; static collection = 'cars'; } database.connect().then(async () => { const car = new Car({ make: 'Toyota', model: 'Corolla', year: 2020 }); await car.save(); console.log('Car saved:', car._id); });
Debug
Known issues
deprecatedIridium 7.x uses Bluebird promises, which are deprecated in favor of native Promises.
fix
Surround calls with Promise.resolve() or use async/await with Bluebird configuration.
affects: >=7.0.0 <8.0.0
breakingIn v7, the connection method changed from new Iridium(...).connect() to requiring an explicit .connect() call after instantiation.
fix
Always call database.connect() and await the promise before using models.
affects: >=7.0.0
gotchaIridium does not automatically pluralize collection names; you must set the static 'collection' property.
fix
Add static collection = 'your_collection_name'; to your model class.
affects: >=3.0.0
deprecatedThe static 'schema' property uses a deprecated format with type strings; newer versions prefer object constructors.
fix
Use Mongoose-like schema objects or check documentation for alternative formats.
affects: >=7.0.0
Errors
Common errors & fixes
TypeError: Iridium is not a constructor
Default import instead of named import when using ES modules or TypeScript.
fix
Use import { Iridium } from 'iridium' (named import) instead of import Iridium from 'iridium'.
Error: Cannot find module 'iridium'
Package not installed or incorrectly referenced.
fix
Run npm install iridium and ensure node_modules contains it.
Error: MongoError: Authentication failed.
Missing or incorrect MongoDB credentials.
fix
Provide username/password in the connection options (e.g., { username: 'user', password: 'pass' }).
Upgrade
Version history
7.2.5latest on npm
Audit
Dependencies
@types/bluebirdoptionalType definitions for Bluebird promises (peer dep)
@types/lodashoptionalType definitions for lodash utilities (peer dep)
@types/mongodboptionalType definitions for MongoDB driver (peer dep)
@types/chaioptionalType definitions for Chai assertions (peer dep, testing)
Agent activity
4 hits · last 30 days
node
4
Resources
iridium — npm install iridium · libregistry