# Other SQL Example
# Javascript
const { Keyvify } = require("keyvify");
const database = Keyvify("my_super_awesome_database", {
dialect: "sqlite", // or some others like postgres
storage: __dirname + "/../database.sqlite", // for sqlite
// username: "hackerman", // if needed
// password: "pass", // if needed
// cache: false, // to disable caching not recommended
// host: "localhost", // if needed
// port: 0000 // if needed
});
const init = async () => {
// connect
await database.connect();
const key = "hello";
const value = "world";
const newvalue = "everyone";
const key2 = "array";
const value2 = ["val1", "val2"];
const key3 = "math";
// set a data
await database.set(key, value); // returns: { key: "hello", value: "world" }
// get a data
await database.get(key); // returns: { key: "hello", value: "world" }
// set a data (updating)
await database.set(key, newvalue); // returns: { key: "hello", value: "world" }
// push a data
await database.push(key2, value2[0]); // returns: { key: "array", value: ["val1"] }
// push a data (2)
await database.push(key2, value2[1]); // returns: { key: "array", value: ["val1", "val2"] }
// pull a data
await database.pull(key2, value2[0]); // returns: { key: "array", value: ["val2"] }
// add a data
await database.add(key3, 10); // returns: { key: "math", value: 10 }
// subtract a data
await database.subtract(key3, 5); // returns: { key: "math", value: 5 }
// multiply a data
await database.multiply(key3, 2); // returns: { key: "math", value: 10 }
// divide a data
await database.divide(key3, 2); // returns: { key: "math", value: 5 }
// raise a data by power
await database.exponent(key3, 2); // returns: { key: "math", value: 25 }
// modulo a data
await database.modulo(key3, 5); // returns: { key: "math", value: 0 }
// do math on a data
await database.math(key3, "+", 10); // returns: { key: "math", value: 10 }
// get all data (fetches from the database)
await database.all(); // returns: [{ key: "hello", value: "world" }]
// get all **cached** data (only data from `database.cache` and doesnt need await)
database.entries(); // returns: [{ key: "hello", value: "world" }]
// delete a data
await database.delete(key); // returns: 1
// delete all
await database.truncate(); // returns: 0 (number of deleted keys)
// disconnect
await database.disconnect();
}
database.on("connect", () => console.log("Connected!"));
database.on("disconnect", () => console.log("Disconnected!"));
database.on("valueSet", (pair) => console.log("Some data was set:", pair));
database.on("valueGet", (pair) => console.log("Some data was got:", pair));
database.on("valueDelete", (key) => console.log("Some key was deleted:", key));
database.on("valueUpdate", (pair) => console.log("Some data was changed:", pair));
database.on("valueFetch", (pairs) => console.log("All data were fetched:", pairs));
database.on("truncate", (amount) => console.log("Database was emptied:", amount));
init();
# Typescript
import { Keyvify } from "keyvify";
const database = Keyvify("my_super_awesome_database", {
dialect: "sqlite", // or some others like postgres
storage: __dirname + "/../database.sqlite", // for sqlite
// username: "hackerman", // if needed
// password: "pass", // if needed
// cache: false, // to disable caching not recommended
// host: "localhost", // if needed
// port: 0000 // if needed
});
const init = async () => {
// connect
await database.connect();
const key = "hello";
const value = "world";
const newvalue = "everyone";
const key2 = "array";
const value2 = ["val1", "val2"];
const key3 = "math";
// set a data
await database.set(key, value); // returns: { key: "hello", value: "world" }
// get a data
await database.get(key); // returns: { key: "hello", value: "world" }
// set a data (updating)
await database.set(key, newvalue); // returns: { key: "hello", value: "world" }
// push a data
await database.push(key2, value2[0]); // returns: { key: "array", value: ["val1"] }
// push a data (2)
await database.push(key2, value2[1]); // returns: { key: "array", value: ["val1", "val2"] }
// pull a data
await database.pull(key2, value2[0]); // returns: { key: "array", value: ["val2"] }
// add a data
await database.add(key3, 10); // returns: { key: "math", value: 10 }
// subtract a data
await database.subtract(key3, 5); // returns: { key: "math", value: 5 }
// multiply a data
await database.multiply(key3, 2); // returns: { key: "math", value: 10 }
// divide a data
await database.divide(key3, 2); // returns: { key: "math", value: 5 }
// raise a data by power
await database.exponent(key3, 2); // returns: { key: "math", value: 25 }
// modulo a data
await database.modulo(key3, 5); // returns: { key: "math", value: 0 }
// do math on a data
await database.math(key3, "+", 10); // returns: { key: "math", value: 10 }
// get all data (fetches from the database)
await database.all(); // returns: [{ key: "hello", value: "world" }]
// get all **cached** data (only data from `database.cache` and doesnt need await)
database.entries(); // returns: [{ key: "hello", value: "world" }]
// delete a data
await database.delete(key); // returns: 1
// delete all
await database.truncate(); // returns: 0 (number of deleted keys)
// disconnect
await database.disconnect();
}
database.on("connect", () => console.log("Connected!"));
database.on("disconnect", () => console.log("Disconnected!"));
database.on("valueSet", (pair) => console.log("Some data was set:", pair));
database.on("valueGet", (pair) => console.log("Some data was got:", pair));
database.on("valueDelete", (key) => console.log("Some key was deleted:", key));
database.on("valueUpdate", (pair) => console.log("Some data was changed:", pair));
database.on("valueFetch", (pairs) => console.log("All data were fetched:", pairs));
database.on("truncate", (amount) => console.log("Database was emptied:", amount));
init();