Open Pioneer Trails Packages
    Preparing search index...

    Interface SearchSource

    An object that allows searching some set of data.

    Developers can create classes that implement this interface for different search sources.

    interface SearchSource {
        label: string;
        search(inputValue: string, options: SearchOptions): Promise<SearchResult[]>;
    }
    Index

    Properties

    Methods

    Properties

    label: string

    The label of this source.

    This will be displayed by the user interface when results from this search source are shown.

    Methods

    • Performs a search and return a list of search results.

      Implementations should return the results ordered by priority (best match first), if possible.

      The provided AbortSignal in options.signal is used to cancel outdated requests.

      NOTE: If your search source implements custom error handling (i.e. try/catch), it is good practice to forward abort errors without modification. This will enable the Search widget to hide "errors" due to cancellation.

      For example:

      import { isAbortError } from "@open-pioneer/core";

      class CustomSearchSource {
      async search(input, { signal }) {
      try {
      // If the search is cancelled by the UI, doRequest
      // will throw an AbortError. It might throw other errors
      // due to application errors, network problems etc.
      const result = await doCustomSearch(input, signal);
      // ... do something with result
      } catch (e) {
      if (isAbortError(e)) {
      throw e; // rethrow original error
      }
      // Possibly use custom error codes or error classes for better error messages
      throw new Error("Custom search failed", { cause: e });
      }
      }
      }

      Parameters

      Returns Promise<SearchResult[]>