easy-db-core
v3.0.0
Published
Core for Lite&easy database.
Downloads
210
Maintainers
Readme
Easy DB Core
Core of Lite&easy database for the same interface of any implementation. The same interface can be used in Node, Web, Mobile, Server and Develop applications.
Include types for TypeScript.
Features
- The same interface in Node, Web, Mobile, Server or your own environment.
- Easy reading and updating database without any special tool.
- Handling files directly in easy-db.
API interface
import easyDB from "easy-db-*";
const { insert, select, update, remove } = easyDB(configuration);
// INSERT
const idOfRow = await insert("collection1", { myRow: 1 });
const idOfRow = await insert("collection1", id => ({ id, myRow: 1 }));
// SELECT
const allCollection1 = await select("collection1");
const myRow1 = await select("collection1", idOfRow);
// UPDATE
await update("collection1", idOfRow, { ...myRow1, update: 1 });
// DELETE
await remove("collection1", idOfRow); // only one row
Example of use
Save user information in browser
import easyDB from "easy-db-browser";
const { select, update } = easyDB();
// Save nickname
await update("myAppName", "nickname", nickname);
// Load nickname
const nickname = await select("myAppName", "nickname");
File saving as url
import easyDB from "easy-db-node";
const { select, update, file, configure } = easyDB({ fileFolder: "./files", fileUrl: "/files" });
// Save user with picture
await update("myAppName", "user", {
name: "Example User",
// any file in base64
photo: file("data:image/png;base64,iVB...YI="),
// or
photo: {
type: "EASY_DB_FILE",
url: "data:image/png;base64,iVB...YI=",
}
});
// Load with picture
const user = await select("myAppName", "user");
// user = { name: "Example User", photo: { url: "/files/1f6bef21.png" } }
Your implementation for this interface
import easyDB from "easy-db-core";
type Data = { [id: string]: any };
export default function easyDBMy(configuration: {}) {
return easyDB({
async saveCollection(name: string, data: Data) {
// code for save collection
},
async loadCollection(name: string): Promise<null | Data> {
// code for load collection
},
};
};
Add your file handling
return easyDB({
...
async saveFile(base64: string): string {
// code replace file
return "replaced text for file";
},
async removeFile(filePath: string) {
// code for remove file
},
});