Skip to content

Latest commit

 

History

History
70 lines (56 loc) · 1.77 KB

README.md

File metadata and controls

70 lines (56 loc) · 1.77 KB

deno-couchdb

Build Status https://img.shields.io/github/tag/keroxp/deno-couchdb.svg license

CouchDB client for Deno built top of fetch

Usage

import { CouchClient } from "https://denopkg.com/keroxp/deno-couchdb/couch.ts";

export type User = {
  id: number;
  name: string;
  years: number[];
};
async function main() {
  // create couch client with endpoint
  const couch = new CouchClient("http://localhost:5984");
  // choose db to use
  const db = couch.database<User>("users");
  // check if specified database exists
  if (!(await couch.databaseExists("users"))) {
    // create new database
    await couch.createDatabase("users");
  }
  // insert new document
  const uesr = {
    id: 100,
    name: "deno",
    years: [2018, 2019],
  };
  const { id, rev } = await db.insert(user);
  // get existing document
  let user = await db.get(id); // {id: 100, name: "deno", years: [2018,2019]}
  // update existing document
  user.years.push(2020);
  await db.put(id, user, { rev });
  // delete existing document
  await db.delete(id);
}

Compatibility Table

Document

  • HEAD /{db}/{docid}
  • GET /{db}/{docid}
  • PUT /{db}/{docid}
  • DELETE /{db}/{docid}
  • COPY /{db}/{docid}

Attachments

  • HEAD /{db}/{docid}/{attname}
  • GET /{db}/{docid}/{attname}
  • PUT /{db}/{docid}/{attname}
  • DELETE /{db}/{docid}/{attname}

Server

  • WIP...

Contributing

WELCOME!
There are still missing features and actually I'm not familiar with CouchDB😇