Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

darksdb-dev

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

darksdb-dev

Lightweight API to use in conjunction with MySQL

  • 3.0.0-d4
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
3
increased by50%
Maintainers
1
Weekly downloads
 
Created
Source

Latest Release: 2.1.3

Dev Package

Main Package

What's New?

  • 3.0.0-d4:
    • Fix pool call

DarksDB

DarksDB is a simple database using node.js and mysql (v1)/promise-mysql(v2+) that aims to make writing SQL statements easier by providing simple methods like get() and update()

Installation

 $ npm i darksdb

Using DarksDB

// Get the DarkDB class
const { DarkDB } = require("./darkdb.js");
// Create a new database
const db = new DarkDB({
  host: "localhost",
  port: 3306,
  user: "example",
  password: "example", // Preferably have this in something like a .env file (for example process.env.db_pass)
  database: "example",
  table: "example",
});

await db.connect(); // You must call this otherwise an error will be thrown!
Important: You should use promises while using DarksDB (Async/Await)

Methods

  • db.setTable(): Set a new table
    • Takes in 1 argument, table
  • db.set(): Create a new record in the table with predefined values.
    • Takes in 2 arguments, keys[], and values[]
  • db.get(): Fetch the keys from all the records
    • Takes in 1 arguments, keys[]
  • db.getWhere(): Fetch the keys from all records that meet the where clauses
    • Takes in 2 arguments, keys[], and where[]
  • db.getAll(): Fetch all of the records and fields
    • Takes in 0 arguments
  • db.getAllWhere(): Fetch all of the records and fields that meet the where clauses
    • Takes in 1 argument, where[]
  • db.update(): Update all the records in that table with the new value
    • Takes in 2 arguments, keys[] and values[]
  • db.updateWhere(): Update all the records that meet the where clauses
    • Takes in 3 arguments, keys[], values[], and where[]
  • db.delete(): Delete all the records that meet the where clauses
    • Takes in 1 argument, where[]
  • db.deleteAll(): Delete ALL the records in a table;
    • Takes in 0 arguments
  • db.runStatement(): Run any SQL statement
    • Takes in 1 argument, statement
  • db.has(): Checks how many records there are with the key and value
    • Takes in 2 arguments, key and value

How to use where

To use where, each "where" of yours needs its own object following this data structure:

{ name: 'WHERENAME', value: 'WHEREVALUE' }

See Examples for more information.

Examples

const { DarkDB } = require('darksdb')
const db = new DarkDB({
    host    : 'localhost'
    port    : 3306
    user    : 'example'
    password: 'example'
    database: 'example'
    table   : 'example'
});

await db.connect();

await db.set([`one`, `two`, `three`], [1, 2, 3]);
// Add more data to the db
await db.set([`one`, `two`, `three`], [10, 20, 30]);
await db.set([`one`, `two`, `three`], [100, 200, 300]);
// Creates a simple database and makes this database
// one     two    three
//   1       2       3
//  10      20      30
// 100     200     300

Say you needed to get values: You can use any one of get(), getWhere(), getAll(), or getAllWhere()

await db.get([`one`]) // => [1, 10, 100];
await db.getWhere([`two`], [{ name: `one`, value: 10 }]) // => [20]
await db.getAll() // => entire database
await db.getAllWhere([{name: `three`, value: 300 }]) => // => [100, 200, 300]

Now what if you changed a value, and it needs to go back into the database. We can use update() or updateWhere()

await db.update([`one`], [10]); // =>
// one     two    three
//  10       2       3
//  10      20      30
//  10     200     300

await db.updateWhere([`two`], [2000], [{ name: `three`, value: 3 }]); // =>
// one     two    three
//   1    2000       3
//  10      20      30
// 100     200     300

Next you decide you need to delete some data. We can use delete() or deleteAll()

await db.delete([{ name: `two`, value: 20 }]); // =>
// one     two    three
//  10       2       3
//  10     200     300

await db.deleteAll(); // =>
// one     two    three
//      (No Data)

You can run an arbitrary SQL statement, such as SELECT COUNT(*) FROM numbers WHERE 'one' = 10 by using runStatement()

await db.runStatement(`SELECT COUNT(*) FROM numbers WHERE 'one' = 10`); // => 1

There is also db.has(), which checks if a record with the specific key and value exists

await db.has(`three`, 30); // => true

Keep in mind, optimally you should use your primary key in has(), however it is not required

Changelog:

  • 2.1.3:

    • Update TS type declarations
  • 2.1.2:

    • Add a check to see if a connection exists
  • 2.1.1:

    • Condensing where for loop into a sepeerate function
    • Update all functions using where for loops
    • Fixed delete()
    • Update documentation to add changelog/what's new?
  • 2.1.0:

    • Condensing keys for loop into a seperate function
    • Update all functions using keys for loops
    • Update documentation to add links to the main and dev packages
  • 2.0.5:

    • Switch to Promise-MySQL
    • Rewrite a lot of the code to run better
    • Fix has()
    • Add documentation
  • 1.0.0 - 1.0.3:

    • Initial release
    • Small upgrades

Keywords

FAQs

Package last updated on 20 Jan 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc