redash-js-client

[![Version](https://img.shields.io/npm/v/redash-js-client.svg)](https://npmjs.org/package/redash-js-client) [![Downloads/week](https://img.shields.io/npm/dw/redash-js-client.svg)](https://npmjs.org/package/redash-js-client) [![License](https://img.shields

Usage no npm install needed!

<script type="module">
  import redashJsClient from 'https://cdn.skypack.dev/redash-js-client';
</script>

README

Redash.io javascript client

Version Downloads/week License TypeScript

A javascript client for redash API.

Table of Contents

Installation

npm install redash-js-client

or

yarn add redash-js-client

Usage

Client initialization

import {redashClient} from 'redash-js-client'

const client = redashClient({
    host: 'https://custom.redash.host.com',
    token: 'my-user-token'
});

Sub Clients

All clients expect the same shape of configuration.

  • query Query object API
  • dashboard Dashboard object API

You can access sub clients through redashClient.

const client = redashClient({token: 'my-user-token'});
client.query.getMany().then(console.log)

or instantiate them independently

import {queryClient} from 'redash-js-client'

const client = queryClient({token: 'my-user-token'});
client.getMany().then(console.log)

Query Client

import {queryClient} from 'redash-js-client'

const client = queryClient({token: 'my-user-token'});

Methods

getOne

Fetch a single query object, returns a redash Result object,

const query = await client.getOne({id: 'query-id'})

getMany

Fetch a list of query objects, returns a RedashCollectionResult object.

const queryCollection = await client.getMany({
    page: 1, 
    page_size: 10, 
    q: 'reports'
})

getJob

Get current job status

const job = await client.getJob({id: 'job-id'})

getCachedResult

Get current job status

const result = await client.getCachedResult({id: 'query-id'})

getUpdatedResult

Updates query and returns new result.

const result = await client.getUpdatedResult({id: 'query-id', max_age: 60})

Saves image to disk for given query/visualization

const query = await client.getSnapshot({
    queryId: 'query-id',
    visualizationId: 'visualization-id',
    path: 'some/local/directory/path'
})

Dashboard Client

Methods

  • getOne
  • getMany
  • getFavorites

Typescript

This project is completely written in typescript. All functions and objects are fully typed.

References