Skip to content

narkdown/client

Repository files navigation

@narkdown/client

Get unlimited response of Notion API

codecov XO code style npm version license: MIT

Why?

This is an extension of the @notionhq/client to obtain total results for the Paginated endpoints of the Notion API.

The goal is to obtain a total results using the same interface as the Notion API.

Install

$ npm install @narkdown/client

Usage

const {NarkdownClient} = require('@narkdown/client');

// Initializing a client
const narkdown = new NarkdownClient({
  auth: process.env.NOTION_TOKEN,
});

API

It extends @notionhq/client

See the complete list of endpoints in the Notion API reference

unlimited.blocks.children.list

Unlimited version of Retrieve block children

const {NarkdownClient} = require('@narkdown/client');

const narkdown = new NarkdownClient({auth: process.env.NOTION_API_KEY});

(async () => {
  const blockId = 'b55c9c91-384d-452b-81db-d1ef79372b75';
  const response = await narkdown.unlimited.blocks.children.list({
    block_id: blockId,
  });
  console.log(response);
})();

unlimited.databases.query

Unlimited version of Query a database

const {NarkdownClient} = require('@narkdown/client');

const narkdown = new NarkdownClient({auth: process.env.NOTION_API_KEY});

(async () => {
  const databaseId = '897e5a76-ae52-4b48-9fdf-e71f5945d1af';
  const response = await narkdown.unlimited.databases.query({
    database_id: databaseId,
    filter: {
      or: [
        {
          property: 'In stock',
          checkbox: {
            equals: true,
          },
        },
        {
          property: 'Cost of next trip',
          number: {
            greater_than_or_equal_to: 2,
          },
        },
      ],
    },
    sorts: [
      {
        property: 'Last ordered',
        direction: 'ascending',
      },
    ],
  });
  console.log(response);
})();

unlimited.databases.list

Unlimited version of List databases (deprecated)

const {NarkdownClient} = require('@narkdown/client');

const narkdown = new NarkdownClient({auth: process.env.NOTION_API_KEY});

(async () => {
  const response = await narkdown.unlimited.databases.list();
  console.log(response);
})();

unlimited.users.list

Unlimited version of List all users

const {NarkdownClient} = require('@narkdown/client');

const narkdown = new NarkdownClient({auth: process.env.NOTION_API_KEY});

(async () => {
  const response = await narkdown.unlimited.users.list();
  console.log(response);
})();

unlimited.search

Unlimited version of Search

const {NarkdownClient} = require('@narkdown/client');

const narkdown = new NarkdownClient({auth: process.env.NOTION_API_KEY});

(async () => {
  const response = await narkdown.unlimited.search({
    query: 'External tasks',
    sort: {
      direction: 'ascending',
      timestamp: 'last_edited_time',
    },
  });
  console.log(response);
})();

Related

License

MIT