rfr
This commit is contained in:
parent
bd56815a45
commit
4cc7c199c5
5 changed files with 1 additions and 76 deletions
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| ---------- | ------------------ |
|
| ---------- | ------------------ |
|
||||||
|
| 2023.02.06 | ✅ |
|
||||||
| 2023.02.05 | ✅ |
|
| 2023.02.05 | ✅ |
|
||||||
| < 2023.02 | ❌ |
|
| < 2023.02 | ❌ |
|
||||||
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
[{"key":"ciao","value":"hello"},{"key":"arrivederci","value":"bye"}]
|
|
|
@ -1,62 +0,0 @@
|
||||||
# Map.db
|
|
||||||
|
|
||||||
MapDB A Map that stores data locally and loads it at startup. Written in JavaScript
|
|
||||||
|
|
||||||
### How does it work?
|
|
||||||
|
|
||||||
Map.db works just like the JavaScript built-in **Map**, with the same methods and functionalities, and in fact it uses itself a Map, but while the built-in Map only stores data in internal memory, this module **stores data locally in a file and loads it back in the Map at startup**.
|
|
||||||
|
|
||||||
The purpose of this module is to make the JavaScript built-in Map an actual **database**, and there comes the name `map.db`: a Map that can be used as a database.
|
|
||||||
|
|
||||||
The file structure is easily accessible and the data is stored in JSON format, allowing manual editing
|
|
||||||
|
|
||||||
You also have the option to only use local storage without touching internal memory
|
|
||||||
|
|
||||||
### Differences
|
|
||||||
|
|
||||||
Although this module works in fact the same way as a Map, there are still some little differences between them, which are listed below:
|
|
||||||
|
|
||||||
> - `MapDB#set()` return **promises**
|
|
||||||
> - When a value is reassigned to a key, it is only saved in the Map but not in the actual save file, so you always have to **set the key/value pair with the new value**.
|
|
||||||
> Example:
|
|
||||||
|
|
||||||
```js
|
|
||||||
const { MapDB } = require('quickmap.db');
|
|
||||||
const mapdb = new MapDB('file.db'); // this is the save file's name + extension
|
|
||||||
async function sample() {
|
|
||||||
// assuming 'somekey' exists in the Map and has a value { cool: false }
|
|
||||||
const data = mapdb.get('somekey');
|
|
||||||
// reassigning the 'cool' property a new value
|
|
||||||
data.cool = true;
|
|
||||||
await mapdb.set('somekey', data);
|
|
||||||
// now 'somekey' has a new value { cool: true }
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Docs
|
|
||||||
|
|
||||||
#### Installation
|
|
||||||
|
|
||||||
With **npm**:
|
|
||||||
|
|
||||||
`npm i quickmap.db`
|
|
||||||
|
|
||||||
|
|
||||||
#### Setup
|
|
||||||
|
|
||||||
```js
|
|
||||||
const { MapDB } = require('quickmap.db')
|
|
||||||
const db = new MapDB('database.json') // this is the save file's name + extension
|
|
||||||
```
|
|
||||||
|
|
||||||
#### set()
|
|
||||||
|
|
||||||
```js
|
|
||||||
await db.set('what', 'how')
|
|
||||||
```
|
|
||||||
|
|
||||||
#### get()
|
|
||||||
|
|
||||||
```js
|
|
||||||
var answ = db.get('what') // answ = how
|
|
||||||
```
|
|
12
test.js
12
test.js
|
@ -1,12 +0,0 @@
|
||||||
const MitDB = require('./build/index.js')
|
|
||||||
|
|
||||||
var db = new MitDB('file.json')
|
|
||||||
|
|
||||||
async function run () {
|
|
||||||
await db.set('ciao', 'hello')
|
|
||||||
await db.set('arrivederci', 'bye')
|
|
||||||
|
|
||||||
console.log(db.size())
|
|
||||||
}
|
|
||||||
|
|
||||||
run()
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue