JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1
  • Score
    100M100P100Q51185F
  • License MIT

Simple IDB query library with TypeScript support

Package Exports

  • idb-query

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (idb-query) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Simple TypeScript IDB wrapper

Examples:

Create an Article entity

import { createIDBEntity } from "idb-orm";
// create your own database
const db = createDb();

interface IArticle {
  author: string;
  string: string;
  text: string;
  tags: string[];
}
const Student = createIDBEntity<IStudent, "id">(
  db, // need to provide database handle
  "students", // store name
  "id" // keyPath
);

New entity

Student.create({
    author: "John Smith";
    title: "Ut aliquet facilisis turpis",
    text: ` Amet bibendum euismod, leo diam interdum ligula, eu scelerisque sem
              purus in tellus.

    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. In sit amet nunc id
    quam porta varius. Ut aliquet facilisis turpis. Etiam pellentesque quam et
    erat. Praesent suscipit justo.
    `;
    created: new Date(),
    tags: ["stuff", "life", "cats"],
})

Queries

// Get all articles that
Student.query()
  .byIndex("created")
  // had been posted in the range from 1st september of 2013
  .from(new Date("2013-09-01"))
  // to 1st september of 2014
  .to(new Date("2014-09-01"))
  // that were about cars
  .filter((art) => art.tags.find("cars"))
  // then group by month
  .groupBy(
    (art) =>
      new Date(
        art.created.getFullYear(), //
        art.created.getMonth()
      )
  )
  // take only the first 10 months
  .take(10)
  .all();

More usage examples can be found in the tests directory.