Vals using drizzle-orm
Description from the NPM package:
Drizzle ORM package for SQL databases
yawnxyz
dobby
Script
Simple wrapper class around valtown's sqlite https://www.val.town/v/yawnxyz/dobby // Example usage:
const dobby = new Dobby("myDatabase", [
{ name: "id", type: "INTEGER", primaryKey: true },
{ name: "name", type: "TEXT", notNull: true },
{ name: "age", type: "INTEGER" },
{ name: "balance", type: "REAL" },
]);
await dobby.createDatabase();
// Insert some sample data
await dobby.insert({ id: 1, name: "John Doe", age: 30, balance: 1000.50 });
await dobby.insert({ id: 2, name: "Jane Smith", age: 25, balance: 2000.75 });
await dobby.insert({ id: 3, name: "Bob Johnson", age: 40, balance: 1500.25 });
// Filter examples
const results1 = await dobby.filter({ age: { gt: 25 } });
console.log("Users older than 25:", results1);
const results2 = await dobby.filter({ name: { like: '%John%' } });
console.log("Users with 'John' in their name:", results2);
const results3 = await dobby.filter({ balance: { between: [1000, 2000] } });
console.log("Users with balance between 1000 and 2000:", results3);
const results4 = await dobby.filter({ age: { in: [25, 30, 35] } });
console.log("Users aged 25, 30, or 35:", results4);
const results5 = await dobby.filter({ name: { ne: 'John Doe' } }, { limit: 2 });
console.log("Up to 2 users not named John Doe:", results5);
// Search examples
const searchResults1 = await dobby.search("name", "John");
console.log("Users with 'John' in their name:", searchResults1);
const searchResults2 = await dobby.search("name", "son", { limit: 1 });
console.log("First user with 'son' in their name:", searchResults2);
// You can search in any text column
const searchResults3 = await dobby.search("age", "3");
console.log("Users with '3' in their age:", searchResults3);
// Example of using the new dropDatabase function
await dropDatabase("myDatabase");
0