shelving
Version:
Toolkit for using data in JavaScript.
47 lines (29 loc) • 2.21 kB
Markdown
# Shelving: toolkit for using data in JavaScript
[](https://github.com/semantic-release/semantic-release) [](https://conventionalcommits.org) [](https://github.com/prettier/prettier) [](https://github.com/dhoulb/shelving/actions) [](https://www.npmjs.com/package/shelving)
**Shelving** is a toolkit for using data in JavaScript and TypeScript, including:
> Note: The `1.x` branch of Shelving is in active development and is not observing semver for breaking changes (from `2.x` onward semver will be followed).
- Schemas (validation)
- Databases (via providers including in-memory, Firestore, IndexedDB)
- Querying (sorting, filtering, slicing)
- Store (events and state)
- React (hooks and state)
- Helpers (errors, arrays, objects, strings, dates, equality, merging, diffing, cloning, debug)
## Installation
Install via `npm` or `yarn`:
```sh
npm install shelving
yarn add shelving
```
Import from Skypack CDN (the `?dts` enables TypeScript types in Deno):
```js
import { Database } from "https://cdn.skypack.dev/shelving";
import { Database } from "https://cdn.skypack.dev/shelving?dts";
```
## Usage
Shelving is an [ES module](https://nodejs.org/api/esm.html) supporting `import { Query } from "shelving";` syntax and can be used natively in systems/browsers that support that (e.g. Chrome 61+, Deno, Node 12+).
Shelving does not include code for CommonJS `require()` imports, so using it in older projects will require transpiling.
## Modules
Shelving is created from small individual modules which can be imported individually (using e.g. `import { addProp } from "shelving/object`). Modules marked with `✅` are also re-exported from the main `"shelving"` module.
@todo Write these docs!
## Changelog
See [Releases](https://github.com/dhoulb/shelving/releases)