UNPKG

gaia.db-lite

Version:
87 lines (80 loc) 2.82 kB
# Gaia.DB-Lite A lite version of Gaia.DB. # Examples ## Singlethreaded ```js const { Database } = require(`gaia.db-lite`); const db = new Database; (async () => { await db.setup(); db.set(0, "hi"); console.log(db.data, db.get("hi")); await db.save(); })(); ``` ## Multithreaded index.js ```js const { Master } = require(`${__dirname}/../src/index.js`); const master = new Master; setImmediate(async () => { await master.setup(); await master.fork(`${__dirname}/child.js`); }); ``` child.js ```js console.log(`[${process.pid}] Here!`); setImmediate(async () => { await $set(true, process.pid.toString()); console.log(`[${process.pid}] ${await $get(process.pid.toString())}`); await $save(); }); ``` # Methods ## Singlethreaded ### new Database(folderPath?: String = "./database") - folderPath Database's folder path. Create new database instance. ### Database#save(maxSizePerFile?: Number = 1024) -> Promise<Database#read()> - maxSizePerFile Max buffer size per db file in bytes. Save the database.<br /> Note: Stored in multiple files. ### Database#read() -> Promise\<this> Read the database files and refresh cache (database object). ### Database#setup() -> Promise\<this> Create the database folder if it's not exist and do other stuffs. ### Database#set(value: Any, path?: String) -> this Change path's value of database object. If path is a falsy value, it will change the database object and the value must be an object. ### Database#get(path?) -> Any Get path's value of database object. If path is a falsy value, it will returns the database object. ### Database#delete(path?) -> Any Unset path's value of database object. If path is a falsy value, it will set database object's value to a blank object. ### Database#data Database object. ### Database#folderPath Database's folder path. ## Multithreaded ### new Master(folderPath?: String = "./database", childFilePath?: String) - folderPath Database's folder path. - childFilePath Default child's file path for Master#spawn. Master class have same properties and methods with Database and [EventEmitter](https://npmjs.com/package/@evodev/eventemitter). ### Master#fork(childFilePath?: String) -> Promise<[ChildProcess](https://nodejs.org/api/child_process.html)> Fork a file to create new child. ### Child #### global.$set(value: Any, path?: String) -> Promise\<this> A copy of Database#set. #### global.$get(value: Any) -> Promise\<Any> A copy of Database#get. #### global.$delete(path?: String) -> Promise\<this> A copy of Database#delete. #### global.$save(maxSizePerFile?: Number = 1024) -> Promise\<this> A copy of Database#save. ##### global.$folderPath Database's folder path. # Support Us [PayPal](https://paypal.me/nekomaru76) # Developer Discord: Ganora Mirush#9524<br /> NPM: nekomaru76<br /> GitHub: NekoMaru76