A Database using json files and tables, same usage like quickdb
npm i katdb
const { KatDataBase } = require('katdb')
const db = new KatDataBase({ //Create the a new database instance
path: './Database',
tables: ['main']
})
db.on('start', () => {
console.log('Database is ready!')
})
db.start() // let's start the class
The package has events for each function except getTable
, isValidTable
, insert
, ping
and has
.
- Structure of an event is:
db.on('function', (...args) => { /*any*/ })
- Example using
set
,get
and push:
db.on('set', (key, value, table) => { /*any*/ })
db.on('get', (key, table, res) => { /*any*/ })
db.on('push', (key, value, table, res) => { /*any*/ })
The args depend on the function but are the same, except that at the end it is always what the function returns
Sets a value from the provided key on the table (Default table: main
)
- Usage:
set (key: string, value: any, table: string)
- Example:
db.set('kingsbecats',{owner:true},'users') // Returns: {owner:true} (Promise)
db.set('kingsbecats.dev',true,'users') // Returns: true (Promise)
//Table: { "kingsbecats": { "owner": true, "dev": true } }
Gets a value from the provided key on the table (Default table: main
)
- Usage:
get (key: string, table: string)
- Example:
db.get('kingsbecats','users') // Returns: { "owner": true, "dev": true } (Promise)
db.get('kingsbecats.owner','users') // Returns: true (Promise)
db.get('kingsbecats.dev','users') // Returns: true (Promise)
Deletes a value from the provided key on the table (Default table: main
)
- Usage:
delete (key: string, table: string)
- Example:
//Before: { "kingsbecats": { "owner": true, "dev": true } }
db.delete('kingsbecats.dev','users')
//After: { "kingsbecats": { "owner": true } }
Pushs a value from the provided key on the table (Default table: main
)
- Usage:
push (key: string, value: any, table: string)
- Example:
db.push('kingsbecats.packages','katdb','users') // Returns: [ 'katdb' ] (Promise)
db.push('kingsbecats.packages','hybridcommands','users') // Returns: [ 'katdb', 'hybridcommands' ] (Promise)
Removes a value from the provided key on the table (Default table: main
)
- Usage:
remove (key: string, value: any, table: string)
- Example:
db.remove('kingsbecats.packages','katdb','users') // Returns: [ 'hybridcommands' ] (Promise)
db.remove('kingsbecats.packages','hybridcommands','users') // Returns: [ ] (Promise)
Removes and returns the first value from the provided key on the table (Default table: main
)
- Usage:
shift (key: string, table: string)
- Example:
db.get('kingsbecats.packages','users') // Returns: [ 'katdb', 'hybridcommands' ] (Promise)
db.shift('kingsbecats.packages','users') // Returns: 'katdb' (Promise)
db.get('kingsbecats.packages','users') // Returns: [ 'hybridcommands' ] (Promise)
Removes and returns the last value from the provided key on the table (Default table: main
)
- Usage:
pop (key: string, table: string)
- Example:
db.get('kingsbecats.packages','users') // Returns: [ 'katdb', 'hybridcommands' ] (Promise)
db.pop('kingsbecats.packages','users') // Returns: 'hybridcommands' (Promise)
db.get('kingsbecats.packages','users') // Returns: [ 'katdb' ] (Promise)
Adds at the begging the provided values from the provided key on the table (Default table: main
)
- Usage:
unshift (key: string, value: any, table: string)
- Example:
db.get('kingsbecats.packages','users') // Returns: [ 'hybridcommands' ] (Promise)
db.unshift('kingsbecats.packages','katdb','users') // Returns: [ 'katdb', 'hybridcommands' ] (Promise)
Adds a value from the provided key and table (Default table: main
)
- Usage:
add (key: string, value: number, table: string)
- Example:
db.add('kingsbecats.money',5,'users') // Returns: 5 (Promise)
Substracts a value from the provided key and table (Default table: main
)
- Usage:
sub (key: string, value: number, table: string)
- Example:
db.sub('kingsbecats.money',1,'users') // Returns: 4 (Promise)
Multiply a value from the provided key and table (Default table: main
)
- Usage:
multi (key: string, value: number, table: string)
- Example:
db.multi('kingsbecats.money',2,'users') // Returns: 8 (Promise)
Divide a value from the provided key and table (Default table: main
)
- Usage:
divide (key: string, value: number, table: string)
- Example:
db.divide('kingsbecats.money',2,'users') // Returns: 4 (Promise)
Verify if the key exists in provided table (Default table: main
)
- Usage:
has (key: string, table: string)
- Example:
db.has('kingsbecats','users') // Returns: true (Promise)
db.has('kingsbecats.owner','users') // Returns: false (Promise)
db.has('kingsbecats.dev','users') // Returns: true (Promise)
Gets the latency of the database
- Usage:
has ()
- Example:
db.ping() // Returns: 3 (Promise)
Gets all data in the provided table
- Usage:
getTable (name: string)
- Example:
db.getTable('users') // Returns: { 'kingsbecats' : { owner : true, money : 4, packages : [ ] } } (Promise)
Starts the database
- Usage:
start ()
- Example:
db.start() // Returns: void