Wondering what’s next for npm?Check out our public roadmap! »

    This package has been deprecated

    Author message:

    All @superset-ui packages are merged into @superset-ui/core

    @superset-ui/connection
    TypeScript icon, indicating that this package has built-in type declarations

    0.14.23 • Public • Published

    @superset-ui/connection

    Version David (path)

    Connection modules for Superset:

    • SupersetClient requests and authentication
    • (future) i18n locales and translation

    SupersetClient

    The SupersetClient handles all client-side requests to the Superset backend. It can be configured for use within the Superset application, or used to issue CORS requests in other applications. At a high-level it supports:

    • CSRF token authentication
      • a token may be passed at configuration time, else the client will handle fetching and passing the token in all subsequent requests.
      • queues requests in the case that another request is made before the token is received.
      • it checks for a token before every request, and will fail if no token was received or if it has expired. In either case the user should be directed to re-authenticate.
    • supports GET and POST requests (no PUT or DELETE)
    • timeouts
    • query aborts through the AbortController API
    • conditional GET requests using If-None-Match and ETag headers

    Example usage

    // appSetup.js
    import { SupersetClient } from `@superset-ui/connection`;
    // or import SupersetClient from `@superset-ui/connection/lib|esm/SupersetClient`;
     
    SupersetClient.configure(...clientConfig);
    SupersetClient.init(); // CSRF auth, can also chain `.configure().init();
     
    // anotherFile.js
    import { SupersetClient } from `@superset-ui/connection`;
     
    SupersetClient.post(...requestConfig)
      .then(({ request, json }) => ...)
      .catch((error) => ...);

    API

    Client Configuration

    The following flags can be passed in the client config call SupersetClient.configure(...clientConfig);

    • protocol = 'http:'
    • host
    • headers
    • credentials = 'same-origin' (set to include for non-Superset apps)
    • mode = 'same-origin' (set to cors for non-Superset apps)
    • timeout
    • csrfToken you can configure the client with a CSRF token at configuration time, else the client will attempt to fetch this before any other requests are issued
    Per-request Configuration

    The following flags can be passed on a per-request call SupersetClient.get/post(...requestConfig);

    • url or endpoint
    • headers
    • body
    • timeout
    • signal (for aborting, from const { signal } = (new AbortController()))
    • for POST requests
      • postPayload (key values are added to a new FormData())
      • stringify whether to call JSON.stringify on postPayload values
    Request aborting

    Per-request aborting is implemented through the AbortController API:

    import { SupersetClient } from '@superset-ui/connection';
    import AbortController from 'abortcontroller-polyfill';
     
    const controller = new AbortController();
    const { signal } = controller;
     
    SupersetClient.get({ ..., signal }).then(...).catch(...);
     
    if (IWantToCancelForSomeReason) {
      signal.abort(); // Promise is rejected, request `catch` is invoked
    }

    Development

    @data-ui/build-config is used to manage the build configuration for this package including babel builds, jest testing, eslint, and prettier.

    Install

    npm i @superset-ui/connection

    DownloadsWeekly Downloads

    704

    Version

    0.14.23

    License

    Apache-2.0

    Unpacked Size

    64.6 kB

    Total Files

    43

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar