# live-data-server

> Similar to [json-server](https://github.com/typicode/json-server) but backed by sqlite3

Latest version **1.1.0** (published 2023-08-07) · BSD-2-Clause license · 0 weekly downloads

## Install

```sh
npm install live-data-server
pnpm add live-data-server
yarn add live-data-server
bun add live-data-server
```

Provides the commands `data-server`, `live-data-server`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2023-08-07 |
| First published | 2022-01-30 |
| Weekly downloads | 0 |
| License | BSD-2-Clause |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 13.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Beeno Tung |
| Maintainers | beenotung |
| Keywords | generic, restful, data, server, json, sqlite3, cli |

## Links

- npm: https://www.npmjs.com/package/live-data-server
- Repository: https://github.com/beenotung/live-data-server
- Homepage: https://github.com/beenotung/live-data-server#readme
- Issues: https://github.com/beenotung/live-data-server/issues
- npm.io page: https://npm.io/package/live-data-server

## Dependencies (6)

- [cors](https://npm.io/package/cors.md) ^2.8.5
- [express](https://npm.io/package/express.md) ^4.18.2
- [formidable](https://npm.io/package/formidable.md) ^2.1.2
- [listening-on](https://npm.io/package/listening-on.md) ^2.0.9
- [live-data-sync](https://npm.io/package/live-data-sync.md) ^1.0.3
- [better-sqlite3-schema](https://npm.io/package/better-sqlite3-schema.md) ^3.1.2

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 1.1.0 (latest) — 2023-08-07
- 1.0.3 — 2023-03-05
- 1.0.2 — 2023-03-05
- 1.0.1 — 2022-01-30
- 1.0.0 — 2022-01-30

## README

# live-data-server

Restful CRUD API development server for frontend projects to demo.

Similar to [json-server](https://github.com/typicode/json-server) but backed by sqlite3.

[![npm Package Version](https://img.shields.io/npm/v/live-data-server)](https://www.npmjs.com/package/live-data-server)

## Features

- No need to install (npx executable)
- RESTful API
- Persisted by sqlite3
- CRUD table objects
- CRUD key-value pairs
- File Upload
- Search by any field
- Search with range / logics (TODO)

## Usage

```bash
npx live-data-server [port]
```

The port number can be set with `PORT` environment variable as well, otherwise it will use any available port.

Usage Example:

```bash
> npx live-data-server 8600
listening on http://localhost:8600
listening on http://127.0.0.1:8600 (lo)
listening on http://192.168.80.105:8600 (wlp3s0)
```

## APIs

### Files API

| Method | Path   | Field |
| ------ | ------ | ----- |
| POST   | /files | file  |

### Collection API

| Method | Path                   | Description        |
| ------ | ---------------------- | ------------------ |
| GET    | /collection/:table     | get all / search\* |
| GET    | /collection/:table/:id | get by id          |
| POST   | /collection/:table     | create             |
| PATCH  | /collection/:table/:id | update by id       |
| DELETE | /collection/:table/:id | delete by id       |

Supported Search Example:

```
GET /collection/user?role=admin&status=active
```

To-be Supported Search Example:

```
GET /collection/house?rent=below(5000)&area=at_least(200)
GET /collection/product?price=between(10,20)
GET /collection/user?role=not(admin)
GET /collection/user?role=any(shop,client)
```

### Dictionary (key-value) API

| Method | Path        | Description    |
| ------ | ----------- | -------------- |
| POST   | /dict/:name | init by name   |
| GET    | /dict/:name | get by name    |
| PATCH  | /dict/:name | update by name |
| DELETE | /dict/:name | delete by name |

## Todo

- support realtime update notices
- support pub/sub channel

## License

This project is licensed with [BSD-2-Clause](./LICENSE)

This is free, libre, and open-source software. It comes down to four essential freedoms [[ref]](https://seirdy.one/2021/01/27/whatsapp-and-the-domestication-of-users.html#fnref:2):

- The freedom to run the program as you wish, for any purpose
- The freedom to study how the program works, and change it so it does your computing as you wish
- The freedom to redistribute copies so you can help others
- The freedom to distribute copies of your modified versions to others

---
_Source: https://npm.io/package/live-data-server · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
