0.1.4 • Published 5 months ago

@forge/kvs v0.1.4

Weekly downloads
-
License
SEE LICENSE IN LI...
Repository
-
Last release
5 months ago

Library for Forge KVS.

Usage example:

import kvs, { FilterConditons, WhereConditions, Sort, Filter } from "@forge/kvs";

await kvs.set<string>('example-key', 'bar');
await kvs.get<string>('example-key');
await kvs.delete('example-key');
await kvs.query().where('key', WhereConditions.beginsWith('example'))

type Employee = {
  surname: string;
  age: number;
  employmentyear: number;
  gender: string;
  nationality: string;
}

await kvs.entity<Employee>("employee").set('example-key', {
    surname: "Davis",
    age: 30,
    employmentyear: 2022,
    gender: "male",
    nationality: "Australian"
});
await kvs.entity<Employee>("employee").get('example-key');
await kvs.entity('employee').delete('example-key');
await kvs
  .entity<Employee>('employee')
  .query()
  .index('by-age')
  .where(WhereConditions.greaterThan(30))
  .filters(new Filter<Employee>().and('employmentyear', FilterConditions.equalTo(2025)))
  .sort(Sort.DESC)
  .getMany()

await kvs.setSecret('example-key', 'Hello world');
await kvs.getSecret('example-key');
await kvs.deleteSecret('example-key');

const conditions = new Filter<Employee>().and('lastName', FilterConditions.beginsWith('S'))
  .and('firstName', FilterConditions.beginsWith('blah'));

await kvs
   .transact()
   .set('key', 'value')
   .set('entityKey', 'value', {
     entityName: 'author',
       conditions: new Filter<Employee>().and('lastName', FilterConditions.beginsWith('S'))
         .and('firstName', FilterConditions.beginsWith('blah'))
   })
   .delete('some-key')
   .delete('another-key', { entityName: 'employee', conditions })
   .check('third-key', conditions)
   .check('fourth-key', conditions, { entityName: 'author' })
   .execute();