crud-in-memory

0.0.11 • Public • Published

CRUD in-memory

CRUD interface for in-memory data

CircleCI

Summary

When developing small CRUD apps it's useful to have a simple abstraction over database operations. This library provides a minimal viable interface for in-memory data tables. This is most useful while prototyping but backends for real databases can be swapped in if persistence is needed but database operations remain simple.

Usage

import configureDatabase from 'crud-mysql'

const database = configureDatabase()
const userTable = database.table('users')

Creates

await database(async query => {
  await query.create('users', { id: 1, username: 'possibilities' })
  await query.create('users', { id: 2, username: 'thrivingkings' })
})

Reads

Read all rows

await database(async query => {
  const users = await query.read('users')
  const usernames = users.map(u => u.username)
  console.info(usernames) //-> ['possibilities', 'thrivingkings']
})

Fetch certain rows

await database(async query => {
  const users = await query.read('users', { id: 1 })
  const { username } = users.pop()
  console.info(username) //-> possibilities
})

Updates

await database(async query => {
  const { country } = await query.update('users', { id: 1, country: 'denmark' })
  console.info(country) //-> denmark
})

Deletion

await database(async query => {
  await query.delete('users', { id: 1 })
  const users = query.read('users', { id: 1 })
  console.info(users.length) //-> 0
})

Other backends

Readme

Keywords

none

Package Sidebar

Install

npm i crud-in-memory

Weekly Downloads

4

Version

0.0.11

License

MIT

Last publish

Collaborators

  • possibilities