@aspen.cloud/aspendb
Version:
Your unified, personal database to store data for many applications.
62 lines (47 loc) • 1.99 kB
Markdown
AspenDB is a database designed to capture the data from the apps and services you use like Spotify, Gmail, and more.
Made by the folks at [Aspen](https://aspen.cloud)
- Multiple apps in one database
- Store any JSON data
- Sync to Aspen Cloud or any CouchDB instance to make your data available anywhere
The fastest way to start using AspenDB for your own data is to use [Aspen CLI](https://github.com/aspen-cloud/aspen-cli)
Install with NPM or Yarn
`npm i @aspen.cloud/aspendb`
`yarn add @aspen.cloud/aspendb`
You might also need to install `gcc` for the some of the dependencies.
```javascript
import AspenLocalDB from '@aspen.cloud/aspendb';
const aspendb = new AspenLocalDB();
```
```javascript
await aspendb.app('my-notes').add({title: 'Data Ownership', body: 'In the future, users should own and control their data.'})
await aspendb.app('my-notes').add({title: 'Music Library', body: 'I need to make a universal music library that includes Spotify and Soundcloud.'})
await aspendb.app('music').add(aspendb.app('music').add({type: 'track', title: 'Nights', artist: 'Frank Ocean' }););
await aspendb.app('music').add({type: 'album', title: 'Coloring Book', artist: 'Chance the Rapper' });
```
```javascript
await aspendb.app('music').all();
// Return all documents in 'music'
```
or get *all* of your data
```javascript
// aspendb.global gives you a reference to the underlying PouchDB instance
await aspendb.global.allDocs();
// Returns all documents from 'music' and 'my-notes'
```
```javascript
const trackQuery = { selector: { type: { $eq: "tracks" } } };
await aspendb.app('music').find(trackQuery);
// Returns tracks from your collection 'music'
```
- Written in **Typescript**
- **PouchDB**, under the hood, to handle syncing and querying.
- **SQLite** as the storage engine used locally.