@devbookhq/extension
TypeScript icon, indicating that this package has built-in type declarations

0.0.19 • Public • Published

Devbook Extension

Devbook extensions allow users to add search sources that aren’t supported out-of-the-box by Devbook. It’s like a programmable search engine.

Your extension doesn’t have to implement the search logic or any user interface. You only have to do two things:

  1. Upload the search data into Devbook's search engine and keep them up-to-date.
  2. React to user events in the Devbook app.

For uploading extension's search data into Devbook's search engine, use Devbook Extension Admin API.

Installation

npm install @devbookhq/extension
or
yarn add @devbookhq/extension

Usage

import Devbook, { ExtensionEventHandlers } from '@devbookhq/extension';

// If you want to use our predefined functions to fetch extension data, you have to initialize the Devbook object.
const devbook = new Devbook();

const extensionEventHandlers: ExtensionEventHandlers = {
  // Called every time user changes the search query in the Devbook search input.
  // An extension is required to implement this function and return an array of search results.
  onDidQueryChange: async (data, extensionMode, token) => {
    // data - contains information about query.
    // extensionMode - whether an extension is running in the 'prod' or 'dev' mode (read more in our documentation).
    // token - access token you need if you want to make HTTP request on the Devbook API manually.
    
    // Mock example not fetching any data from the extension data.
    const results = [
      {
        id: '1',
        title: 'Hello World!',
        body: `The search query was ${data.query}`,
      },
    ];
    return { results };
   
    // Fetch your extension data from the https://api.usedevbook.com/:version/extension/:extensionID endpoint.
    // You can use our exported predefined functions for that:

    // const results = await devbook.search(['testIndex'], data.query);
    // return { results };
  },
}

export default extensionEventHandlers;

Documentation

TODO: Add a link to documentation.

Read the extension guide.

Examples

Check out the extension examples.

Readme

Keywords

none

Package Sidebar

Install

npm i @devbookhq/extension

Weekly Downloads

2

Version

0.0.19

License

ISC

Unpacked Size

63.4 kB

Total Files

59

Last publish

Collaborators

  • valentatomas
  • mlejva