calm.db
v1.1.5
Published
A simple JSON-based database for Node.js applications
Downloads
16
Maintainers
Readme
calm.db
calm.db is a zero-dependency, lightweight JSON-based database for Node.js applications. It provides methods to easily store, retrieve, and manipulate data, now including CSV import and export capabilities.
Installation
You can install calm.db via npm:
npm install calm.db
Usage
Initialize calm.db
const Database = require("calm.db");
// Initialize calm.db with a file path
const db = new Database("data/db.json");
Setting Data
// Set key-value pair
await db.set("key1", "value1");
Getting Data
// Get value by key
const value = await db.get("key1");
console.log(value); // Output: 'value1'
Checking Existence
// Check if key exists
const exists = await db.has("key1");
console.log(exists); // Output: true
Deleting Data
// Delete data by key
const deleted = await db.delete("key1");
console.log(deleted); // Output: true (if successful)
Other Operations
// Get all keys
const keys = await db.keys();
console.log(keys); // Output: ['key1', 'key2', 'key3']
// Get all values
const values = await db.values();
console.log(values); // Output: ['value1', 'value2', 'value3']
// Get the number of entries
const count = await db.size();
console.log(count); // Output: 3
JSON Operations
// Convert database to JSON object
const json = await db.toJSON();
console.log(json); // Output: { key1: 'value1', key2: 'value2', key3: 'value3' }
// Load JSON data into database
const newData = { key4: "value4", key5: "value5" };
await db.fromJSON(newData);
Exporting and Importing CSV
// Export database to CSV string
const csvString = await db.toCSV();
console.log(csvString);
// Import CSV string into database
const newCSVData = `
key,value
key2,value2
key3,value3
`;
await db.fromCSV(newCSVData);
Searching with Filters
// Find entries based on a filter function
const filtered = await db.find((key, value) => key.startsWith("key"));
console.log(filtered); // Output: [['key1', 'value1'], ['key2', 'value2'], ['key3', 'value3']]
Contributing
Contributions are welcome! Feel free to open issues or pull requests for any improvements or bug fixes.
License
MIT License. See the LICENSE file for details.
© 2024 RohanDaCoder (Discord: rohan_ohio)