To start using the bknd API, start by creating a new API instance:

import { Api } from "bknd";

const api = new Api({
   host: "..." // point to your bknd instance
});

The Api class is the main entry point for interacting with the bknd API. It provides methods for all available modules described below.

Data (api.data)

Access the Data specific API methods at api.data.

data.readMany([entity], [query])

To retrieve a list of records from an entity, use the readMany method:

const { data } = await api.data.readMany("posts");

You can also add additional query instructions:

const { data } = await api.data.readMany("posts", {
   limit: 10,
   offset: 0,
   select: ["id", "title", "views"],
   with: ["comments"],
   where: {
      title: "Hello, World!",
      views: {
         $gt: 100
      }
   },
   sort: { by: "views", order: "desc" }
});

The with property automatically adds the related entries to the response.

data.readOne([entity], [id])

To retrieve a single record from an entity, use the readOne method:

const { data } = await api.data.readOne("posts", 1);

data.createOne([entity], [data])

To create a single record of an entity, use the createOne method:

const { data } = await api.data.createOne("posts", {
   title: "Hello, World!",
   content: "This is a test post.",
   views: 0
});

data.updateOne([entity], [id], [data])

To update a single record of an entity, use the updateOne method:

const { data } = await api.data.updateOne("posts", 1, {
   views: 1
});

data.deleteOne([entity], [id])

To delete a single record of an entity, use the deleteOne method:

const { data } = await api.data.deleteOne("posts", 1);

Auth (api.auth)

Access the Auth specific API methods at api.auth. If there is successful authentication, the API will automatically save the token and use it for subsequent requests.

auth.loginWithPassword([input])

To log in with a password, use the loginWithPassword method:

const { data } = await api.auth.loginWithPassword({
   email: "...",
   password: "..."
});

auth.registerWithPassword([input])

To register with a password, use the registerWithPassword method:

const { data } = await api.auth.registerWithPassword({
   email: "...",
   password: "..."
});

auth.me()

To retrieve the current user, use the me method:

const { data } = await api.auth.me();

auth.strategies()

To retrieve the available authentication strategies, use the strategies method:

const { data } = await api.auth.strategies();