1.5.3 • Published 1 year ago
sag.sqlite v1.5.3
sag.sqlite
The fastest and simplest wrapper for SQLite3 in Node.js
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