New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

keya

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

keya

A simple, universal document store

  • 2.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
4
increased by33.33%
Maintainers
1
Weekly downloads
 
Created
Source

Keya

A simple, universal document store. Keya supports the following storage mediums:

  • SQLite (Nodejs)
  • IndexedDB (Browser)
  • LocalStorage (Browser, backup)

API

In general keya stores can be thought of as a Map that acts asynchronously.

Import

import * as keya from "keya";
// Or, if not using modules:
const keya = require("keya");

Access a store

If the store does not exist when you call this, it will be created automatically for you

const store = await keya.store("records");

Note: Store names need to follow SQLite Table name rules/should generally only be alphanumeric characters without spaces. Beyond that can lead to unexpected issues and undocumented behavior

Hydration

keya supports an optional Hydration Function to be passed to .store when initalizing. This defaults to JSON.parse. The hydration function will be passed the stored string and should return the appropriate value. An example is shown below that allows keya to store Maps long-term.


// Add a custom hydration function
const store = await keya.store("calls");

// Custom conversion functions stores a map by it's entry list
store.stringify = map => JSON.stringify([...map.entries()]);
store.hydrate = string => new Map(JSON.parse(string));

// Construct the Map to be stored
const map = new Map([
  [32, "a"],
  [45, "b"]
])

store.set("map", map);

// In another session

const map = store.get("map");

Set a value

await store.set("document", { value: 345 });

Get a value

const record = await store.get("document");

Find values

const records = store.find(
  (value, name) => name.includes("e") && value.v == 12
);

Clear the store

store.clear();

Get all values

store.all(); // [ {key: "hello", value: 43 }, { key: "world", value: 12 } ]

FAQs

Package last updated on 22 May 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