Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
const Enmap = require('enmap');
const Provider = require('enmap-mongo');
const { settings, tags, blacklist, langs } =
Enmap.multi(['settings', 'tags', 'blacklist', 'langs'],
Provider, { url: "mongodb://localhost:27017/enmap" });MapPromise.Promise.numberMapMapMapMapMapMapMap**booleanbooleanMapMapArrayArray* | Array.* | Array.Array*booleanArrayArraybooleanboolean*booleanArray.enmap.set(enmap.autonum(), "This is a new value");enmap.changed((keyName, oldValue, newValue) => {
console.log(`Value of ${key} has changed from: \n${oldValue}\nto\n${newValue});
});// Direct Value Examples
enmap.set('simplevalue', 'this is a string');
enmap.set('isEnmapGreat', true);
enmap.set('TheAnswer', 42);
enmap.set('IhazObjects', { color: 'black', action: 'paint', desire: true });
enmap.set('ArraysToo', [1, "two", "tree", "foor"])
// Settings Properties
enmap.set('IhazObjects', 'color', 'blue'); //modified previous object
enmap.set('ArraysToo', 2, 'three'); // changes "tree" to "three" in array.// Assuming
enmap.set("simpleArray", [1, 2, 3, 4]);
enmap.set("arrayInObject", {sub: [1, 2, 3, 4]});
enmap.push("simpleArray", 5); // adds 5 at the end of the array
enmap.push("arrayInObject", "five", "sub"); adds "five" at the end of the sub array// Assuming
points.set("number", 42);
points.set("numberInObject", {sub: { anInt: 5 }});
points.math("number", "/", 2); // 21
points.math("number", "add", 5); // 26
points.math("number", "modulo", 3); // 2
points.math("numberInObject", "+", 10, "sub.anInt");// Assuming
points.set("number", 42);
points.set("numberInObject", {sub: { anInt: 5 }});
points.inc("number"); // 43
points.inc("numberInObject", "sub.anInt"); // {sub: { anInt: 6 }}// Assuming
points.set("number", 42);
points.set("numberInObject", {sub: { anInt: 5 }});
points.dec("number"); // 41
points.dec("numberInObject", "sub.anInt"); // {sub: { anInt: 4 }}const myKeyValue = enmap.get("myKey");
console.log(myKeyValue);
const someSubValue = enmap.get("anObjectKey", "someprop.someOtherSubProp");if(enmap.has("myKey")) {
// key is there
}
if(!enmap.has("myOtherKey", "oneProp.otherProp.SubProp")) return false;enmap.findAll('username', 'Bob');enmap.find('username', 'Bob');enmap.find(val => val.username === 'Bob');if (enmap.exists('username', 'Bob')) {
console.log('user here!');
}const newColl = someColl.clone();const newColl = someColl.concat(someOtherColl, anotherColl, ohBoyAColl);// Using local variables and the mongodb provider.
const Enmap = require('enmap');
const Provider = require('enmap-mongo');
const { settings, tags, blacklist } = Enmap.multi(['settings', 'tags', 'blacklist'], Provider, { url: "some connection URL here" });
// Attaching to an existing object (for instance some API's client)
const Enmap = require("enmap");
const Provider = require("enmap-mongo");
Object.assign(client, Enmap.multi(["settings", "tags", "blacklist"], Provider, { url: "some connection URL here" }));// This example migrates from enmap-mongo to the new format.
// Assumes: npm install enmap@3.1.4 enmap-sqlite@latest enmap-mongo@latest
const Enmap = require("enmap");
const Provider = require("enmap-mongo");
const SQLite = require("enmap-sqlite");
let options = {
name: 'test',
dbName: 'enmap',
url: 'mongodb://username:password@localhost:27017/enmap'
};
const source = new Provider(options);
const target = new SQLite({"name": "points"});
Enmap.migrate(source, target);npm -g --add-python-to-path install windows-build-tools node-gypnpm i eslachance/enmap#v3const Enmap = require("enmap");
// Initialize an instance of Enmap
const myCollection = new Enmap();
// Adding data is simply a `set` command:
myCollection.set("myKey", "a value");
// Getting a value is done by key
let result = myCollection.get("myKey");// Assuming
points.set("number", 42);
points.set("numberInObject", {sub: { anInt: 5 }});
points.math("number", "/", 2); // 21
points.math("number", "add", 5); // 26
points.math("number", "modulo", 3); // 2
points.math("numberInObject", "+", 10, "sub.anInt");// Assuming
points.set("number", 42);
points.set("numberInObject", {sub: { anInt: 5 }});
points.inc("number"); // 43
points.inc("numberInObject", "sub.anInt"); // {sub: { anInt: 6 }}// Assuming
points.set("number", 42);
points.set("numberInObject", {sub: { anInt: 5 }});
points.dec("number"); // 41
points.dec("numberInObject", "sub.anInt"); // {sub: { anInt: 4 }}// Load Enmap
const Enmap = require('enmap');
// Load EnmapSQLite
const EnmapSQLite = require('enmap-sqlite');
// Initialize the sqlite database with a table named "test"
const provider = new EnmapSQLite({ name: 'test' });
// Initialize the Enmap with the provider instance.
const myColl = new Enmap({ provider: provider });
// Persistent providers load in an **async** fashion
// and provide a handy defer property:
myColl.defer.then(() => {
// all data is loaded now.
console.log(myColl.size + "keys loaded");
});
// You can also await it if your function is async:
(async function() {
await myColl.defer;
console.log(myColl.size + "keys loaded");
// Do stuff here!
}());
// Persistent collections should be **closed** before shutdown:
await myColl.db.close();const myStructure = {
first: "blah",
second: "foo",
changeme: "initial",
isCool: false
sub: {
yay: true,
thing: "amagig"
}
}enmap.fetch([array, of, keys]) will fetch each key in the requested array, and return an array of [key, value] pairs for each fetched value. myEnmap.push("simpleArray", 6);
// now [1,2,3,4,5,6]
myEnmap.push("arrInObj", "Robby", "aliases");
// now ["Bobby", "Robert", "Robby"]myEnmap.remove("simpleArray", 2);
// now [1,3,4,5,6]
myEnmap.remove("arrInObject", "Bobby", "aliases");
// now ["Robert", "Robby"]myEnmap.set("someObject", myStructure);
// Or directly the object
myEnmap.set("someObject", {first: "blah", ...});
// Works with arrays, too!
myEnmap.set("someArray", ["one", "two", "three"]);const second = myEnmap.get("someObject", "second");
// returns "foo"
const thing = myEnmap.get("someObject", "sub.thing");
// returns true
// The path can be dynamic, too:
const propToGet = "thing";
const blah = myEnmap.get("someObject", `sub.${propToGet}`);myEnmap.has("someObject", "sub.thing"); // returns true
myEnmap.has("someObject", "heck"); // returns false.// Set an object property
myEnmap.set("someObject", "sub.blah", "newThing");
// Set an array property
myEnmap.set("someArray", "four", 3);<Enmap>.set(key, value);myEnmap.set('boolean', true);
myEnmap.set('integer', 42);
myEnmap.set('someFloat', 73.2345871);
myEnmap.set("Test2", "test2");const floatValue = myEnmap.get('someFloat');
const test = myEnmap.get('Test2');
// you can even use booleans in conditions:
if(myEnmap.get('boolean')) {
// boolean is true!
}