What is @cubejs-client/core?
@cubejs-client/core is a JavaScript client for Cube.js, an open-source analytical API platform. It allows developers to query and interact with Cube.js to build analytical applications. The package provides functionalities for querying data, managing sessions, and handling real-time updates.
What are @cubejs-client/core's main functionalities?
Querying Data
This feature allows you to query data from Cube.js. The code sample demonstrates how to load data with specific measures, time dimensions, and other dimensions.
const cubejs = require('@cubejs-client/core');
const cubejsApi = cubejs('YOUR-CUBEJS-API-TOKEN');
cubejsApi.load({
measures: ['Orders.count'],
timeDimensions: [{
dimension: 'Orders.createdAt',
dateRange: ['2020-01-01', '2020-12-31']
}],
dimensions: ['Orders.status']
}).then(resultSet => {
console.log(resultSet.tablePivot());
});
Managing Sessions
This feature allows you to manage sessions with Cube.js. The code sample shows how to request a session and log the session ID.
const cubejs = require('@cubejs-client/core');
const cubejsApi = cubejs('YOUR-CUBEJS-API-TOKEN');
cubejsApi.requestSession().then(session => {
console.log('Session ID:', session.id);
});
Handling Real-Time Updates
This feature allows you to handle real-time updates from Cube.js. The code sample demonstrates how to subscribe to data changes and handle updates using a callback function.
const cubejs = require('@cubejs-client/core');
const cubejsApi = cubejs('YOUR-CUBEJS-API-TOKEN');
cubejsApi.subscribe({
measures: ['Orders.count'],
timeDimensions: [{
dimension: 'Orders.createdAt',
dateRange: ['2020-01-01', '2020-12-31']
}],
dimensions: ['Orders.status']
}, {
onNext: (resultSet) => {
console.log(resultSet.tablePivot());
}
});
Other packages similar to @cubejs-client/core
graphql-request
graphql-request is a minimal GraphQL client for Node.js and browsers. It allows you to send GraphQL queries and mutations in a simple and straightforward way. Compared to @cubejs-client/core, graphql-request is more general-purpose and can be used with any GraphQL API, not just Cube.js.
axios
axios is a promise-based HTTP client for the browser and Node.js. It can be used to make HTTP requests to any API, including REST and GraphQL endpoints. While axios is not specifically designed for analytical queries, it provides a flexible way to interact with various APIs, including Cube.js.
apollo-client
apollo-client is a comprehensive state management library for JavaScript that enables you to manage both local and remote data with GraphQL. It is more feature-rich compared to @cubejs-client/core and is designed to work with any GraphQL server, providing advanced caching and state management capabilities.