Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

liteorm

Package Overview
Dependencies
Maintainers
1
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

liteorm

Simple ORM for SQLite with decorators and TypeScript interfaces

  • 0.9.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
44
increased by62.96%
Maintainers
1
Weekly downloads
 
Created
Source

liteorm

A simple wrapper for sqlite; with typings based on TypeScript decorators and reflect-metadata.

npm version

  • 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 _id as PRIMARY KEY INTEGER AUTOINCREMENT (Use _id as default name for primary key)
    • I use ROWID, instead.
  • Auto-append createdAt, updatedAt if @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, $regex is currently not supported, use $like, $nlike, $substr, $nsubstr instead.)
  • 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
  • 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 liteorm

Caveats

  • Type Number by default is associated with REAL. To change it to INTEGER, use
@prop({type: 'int'}) count!: number;
  • BLOB is associated with Type ArrayBuffer.
@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.

Keywords

FAQs

Package last updated on 26 Dec 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc