Open Pioneer Trails Packages

    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[]>

    MMNEPVFCICPMFPCPTTAAATR