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);
}
}
Errors
Common errors & fixes
Cannot find module 'cassandra-orm4nest' or its corresponding type declarations.
Package not installed or missing TypeScript declaration files.
fixRun 'npm install cassandra-orm4nest' and ensure tsconfig.json includes 'node_modules/@types'.
Invalid or unexpected token: @Entity
Decorators not enabled in TypeScript configuration.
fixSet 'experimentalDecorators': true and 'emitDecoratorMetadata': true in tsconfig.json.
Mapper is not a function
Using @InjectMapper incorrectly or entity not registered via forFeature.
fixEnsure entity is included in the array passed to CassandraOrmModule.forFeature() in the module.
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