Skip to content
Javascript (and Typescript) PostgREST API Client.
TypeScript JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
e2e
scripts/ci
src
tests
.editorconfig
.gitignore
.npmignore
.prettierrc
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
LICENSE
README.md
jest.config.js
package.json
rollup.config.js
tsconfig.json
tslint.json
yarn.lock

README.md

postgrester

License NPM Version Build Status Code Coverage

PostgREST API Client for Javascript and Typescript.


Gettting Started

npm i postgrester

Example

import postgrester from "postgrester";

const postgrestClient = postgrester.create({
  axiosConfig: { baseURL: "https://api.example.com" }
});

(async () => {
  const { data, pagesLength } = await postgrestClient
    .select("*")
    .select("author(first_name,last_name)")
    .is("is_published", true)
    .not.is("isbn", null)
    .eq("publication_year", 1970)
    .in("language_code", ["en-UK", "en-US"])
    .ilike("title", "island")
    .like("author.last_name", "Hemingway")
    .orderBy("publication_year", true) // `true` = DESC
    .orderBy("title")
    .page(3, 25) // 4th page with 25 items per page
    .get("/books", true); // `true` = require the total `pagesLength` value to be calculated
})();

API

Options

When creating the instance via postgrester.create([options]):

Property Type Default Description
axiosConfig AxiosRequestConfig {} Axios config called with axios.create().
axiosInstance AxiosInstance null Axios custom instance.
baseUri string "" API URL. Deprecated

⚠️ If you provide an axios instance via the axiosInstance property, it's useless to set axiosConfig since it would be overridden by your instance.

⚠️ baseUri takes precedence over axiosConfig.baseURL. To avoid any confusion, baseUri will be deprecated in the next minor version release and should be removed in the next major one.

Vertical Filtering (columns) Methods

select()

Name Type Default Examples
selector string required "*", "author", "category(id,label)"

You can also rename them by inserting a colon: original_column_name:new_column_name.

Hoizontal Filtering (rows) Methods

is()

Name Type Default Examples
column string required "author", "category.label"
value boolean | null required

eq()

Name Type Default Examples
column string required "author", "category.label"
value boolean | number | null | string required "Leo Tolstoy"
withQuotes boolean false

Note: boolean and null values will be converted into an is().

neq()

Name Type Default Examples
column string required "author", "category.label"
value boolean | number | null | string required "Leo Tolstoy"
withQuotes boolean false

Note: boolean and null values will be converted into a negated is().

gt()

Name Type Default Examples
column string required "quantity", "category.updated_at"
value number | string required
isInclusive boolean false

gte()

Name Type Default Examples
column string required "quantity", "category.updated_at"
value number | string required

Note: This method is an alias for gt() with <isInclusive> set to true.

lt()

Name Type Default Examples
column string required "quantity", "category.updated_at"
value number | string required
isInclusive boolean false

lte()

Name Type Default Examples
column string required "quantity", "category.updated_at"
value number | string required

Note: This method is an alias for lt() with <isInclusive> set to true.

in()

Name Type Default Examples
column string required "author", "category.label"
value Array<number | string> required ["Leo Tolstoy", "Fyodor Dostoevsky"]
withQuotes boolean false

like()

Name Type Default Examples
column string required "author", "category.label"
value string required "Tolstoy"

ilike()

Name Type Default Examples
column string required "author", "category.label"
value string required "tolstoy"

not

This getter ONLY negates the FIRST following filtering method.

For example, postgrestClient.not.is("category_id", null).ilike("author", "dostoevsky") will negate the is() filter but not the ilike() one.

and

This getter condition ALL the following filtering methods to be conjuncted as "ands".

For example, postgrestClient.and.is("category_id", null).ilike("author", "dostoevsky") will intersect both is() and ilike() filters.

or

This getter condition ALL the following filtering methods to be conjuncted as "ors".

For example, postgrestClient.and.is("category_id", null).ilike("author", "dostoevsky") will unite both is() and ilike() filters.

Ordering Methods

orderBy()

Name Type Default Examples
column string required "author", "category.label"
isDesc boolean false

Pagination Methods

page()

Name Type Default Examples
pageIndex number required 0, 123
limit number 10

Request Methods

All request methods are asynchronous promises.

get()

Name Type Default Examples
path string required "/books"
withPagesLength boolean false

Return value

Promise<{
  data: any;
  pagesLength: number;
}>

⚠️ Important
> pagesLength will equal -1 if <withPagesLength> parameter is false or if the pages length couldn't be calculated.

pagesLength

post()

Name Type Default Examples
path string required "/books"

Return value

Promise<void>

patch()

Name Type Default Examples
path string required "/books"

Return value

Promise<void>

delete()

Name Type Default Examples
path string required "/books"

Return value

Promise<void>

Contribute

Please check our contributing documentation.

License

This package and its sources are distributed under Apache 2.0.


You can’t perform that action at this time.