mit.db/node_modules/quickmap.db/README.md
2022-07-05 19:02:07 +02:00

45 lines
No EOL
1.7 KiB
Markdown

# Map.db
###### A Map that stores data locally and loads it at startup. Written in TypeScript
### 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
![image](img.png)
![image](img2.png)
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()` and `MapDB#delete()` return **promises**
> - `Map#size` in map.db is a **method** (`MapDB#size()`)
> - 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('@galaxy05/map.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 }
}
```
### Installation
With **npm**:
`npm i quickmap.db`