https://github.com/sectly/suchdb
SuchDB: An simple, dependency free, require & go node.js and browser database
https://github.com/sectly/suchdb
browser data database db json node node-js nodejs npm npm-package
Last synced: 4 months ago
JSON representation
SuchDB: An simple, dependency free, require & go node.js and browser database
- Host: GitHub
- URL: https://github.com/sectly/suchdb
- Owner: Sectly
- License: mpl-2.0
- Created: 2022-11-23T08:54:24.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-10T13:36:33.000Z (over 2 years ago)
- Last Synced: 2024-12-01T20:48:32.759Z (over 1 year ago)
- Topics: browser, data, database, db, json, node, node-js, nodejs, npm, npm-package
- Language: JavaScript
- Homepage:
- Size: 117 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SuchDB: An simple, dependency free, require & go node.js and browser database
#### Install: `npm i @sectly-studios/suchdb` | (https://www.npmjs.com/package/@sectly-studios/suchdb)
## Quick Start:
```js
let SuchDB = require("@sectly-studios/suchdb");
let database = new SuchDB.SuchDB({}); // Make an new database instance
database.set("foo", "bar") // Lets add some data
database.get("foo") // Lets grab the data, It should return: bar
database.set("foo", { bar: [1, 2, 3, 4], baz: { name: "SuchDB" } }) // SuchDB Supports: Strings, Numbers, Objects And Arrays As Values
database.get("foo") // { bar: [1, 2, 3, 4], baz: { name: "SuchDB" } })
database.get("foo").bar // [1, 2, 3, 4]
database.get("foo").bar[0] // 1
database.get("foo").baz // { name: "SuchDB" }
database.get("foo").baz["name"] // SuchDB
```
## Docs:
### Table of Contents
* [exports][1]
* [set][2]
* [Parameters][3]
* [get][4]
* [Parameters][5]
* [remove][6]
* [Parameters][7]
* [clear][8]
* [keys][9]
* [values][10]
* [entries][11]
* [forEach][12]
* [Parameters][13]
* [size][14]
* [isEmpty][15]
* [has][16]
* [Parameters][17]
* [lookup][18]
* [Parameters][19]
* [sort][20]
* [Parameters][21]
* [save][22]
* [load][23]
* [raw][24]
* [Boot][25]
* [Parameters][26]
* [Find][34]
* [Parameters][35]
* [FindMultiple][36]
* [Parameters][37]
## exports
Browser:
Load in file with:
```html
```
```js
let database = SuchDB.SuchDB();
```
Node.js:
```js
let SuchDB = require("@sectly-studios/suchdb");
let database = new SuchDB.SuchDB();
```
### Options/Config:
```js
let SuchDB = require("@sectly-studios/suchdb").SuchDB({
master: "data",
autosave: true,
autoload: false,
encrypt: {
enabled: true,
key: "SuchDB_Key",
},
autobackup: true,
logging: true,
custom_logging : function(message) {
// Some code to log to something like logtail or sentry.
}
});
```
## set
Set/Add Data To The Database
### Parameters
* `key` **[string][30]**
* `value` **any**
```js
database.get(key, value)
```
## get
Get/Grab Data From The Database
### Parameters
* `key` **[string][30]**
```js
database.get(key) // Returns data
```
## remove
Remove/Delete Data From The Database
### Parameters
* `key` **[string][30]**
```js
database.remove(key)
```
## clear
Clear/Delete All Data In The Database
```js
database.clear()
```
## keys
Get Database Keys
```js
database.keys() // Returns keys
```
## values
Get Database Values
```js
database.values() // Returns values
```
## entries
Get Database Entries
```js
database.entries() // Returns object
```
## forEach
Loop Through All Data In The Database
### Parameters
* `callback` **[function][31]** (key, value)
```js
database.forEach(function(key, value) {
// Retuns key and value
})
```
## size
Get Database Size
```js
database.size() // Returns number
```
## isEmpty
Check If Database Is Empty
```js
database.isEmpty() // Returns boolean
```
## has
Check If Database Has Data
### Parameters
* `key`
```js
database.has(key) // Returns boolean
```
## lookup
Lookup Data In The Database
### Parameters
* `value` **any**
```js
database.lookup(value) // Returns data
```
## sort
Sort the database
### Parameters
* `key` **[string][30]**
* `reverse` **[boolean][32]**
```js
database.sort(key, reverse)
```
## port
Port Json To The Database
### Parameters
* `json` **any**
* `overwrite` **[boolean][32]**
```js
database.port(json, overwrite)
```
## save
Save Database To:
> localStorage
> node-fs
```js
database.save()
```
## load
Load Database From:
> localStorage
> node-fs
### Parameters
* `overwrite` **[boolean][32]**
```js
let overwrite = false;
database.load(overwrite)
```
## save
Save Database Backup To:
> localStorage
> node-fs
```js
database.saveBackup()
```
## load
Load Database Backup From:
> localStorage
> node-fs
### Parameters
* `overwrite` **[boolean][32]**
```js
let overwrite = false;
database.loadBackup(overwrite)
```
## raw
Get Raw Database Data
```js
database.raw() // Returns object
```
## find
Find entry by query
```js
database.find({name:"something",value:"something"}) // Returns entry
```
### Parameters
* `query` **[object][33]**
* `name` **[string][30]**
* `value` **[string][30]**
## findMultiple
Find one or more entries by query
```js
database.findMultiple({name:"something",value:"something"}) //Returns an array of entries
```
### Paramters
* `query` **[object][33]**
* `name` **[string][30]**
* `value` **[string][30]**
## Boot
SuchDB
```js
var options = {
master: "data",
autosave: true,
autoload: false,
encrypt: {
enabled: true,
key: "SuchDB_Key",
},
autobackup: true,
};
let database = new SuchDB.SuchDB(options);
let SuchDB = require("@sectly-studios/suchdb");
```
### Parameters
* `options` **[Object][33]**
*
```js
var options = {
master: "data",
autosave: true,
autoload: false,
encrypt: {
enabled: true,
key: "SuchDB_Key",
},
autobackup: true,
};
```
[1]: #exports
[2]: #set
[3]: #parameters
[4]: #get
[5]: #parameters-1
[6]: #remove
[7]: #parameters-2
[8]: #clear
[9]: #keys
[10]: #values
[11]: #entries
[12]: #foreach
[13]: #parameters-3
[14]: #size
[15]: #isempty
[16]: #has
[17]: #parameters-4
[18]: #lookup
[19]: #parameters-5
[20]: #sort
[21]: #parameters-6
[22]: #save
[23]: #load
[24]: #raw
[25]: #boot
[26]: #parameters-7
[27]: mailto:Sectly@sectly.online
[28]: https://www.mozilla.org/en-US/MPL/2.0/
[29]: https://www.mozilla.org/en-US/MPL/2.0/FAQ
[30]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
[31]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
[32]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
[33]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
[34]: #find
[35]: #parameters-10
[36]: #findMultiple
[37]: #parameter-11