Registry / database / cassandra-orm4nest

cassandra-orm4nest

JSON →
library1.0.5jsnpmunverified

Cassandra ORM wrapper for NestJS (v1.0.5) based on `cassandra-driver`. Provides decorators (`@Entity`, `@Column`), module integration (`forRoot`/`forFeature`), dependency injection (`@InjectMapper`, `@InjectClient`), and a `BaseService` class with CRUD utilities. Differentiator: seamless NestJS module pattern compared to raw driver usage. Stable, low release cadence. Requires peer dependencies: @nestjs/common/core, cassandra-driver 4.x, reflect-metadata, rxjs.

npm install cassandra-orm4nest
INSTALL
IMPORT
SIG · CASSANDRA-ORM4NEST
C
cassandra-orm4nest
databasejavascriptv1.0.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.

Entity
import { Entity } from 'cassandra-orm4nest'
Decorator for entity definition. Must be used with @Column.
Column
import { Column } from 'cassandra-orm4nest'
Decorator for entity columns.
CassandraOrmModule
import { CassandraOrmModule } from 'cassandra-orm4nest'
Module for configuring and registering entities via forRoot/forFeature.
InjectMapper
import { InjectMapper } from 'cassandra-orm4nest'
const InjectMapper = require('cassandra-orm4nest').InjectMapper
Use for injecting mapper instances of entities. TypeScript recommended.
InjectClient
import { InjectClient } from 'cassandra-orm4nest'
Injects the Cassandra client instance.
BaseService
import { BaseService } from 'cassandra-orm4nest'
Base class providing CRUD methods. Extend to create services.

Shows NestJS module setup with CassandraOrmModule, entity definition with @Entity/@Column, and service injection with BaseService.

// app.module.ts import { Module } from '@nestjs/common'; import { CassandraOrmModule } from 'cassandra-orm4nest'; import { auth } from 'cassandra-driver'; import Device from './device.entity'; import DeviceService from './device.service'; import DeviceController from './device.controller'; @Module({ imports: [ CassandraOrmModule.forRoot({ contactPoints: ['localhost'], authProvider: new auth.PlainTextAuthProvider(process.env.CASSANDRA_USER ?? '', process.env.CASSANDRA_PASSWORD ?? ''), localDataCenter: 'datacenter1' }), CassandraOrmModule.forFeature([Device]) ], controllers: [DeviceController], providers: [DeviceService] }) export class AppModule {} // device.entity.ts import { Entity, Column } from 'cassandra-orm4nest'; @Entity({ keyspace: 'test', table: 'device' }) export default class Device { @Column({ name: 'serial_number' }) serialNumber: string; @Column({ name: 'create_time' }) createTime: Date; @Column() version: string; @Column({ name: 'is_online' }) isOnline: boolean; } // device.service.ts import { Injectable } from '@nestjs/common'; import { InjectMapper, InjectClient, BaseService } from 'cassandra-orm4nest'; import { Client } from 'cassandra-driver'; import Device from './device.entity'; @Injectable() export default class DeviceService extends BaseService<Device> { constructor( @InjectMapper(Device) private readonly mapper, @InjectClient() client: Client ) { super(client, mapper, Device); } }
Debug
Known issues
gotchaModelMapper's findAll and find methods have a default limit of 5000 results. Use findRealAll/findRealMany for unlimited results via eachRow.
fix
Switch to findRealAll/findRealMany for querying large datasets, or specify a higher limit in the mapper options.
affects: >=1.0.0
gotchaEntity keyspace and table names must match Cassandra schema exactly; column name mapping via @Column({name: '...'}) is required if property names differ.
fix
Ensure @Column name attribute matches Cassandra column names.
affects: >=1.0.0
Errors
Common errors & fixes
Cannot find module 'cassandra-orm4nest' or its corresponding type declarations.
Package not installed or missing TypeScript declaration files.
fix
Run 'npm install cassandra-orm4nest' and ensure tsconfig.json includes 'node_modules/@types'.
Invalid or unexpected token: @Entity
Decorators not enabled in TypeScript configuration.
fix
Set 'experimentalDecorators': true and 'emitDecoratorMetadata': true in tsconfig.json.
Mapper is not a function
Using @InjectMapper incorrectly or entity not registered via forFeature.
fix
Ensure entity is included in the array passed to CassandraOrmModule.forFeature() in the module.
Upgrade
Version history
1.0.5latest on npm
Audit
Dependencies
@nestjs/commonrequiredNestJS decorators and module system
@nestjs/corerequiredNestJS core module
cassandra-driverrequiredDataStax Cassandra driver for connectivity
reflect-metadatarequiredRequired for decorator metadata
rxjsrequiredReactive extensions used by NestJS
Agent activity
13 hits · last 30 days
node
10
OpenAI (training)
1
Resources
cassandra-orm4nest — npm install cassandra-orm4nest · libregistry