Registry / database / qldb-serialiser

qldb-serialiser

JSON →
library2.0.10jsnpmunverified

An object-relational mapper (ORM) for Amazon QLDB (Quantum Ledger Database) in Node.js. Current stable version 2.0.10 provides serialization/deserialization of QLDB Ion documents to JavaScript objects with support for TypeScript types. Actively maintained with monthly releases. Differentiates by offering a declarative model definition, schema validation, and seamless integration with the AWS QLDB driver.

npm install qldb-serialiser
INSTALL
IMPORT
SIG · QLDB-SERIALISER
Q
qldb-serialiser
databasejavascriptv2.0.10
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.

QLDBModel
import { QLDBModel } from 'qldb-serialiser'
const QLDBModel = require('qldb-serialiser').QLDBModel
ESM-only via named export since v2.0.0
Model
import { Model } from 'qldb-serialiser'
import Model from 'qldb-serialiser'
Model is a named export, not default.
QLDBClient
import { QLDBClient } from 'qldb-serialiser/client'
import { QLDBClient } from 'qldb-serialiser'
QLDBClient is a subpath export since v2.0.0.
QLDBModelOptions
import type { QLDBModelOptions } from 'qldb-serialiser'
import { QLDBModelOptions } from 'qldb-serialiser'
Type imports are runtime-erasable; only import type when not used as value.

Demonstrates defining a QLDB model class, creating a record, and saving it to a QLDB ledger.

import { QLDBModel } from 'qldb-serialiser'; import { QLDBClient } from 'qldb-serialiser/client'; class User extends QLDBModel { static tableName = 'users'; static fields = { name: { type: String, required: true }, email: { type: String, required: true, unique: true }, }; } const client = new QLDBClient({ ledgerName: 'my-ledger' }); const user = new User({ name: 'Alice', email: 'alice@example.com' }); await user.save({ client }); console.log('User saved with ID:', user.id);
Debug
Known issues
breakingRequired 'aws-sdk' peer dependency must be v3 or above. v2 will cause runtime errors.
fix
Install aws-sdk@^3.0.0 as a peer dependency.
affects: >=2.0.0
breakingSubpath export 'qldb-serialiser/client' was introduced in v2.0.0. Previous versions exported QLDBClient from main entry.
fix
Use import { QLDBClient } from 'qldb-serialiser' for v1.x.
affects: <2.0.0
deprecatedClass decorator @model() is deprecated in v2.0.0. Use static class properties instead.
fix
Define tableName and fields as static properties on the class.
affects: >=2.0.0
gotchaFields with 'unique: true' are not enforced by QLDB; this ORM does not create indexes. Uniqueness must be handled manually.
fix
Avoid relying on unique constraints; implement application-level checks.
affects: *
Errors
Common errors & fixes
Cannot find module 'qldb-serialiser/client'
Using a version <2.0.0 which does not have subpath exports.
fix
Upgrade to v2.0.0 or later, or import QLDBClient from the main entry in v1.x.
TypeError: QLDBModel is not a constructor
Using default import instead of named import.
fix
Use import { QLDBModel } from 'qldb-serialiser'.
Invalid field type: [object Object]. Expected a constructor.
Passing a JavaScript object instead of a constructor (e.g., 'String', Number).
fix
Use built-in constructors like String, Number, Date for field types.
Upgrade
Version history
2.0.10latest on npm
Audit
Dependencies
aws-sdkrequiredRequired to interact with Amazon QLDB service
ion-jsrequiredNeeded for serializing/deserializing Ion data format
Agent activity
12 hits · last 30 days
node
10
Resources
qldb-serialiser — npm install qldb-serialiser · libregistry