# @stenodb/fastify

> > ✍ Easy to use local JSON database for [Fastify](https://fastify.io)

Latest version **4.0.1** (published 2023-03-10) · 0 weekly downloads

## Install

```sh
npm install @stenodb/fastify
pnpm add @stenodb/fastify
yarn add @stenodb/fastify
bun add @stenodb/fastify
```

## Health

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

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 4.0.1 |
| Published | 2023-03-10 |
| First published | 2023-02-19 |
| Weekly downloads | 0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=14.16 |
| Dependencies | 4 |
| Unpacked size | 17.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | crashmax |

## Links

- npm: https://www.npmjs.com/package/@stenodb/fastify
- npm.io page: https://npm.io/package/@stenodb/fastify

## Dependencies (4)

- [@stenodb/node](https://npm.io/package/@stenodb/node.md) 4.0.1
- [@stenodb/utils](https://npm.io/package/@stenodb/utils.md) 4.0.1
- [fastify-plugin](https://npm.io/package/fastify-plugin.md) 4.5.0
- [class-validator-jsonschema](https://npm.io/package/class-validator-jsonschema.md) 5.0.0

## Recent versions

- 4.0.1 (latest) — 2023-03-10
- 4.0.0 — 2023-02-23
- 3.4.1 — 2023-02-20
- 3.4.0 — 2023-02-19

## README

# @stenodb/fastify [![](https://img.shields.io/npm/v/@stenodb/fastify)](https://www.npmjs.org/package/@stenodb/fastify)

> ✍ Easy to use local JSON database for [Fastify](https://fastify.io)

## Install

```sh
npm install @stenodb/fastify
```

```sh
yarn add @stenodb/fastify
```

```sh
pnpm add @stenodb/fastify
```

## Usage

```ts
// index.ts
import Fastify from 'fastify'
import { resolve } from 'node:path'
import { AsyncAdapter, FastifySteno } from '@stenodb/fastify'
import { Users, User } from './entities.js'

const fastify = Fastify()

const initialData = new Users(
  new User('John'),
  new User('Alice')
)

const usersAdapter = new AsyncAdapter(
  'users',
  Users,
  initialData
)

fastify.register(FastifySteno, {
  path: resolve(dirname(fileURLToPath(import.meta.url)), '..', 'db'),
  entities: [User, Post],
  adapters: [usersAdapter]
})

fastify.get('/users', () => {
  const users = fastify.steno.get<Users>('users')
  return users.data
})

fastify.listen({ host: '0.0.0.0', port: 3000 }, (err, address) => {
  if (err) throw err
  console.log(address)
})
```

## Credits

- [steno](https://github.com/typicode/steno) - Specialized fast async file writer.
- [fastify-plugin](https://github.com/fastify/fastify-plugin) - Plugin helper for Fastify.
- [class-transformer](https://github.com/typestack/class-transformer) - Decorator-based transformation, serialization, and deserialization between objects and classes.
- [class-validator](https://github.com/typestack/class-validator) - Decorator-based property validation for classes.
- [class-validator-jsonschema](https://github.com/epiphone/class-validator-jsonschema) - Convert `class-validator` decorated classes into JSON schema.
- [json-difference](https://github.com/lukascivil/json-difference) - A simple way to find the difference between two objects or json diff.
- [tslog](https://github.com/fullstack-build/tslog) - Universal Logger for TypeScript and JavaScript.

## License

MIT - [crashmax](https://github.com/crashmax-dev)

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