nest-cassandra
TypeScript icon, indicating that this package has built-in type declarations

0.0.5 • Public • Published

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

Cassandra utilities module for NestJs.

Installation

$ npm install nest-cassandra

Usage

import { CassandraModule } from 'nest-cassandra'
import { auth } from 'cassandra-driver'

@Module({
  imports: [
    CassandraModule.forRoot({
      keyspace: 'test',
      contactPoints: ['127.0.0.1:9042'],
      localDataCenter: 'datacenter1',
      authProvider: new auth.PlainTextAuthProvider('user', 'pass');
    })
  ],
  providers: [...]
})
export class AppModule {}

Model

import { CassandraModel } from 'nest-cassandra'
import { types } from 'cassandra-driver'

export class LookupByHash extends CassandraModel {
  @CassandraPartitioningKey()
  @CassandraColumn(types.dataTypes.blob)
  @CassandraTransforms({
    fromJSON: hexStringToBlob,
    fromCassandra: hexBlobToString,
  })
  hash: string;

  @CassandraClusteringKey()
  @CassandraColumn(types.dataTypes.blob)
  archive: string;

  @CassandraColumn(types.dataTypes.timestamp)
  timestamp: Date;
}

Crud

import { Injectable } from '@nestjs/common';
import { CassandraRepository } from 'nest-cassandra'

export class LookupByHashRepository extends CassandraRepository<LookupByHash> {
  tableName = 'lookup_by_hash';
  modelName = 'LookupByHash';
  model = new LookupByHash();
}

@Injectable()
export class LookupByHashService {
  constructor(
    private readonly boundWitnessesByHashRepository: LookupByHashRepository,
  ) {}

  findByHash(hash: string) {
    return this.boundWitnessesByHashRepository.findOne({ hash });
  }

  page({ limit, cursor, ...query }) {
    return this.boundWitnessesByArchiveRepository.page(query, {
      limit,
      cursor,
    });
  }
}

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Stay in touch

License

Nest is MIT licensed.

Readme

Keywords

none

Package Sidebar

Install

npm i nest-cassandra

Weekly Downloads

2

Version

0.0.5

License

ISC

Unpacked Size

149 kB

Total Files

36

Last publish

Collaborators

  • locothedev
  • ernow
  • cicdmoralis
  • y0moo
  • capplequoppe
  • gerardo15
  • ivanontech