liteorm v0.9.5
liteorm
A simple wrapper for sqlite; with typings based on TypeScript decorators and reflect-metadata.
- Async eventemitter (emittery)
- I make sure that you can intercept query objects and raw SQL (as well as their parameters) in an async way
Auto-define_idasPRIMARY KEY INTEGER AUTOINCREMENT(Use_idas default name for primary key)- I use ROWID, instead.
- Auto-append
createdAt,updatedAtif@Table({ timestamp: true }) - JSON, Date, Boolean, and MongoDB interop
- Additional type
StringArray, inspired by Anki schema - Query with JSON, and tested with https://q2search.herokuapp.com/LiteORM, using MongoDB-like languages, with some differences (for example,
$regexis currently not supported, use$like,$nlike,$substr,$nsubstrinstead.) - JSON querying is supported via JSON1 extension. I made it easy to query using dot notation, just like MongoDB.
- So, you can use
data.a
- So, you can use
- Multiple SQLite databases, with cloned schemas or different schemas. Strongly-typed in the IDE.
Usage
Please see /tests/suites and ankisync.js
Installation
npm i liteorm
# or yarn add liteormCaveats
- Type
Numberby default is associated withREAL. To change it toINTEGER, use
@prop({type: 'int'}) count!: number;BLOBis associated with TypeArrayBuffer.
@prop() data!: ArrayBuffer;- To get a strongly-typed
default/onUpdate, you might have to declare typing twice.
@prop<Record<string, string>>({ default: () => ({}) }) data!: Record<string, string>;
@prop<number, EntryClass>({ default: 1, onUpdate: (ent) => parseToInt(ent) }) order!: number;- You might have to declare your own interface to get keys for
createdAt,updatedAt, because typing is based directly on Class.
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago