Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/inrixia/db.ts

Persistent object storage
https://github.com/inrixia/db.ts

databse json jsonstorage jsonstore persistent persistent-storage storage

Last synced: about 1 month ago
JSON representation

Persistent object storage

Awesome Lists containing this project

README

        

## @inrixia/db

This project provides a function that returns a object, all changes to that object are synchronously persisted to disk as json.

Encryption and live updates are supported.

## Installation

```
npm install @inrixia/db
```

## Usage

```ts
import db from "@inrixia/db";

type MyObjectType = {
name: string;
age: number;
hobbies: string[];
};

const myObject = db("./filename.json", {
template: {
name: "Bob",
age: 128,
hobbies: [],
},
forceCreate: true,
pretty: true,
});

// use myObject as you wish, all changes will be persisted to disk
```

## Options

The following options are supported:

```ts
db("./filename.json", {
// Template object to initialize with.
template: {},
// Key to use for encryption. (Enables encryption if specified)
cryptKey: "secret",
// Pretty print the JSON file. (Default: false)
pretty: true,
// Write out to file if it doesn't exist. (Default: false)
forceCreate: true,
// Asynchronously live update the object when the file is changed externally.
// Will enable forceCreate if true. (Default: false)
updateOnExternalChanges: true,
});
```