@ridi/cql-builder

1.0.4 • Public • Published

cql-builder

npm Build Status Greenkeeper badge

Simple Cassandra CQL Builder in Javascript

Installation

$ npm install --save @ridi/cql-builder

Usage

import { Insert, Select, Update, Delete, CqlBuilderError } from '@ridi/cql-builder';

const result = Select().table('test_table', 'test_keyspace').build();

// Returns...
// result.query = 'SELECT * FROM test_keyspace.test_table'
// result.params = []

Insert

Generate insert query

const cql = Insert()
  .table('test_table', 'test_keyspace')
  .value('column1', 1)
  .option('TTL', 86400)
  .option('TIMESTAMP', 12345678)
  .build();

// Returns...
// cql.query = 'INSERT INTO test_keyspace.test_table (column1) VALUES (?) USING TTL ? AND TIMESTAMP ?'
// cql.params = [1, 86400, 12345678]

Methods

  • InsertBuilder.table(table, keyspace)
  • InsertBuilder.value(field, value)
  • InsertBuilder.option(option, value)

Select

Generate select query

const cql = Select()
    .table('test_table', 'test_keyspace')
    .field(['column1', 'column2'])
    .field('column3')
    .where('key1 = ?', 1000)
    .where('key2 > ?', 2000)
    .limit(5000)
    .order('key1 DESC')
    .where('key3 IN (?, ?)', 3000, 4000)
    .option('TTL', 86400)
    .filtering()
    .build();

// Returns...
// cql.query = 'SELECT column1, column2, column3 FROM test_keyspace.test_table WHERE key1 = ? AND key2 > ? AND key3 IN (?, ?) ORDER BY key1 DESC LIMIT ? ALLOW FILTERING'
// cql.params = [1000, 2000, 3000, 4000, 5000]

Methods

  • SelectBuilder.table(table, keyspace)
  • SelectBuilder.field(field)
  • SelectBuilder.where(where, values)
  • SelectBuilder.order(order)
  • SelectBuilder.limit(limit)
  • SelectBuilder.filtering(filtering = true)

Update

Generate update query

const cql = Update()
  .table('test_table')
  .set('column1', 1)
  .where('key1 = ?', 'a')
  .option('TTL', 3000)
  .upsert(true)
  .build();

// Returns...
// cql.query = 'UPDATE test_table USING TTL ? SET column1 = ? WHERE key1 = ?'
// cql.params = [3000, 1, 'a']

Methods

  • UpdateBuilder.table(table, keyspace)
  • UpdateBuilder.set(field, value)
  • UpdateBuilder.where(where, values)
  • UpdateBuilder.upsert(upsert)
  • UpdateBuilder.option(option, value)

Delete

Generate delete query

const cql = Delete()
  .table('test_table')
  .where('key1 = ?', 'a')
  .field(['column1', 'column2'])
  .option('TIMESTAMP', 12345678)
  .build();

// Returns...
// cql.query = 'DELETE column1, column2 FROM test_table USING TIMESTAMP ? WHERE key1 = ?'
// cql.params = [12345678, 'a']

Methods

  • DeleteBuilder.table(table, keyspace)
  • DeleteBuilder.field(field)
  • DeleteBuilder.where(where, values)
  • DeleteBuilder.option(option, value)

Development

$ git clone git@github.com:ridi/cql-builder.git
$ cd cql-builder
$ npm install

Build

Webpack build using Babel (Not required in development.)

$ npm run build

Test

Tests using Jest

$ npm test

Package Sidebar

Install

npm i @ridi/cql-builder

Weekly Downloads

0

Version

1.0.4

License

MIT

Unpacked Size

18.3 kB

Total Files

9

Last publish

Collaborators

  • hw.choi
  • simulacre7
  • ys.yoon
  • lowfront
  • mando212
  • khinenw
  • davin.ahn
  • ridicorp
  • m0ai
  • ridi-junhee