sag.sqlite
v1.5.3
Published
The fastest and simplest wrapper for SQLite3 in Node.js
Downloads
112
Readme
sag.sqlite
The fastest and simplest wrapper for SQLite3 in Node.js

Installation
npm install sag.sqliteImport
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 } | undefinedfindAll
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 }[] | undefinedupdate
// 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" } }); // -> dbadd
// 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() }
); // -> dbdelete
// 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(); // -> dbJoins
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