1.5.3 • Published 1 year ago

sag.sqlite v1.5.3

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

sag.sqlite

The fastest and simplest wrapper for SQLite3 in Node.js

Image Image

Image

Installation

npm install sag.sqlite

Import

import Database, { Settings, DatabaseFilter } from "sag.sqlite";

Usage

Defaults are "local" for table and "sqlite" for folder.

const userDB = new Database({
  table: "users",
  types: {
    id: "INTEGER PRIMARY KEY AUTOINCREMENT",
    name: "TEXT",
    surname: "TEXT",
    age: "INTEGER",
  },
});
const filter = new DatabaseFilter(userDB);

Commands

set

userDB.set({ name: "Alex", surname: "Snow", age: 30 });

findOne

userDB.findOne({ name: "Alex" });
    // -> { name: "Alex", surname: "Snow", age: 30, id: 1 } | undefined

userDB.findOne({ name: "Alex" }, { get: ["name", "surname"] });
    // -> { name: "Alex", surname: "Snow" } | undefined

userDB.findOne({}, { filter: { and: ["name = 'Alex'"] } });
    // -> { name: "Alex", surname: "Snow", age: 30, id: 1 } | undefined

userDB.findOne({}, { filter: { or: ["surname = 'Snow'"] } });
    // -> { name: "Alex", surname: "Snow", age: 30, id: 1 } | undefined

userDB.findOne({}, { filter: { and: ["age > 30"] } });
    // -> { name: "Alex", surname: "Snow", age: 30, id: 1 } | undefined

findAll

userDB.findAll({ name: "Alex" });
    // -> { name: String, surname: String, age: number, id: number }[] | undefined

userDB.findAll({ name: "Alex" }, { get: ["name", "surname"] });
    // -> { name: String, surname: String, age: number }[] | undefined

userDB.findAll({}, { filter: { and: ["name = 'Alex'"] } });
    // -> { name: String, surname: String, age: number, id: number }[] | undefined

userDB.findAll({}, { filter: { or: ["surname = 'Snow'"] } });
    // -> { name: String, surname: String, age: number, id: number }[] | undefined

userDB.findAll({}, { filter: { and: ["age > 30"] } });
    // -> { name: String, surname: String, age: number, id: number }[] | undefined
// With filter builder
userDB.findAll({}, { filter: filter.and("name = 'Alex'").build() });
    // -> { name: String, surname: String, age: number, id: number }[] | undefined
userDB.findAll({}, { filter: filter.or("name = 'Alex'").build() });
    // -> { name: String, surname: String, age: number, id: number }[] | undefined
userDB.findAll({}, { filter: filter.in({ name: ["Alex", "Bob"] }).build() });
    // -> { name: String, surname: String, age: number, id: number }[] | undefined

update

// Update every row's name to Bob where the name is equal the Alex
userDB.update({ where: { name: "Alex" }, value: { name: "Bob" } }); // -> db

// Update 10 rows's name to Bob where the name is equal to Alex while offsetting by 1
userDB.update(
  { where: { name: "Alex" }, value: { name: "Bob" } },
  { limit: { max: 10, offSet: 1 } }
); // -> db

// Update every row's names to Bob
userDB.update({ value: { name: "Bob" } }); // -> db

add

// Increase every row's age by 1 where the name equals to Alex
userDB.add({ where: { name: "Alex" }, value: { age: "+ 1" } }); // -> db
userDB.add({ where: { name: "Alex" }, value: { age: "++" } }); // -> db

// Decrease every row's age by 1 where the name equals to Alex
userDB.add({ where: { name: "Alex" }, value: { age: "- 1" } }); // -> db
userDB.add({ where: { name: "Alex" }, value: { age: "--" } }); // -> db

// Multiply every row's age by 2 where the name equals to Alex
userDB.add({ where: { name: "Alex" }, value: { age: "* 2" } }); // -> db

// Divide every row's age by 2 where the name equals to Alex
userDB.add({ where: { name: "Alex" }, value: { age: "/ 2" } }); // -> db

// Increase every row's age by itself where the name equals to Alex
userDB.add({ where: { name: "Alex" }, value: { age: "+ age" } }); // -> db

// Decrease every row's age by itself where the name equals to Alex
userDB.add({ where: { name: "Alex" }, value: { age: "- age" } }); // -> db

// With filter builder
// Increase every row's age by 1 where the name equals to Alex
userDB.add(
  { value: { age: "+ 1" } },
  { filter: filter.and("name = 'Alex'").build() }
); // -> db

delete

// Delete every row where the name is equal to Alex
userDB.delete({ name: "Alex" }); // -> db

// Delete 10 rows where the name is equal to Alex while offsetting by 1
userDB.delete({ name: "Alex" }, { limit: { max: 10, offSet: 1 } }); // -> db
// Delete every row
userDB.deleteAll(); // -> db

Joins

const carDB = new Database({
  types: {
    name: "TEXT",
    id: "INTEGER PRIMARY KEY AUTOINCREMENT",
    ownerId: "INTEGER",
  },
  table: "cars",
});

const joins = new Joins(userDB, carDB, "INNER JOIN");
const joins_filter = new JoinsFilter(joins);
// Select name and surname from users table inner joined with cars table where users.id equals to cars.ownerId
joins.find({
  get: ["name", "surname"],
  filter: joins_filter.and("id = ownerId", "age > id").build(),
}); // -> { name: String, surname: String }[] | undefined
1.5.3

1 year ago

1.5.2

1 year ago

1.5.1

1 year ago

1.5.0

1 year ago

1.4.9

1 year ago

1.4.8

1 year ago

1.4.6

1 year ago

1.4.5

1 year ago

1.4.7

1 year ago

1.4.4

1 year ago

1.4.3

1 year ago

1.4.2

1 year ago

1.4.1

1 year ago

1.4.0

1 year ago

1.3.9

1 year ago

1.3.7

1 year ago

1.3.6

1 year ago

1.3.5

1 year ago

1.3.8

1 year ago

1.3.4

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

1 year ago

1.3.0

1 year ago

1.2.0

1 year ago

1.2.1

1 year ago

1.1.9

1 year ago

1.1.8

1 year ago

1.1.7

1 year ago

1.1.6

1 year ago

1.1.5

1 year ago

1.1.3

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.1.2

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago