@minni-im/tape-recorder

CouchDB nodejs ORM on top of nano

Usage no npm install needed!

<script type="module">
  import minniImTapeRecorder from 'https://cdn.skypack.dev/@minni-im/tape-recorder';
</script>

README

@minni-im/tape-recorder

a tiny couchdb orm on top of nano

why?

nano is already great. But it could be better with Documents and Models classes.

Install

$ npm install --save @minni-im/tape-recorder

Usage

Discovery usage

import recorder from "@minni-im/tape-recorder";

// Load models from a folder
await recorder.loadModels("./models");
await recorder.connect("http://localhost:5984/<dbname>");

Definition usage

import recorder, { Schema } from "@minni-im/tape-recorder";

const UserSchema = new Schema({
    firstName: String,
    lastName: String,
});
recorder.registerModel("User", UserSchema);

await recorder.connect("http://localhost:5984/<dbname>");

CRUD usage

import recorder from "@minni-im/tape-recorder";

// Create
const User = recorder.get("User");
const user = new User({
    firstName: "John",
    lastName: "Doe",
});
await user.save();

// Update
user.firstName = "Jane";
await user.save();

// Delete
await user.delete();

// Read
const users = await User.findAll();
const user = await User.findById(userId);