1.1.0 • Published 6 months ago

@tfadev/easy-sqlite v1.1.0

Weekly downloads
-
License
GPL-3.0
Repository
github
Last release
6 months ago

SQlite3 database but simplified with easy methods, with TypeScript support!

Features

  • Supports arrays (string arras only).
  • Supports boolean values.
  • Simple and easy to use.
  • Poweful typings.

Installation

npm install @tfadev/easy-sqlite

Usage

Create a new database using the class SQLiteDatabase:

import { SQLiteDatabase } from '@tfadev/easy-sqlite';

const db = new SQLiteDatabase('path/to/your/file.db');

Here are the available methods to use with SQLiteDatabase class.

Note Every key is required (NOT NULL), you can make one or some of them optional by adding { nullable: true }.

import { TableType } from '@tfadev/easy-sqlite';

// Creates a new table:
await db.create({
    name: 'users',
    overwrite: true, // IF EXISTS
    keys: {
        id: [TableType.Integer, {
            primary: true, // PRIMARY KEY
            autoincrement: true // AUTOINCREMENT
        }],
        username: [TableType.String],
        age: [TableType.Integer],
        alive: [TableType.Boolean, {
                nullable: true
        }],
        languages: [TableType.Array]
    }
});

// Insert a new row in a table:
await db.insert('users', {
    username: 'John',
    age: 35,
    alive: true,
    languages: ['Python', 'Typescript', 'C++']
});

// Select from a table, in an array output:
await db.select('users');
await db.select('users', { username: 'John' });

// Select from a table, in single output:
await db.selectFirst('users');
await db.selectFirst('users', { username: 'John' });

// Ensure if it exists or not:
await db.ensure('users');
await db.ensure('users', { username: 'John' });

// Deletes a row from a table:
await db.delete('users', { username: 'John' });

// Deletes a table:
await db.drop('users');

// Close the database:
await db.close();

Typings

The class has a type parameter with type of array, you can include many schemas as you want, just make sure the types are correct and equal to created tables.

type UsersSchema = {
    name: 'users',
    keys: {
        username: string,
        age: number,
        alive?: boolean, // ← Nullable
        languages: string[]
    }
};

new SQLiteDatabase<[UsersSchema, ...]>(...);

License

GNU General Public License (View here)

1.1.0

6 months ago

1.0.1

7 months ago

1.0.0

7 months ago

0.1.1

8 months ago

0.1.0

8 months ago