@grafana/async-query-data
Advanced tools
Comparing version 0.0.4 to 0.1.4
import { operate } from '../util/lift.js'; | ||
import { OperatorSubscriber } from './OperatorSubscriber.js'; | ||
import { createOperatorSubscriber } from './OperatorSubscriber.js'; | ||
@@ -7,3 +7,3 @@ function map(project, thisArg) { | ||
var index = 0; | ||
source.subscribe(new OperatorSubscriber(subscriber, function (value) { | ||
source.subscribe(createOperatorSubscriber(subscriber, function (value) { | ||
subscriber.next(project.call(thisArg, value, index++)); | ||
@@ -10,0 +10,0 @@ })); |
import { __extends } from 'tslib'; | ||
import { Subscriber } from '../Subscriber.js'; | ||
function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { | ||
return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); | ||
} | ||
var OperatorSubscriber = (function (_super) { | ||
__extends(OperatorSubscriber, _super); | ||
function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { | ||
function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { | ||
var _this = _super.call(this, destination) || this; | ||
_this.onFinalize = onFinalize; | ||
_this.shouldUnsubscribe = shouldUnsubscribe; | ||
_this._next = onNext | ||
@@ -49,5 +53,7 @@ ? function (value) { | ||
var _a; | ||
var closed = this.closed; | ||
_super.prototype.unsubscribe.call(this); | ||
!closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); | ||
if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { | ||
var closed_1 = this.closed; | ||
_super.prototype.unsubscribe.call(this); | ||
!closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); | ||
} | ||
}; | ||
@@ -57,3 +63,3 @@ return OperatorSubscriber; | ||
export { OperatorSubscriber }; | ||
export { OperatorSubscriber, createOperatorSubscriber }; | ||
//# sourceMappingURL=OperatorSubscriber.js.map |
import { __spreadArray, __read } from 'tslib'; | ||
var timeoutProvider = { | ||
setTimeout: function () { | ||
setTimeout: function (handler, timeout) { | ||
var args = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
args[_i] = arguments[_i]; | ||
for (var _i = 2; _i < arguments.length; _i++) { | ||
args[_i - 2] = arguments[_i]; | ||
} | ||
return (setTimeout).apply(void 0, __spreadArray([], __read(args))); | ||
return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); | ||
}, | ||
@@ -11,0 +11,0 @@ clearTimeout: function (handle) { |
@@ -1,2 +0,2 @@ | ||
import { __extends, __spreadArray, __read } from 'tslib'; | ||
import { __extends } from 'tslib'; | ||
import { isFunction } from './util/isFunction.js'; | ||
@@ -75,2 +75,48 @@ import { isSubscription, Subscription } from './Subscription.js'; | ||
}(Subscription)); | ||
var _bind = Function.prototype.bind; | ||
function bind(fn, thisArg) { | ||
return _bind.call(fn, thisArg); | ||
} | ||
var ConsumerObserver = (function () { | ||
function ConsumerObserver(partialObserver) { | ||
this.partialObserver = partialObserver; | ||
} | ||
ConsumerObserver.prototype.next = function (value) { | ||
var partialObserver = this.partialObserver; | ||
if (partialObserver.next) { | ||
try { | ||
partialObserver.next(value); | ||
} | ||
catch (error) { | ||
handleUnhandledError(error); | ||
} | ||
} | ||
}; | ||
ConsumerObserver.prototype.error = function (err) { | ||
var partialObserver = this.partialObserver; | ||
if (partialObserver.error) { | ||
try { | ||
partialObserver.error(err); | ||
} | ||
catch (error) { | ||
handleUnhandledError(error); | ||
} | ||
} | ||
else { | ||
handleUnhandledError(err); | ||
} | ||
}; | ||
ConsumerObserver.prototype.complete = function () { | ||
var partialObserver = this.partialObserver; | ||
if (partialObserver.complete) { | ||
try { | ||
partialObserver.complete(); | ||
} | ||
catch (error) { | ||
handleUnhandledError(error); | ||
} | ||
} | ||
}; | ||
return ConsumerObserver; | ||
}()); | ||
var SafeSubscriber = (function (_super) { | ||
@@ -80,8 +126,11 @@ __extends(SafeSubscriber, _super); | ||
var _this = _super.call(this) || this; | ||
var next; | ||
if (isFunction(observerOrNext)) { | ||
next = observerOrNext; | ||
var partialObserver; | ||
if (isFunction(observerOrNext) || !observerOrNext) { | ||
partialObserver = { | ||
next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined), | ||
error: error !== null && error !== void 0 ? error : undefined, | ||
complete: complete !== null && complete !== void 0 ? complete : undefined, | ||
}; | ||
} | ||
else if (observerOrNext) { | ||
(next = observerOrNext.next, error = observerOrNext.error, complete = observerOrNext.complete); | ||
else { | ||
var context_1; | ||
@@ -91,15 +140,13 @@ if (_this && config.useDeprecatedNextContext) { | ||
context_1.unsubscribe = function () { return _this.unsubscribe(); }; | ||
partialObserver = { | ||
next: observerOrNext.next && bind(observerOrNext.next, context_1), | ||
error: observerOrNext.error && bind(observerOrNext.error, context_1), | ||
complete: observerOrNext.complete && bind(observerOrNext.complete, context_1), | ||
}; | ||
} | ||
else { | ||
context_1 = observerOrNext; | ||
partialObserver = observerOrNext; | ||
} | ||
next = next === null || next === void 0 ? void 0 : next.bind(context_1); | ||
error = error === null || error === void 0 ? void 0 : error.bind(context_1); | ||
complete = complete === null || complete === void 0 ? void 0 : complete.bind(context_1); | ||
} | ||
_this.destination = { | ||
next: next ? wrapForErrorHandling(next) : noop, | ||
error: wrapForErrorHandling(error !== null && error !== void 0 ? error : defaultErrorHandler), | ||
complete: complete ? wrapForErrorHandling(complete) : noop, | ||
}; | ||
_this.destination = new ConsumerObserver(partialObserver); | ||
return _this; | ||
@@ -109,17 +156,6 @@ } | ||
}(Subscriber)); | ||
function wrapForErrorHandling(handler, instance) { | ||
return function () { | ||
var args = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
args[_i] = arguments[_i]; | ||
} | ||
try { | ||
handler.apply(void 0, __spreadArray([], __read(args))); | ||
} | ||
catch (err) { | ||
{ | ||
reportUnhandledError(err); | ||
} | ||
} | ||
}; | ||
function handleUnhandledError(error) { | ||
{ | ||
reportUnhandledError(error); | ||
} | ||
} | ||
@@ -126,0 +162,0 @@ function defaultErrorHandler(err) { |
@@ -11,3 +11,3 @@ import { __values, __spreadArray, __read } from 'tslib'; | ||
this._parentage = null; | ||
this._teardowns = null; | ||
this._finalizers = null; | ||
} | ||
@@ -41,6 +41,6 @@ Subscription.prototype.unsubscribe = function () { | ||
} | ||
var initialTeardown = this.initialTeardown; | ||
if (isFunction(initialTeardown)) { | ||
var initialFinalizer = this.initialTeardown; | ||
if (isFunction(initialFinalizer)) { | ||
try { | ||
initialTeardown(); | ||
initialFinalizer(); | ||
} | ||
@@ -51,10 +51,10 @@ catch (e) { | ||
} | ||
var _teardowns = this._teardowns; | ||
if (_teardowns) { | ||
this._teardowns = null; | ||
var _finalizers = this._finalizers; | ||
if (_finalizers) { | ||
this._finalizers = null; | ||
try { | ||
for (var _teardowns_1 = __values(_teardowns), _teardowns_1_1 = _teardowns_1.next(); !_teardowns_1_1.done; _teardowns_1_1 = _teardowns_1.next()) { | ||
var teardown_1 = _teardowns_1_1.value; | ||
for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { | ||
var finalizer = _finalizers_1_1.value; | ||
try { | ||
execTeardown(teardown_1); | ||
execFinalizer(finalizer); | ||
} | ||
@@ -75,3 +75,3 @@ catch (err) { | ||
try { | ||
if (_teardowns_1_1 && !_teardowns_1_1.done && (_b = _teardowns_1.return)) _b.call(_teardowns_1); | ||
if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); | ||
} | ||
@@ -90,3 +90,3 @@ finally { if (e_2) throw e_2.error; } | ||
if (this.closed) { | ||
execTeardown(teardown); | ||
execFinalizer(teardown); | ||
} | ||
@@ -100,3 +100,3 @@ else { | ||
} | ||
(this._teardowns = (_a = this._teardowns) !== null && _a !== void 0 ? _a : []).push(teardown); | ||
(this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); | ||
} | ||
@@ -123,4 +123,4 @@ } | ||
Subscription.prototype.remove = function (teardown) { | ||
var _teardowns = this._teardowns; | ||
_teardowns && arrRemove(_teardowns, teardown); | ||
var _finalizers = this._finalizers; | ||
_finalizers && arrRemove(_finalizers, teardown); | ||
if (teardown instanceof Subscription) { | ||
@@ -142,8 +142,8 @@ teardown._removeParent(this); | ||
} | ||
function execTeardown(teardown) { | ||
if (isFunction(teardown)) { | ||
teardown(); | ||
function execFinalizer(finalizer) { | ||
if (isFunction(finalizer)) { | ||
finalizer(); | ||
} | ||
else { | ||
teardown.unsubscribe(); | ||
finalizer.unsubscribe(); | ||
} | ||
@@ -150,0 +150,0 @@ } |
@@ -35,2 +35,3 @@ import { DataSourceWithBackend, getBackendSrv, toDataQueryResponse } from '@grafana/runtime'; | ||
this.requestCounter = 100; | ||
// cancel sets shouldCancel to tell requestLooper to cancel the query | ||
this.cancel = (target) => { | ||
@@ -79,2 +80,5 @@ this.storeQuery(target, { shouldCancel: true }); | ||
{ | ||
/** | ||
* Additional query to execute if the current query is still in a running state | ||
*/ | ||
getNextQuery: (rsp) => { | ||
@@ -95,2 +99,5 @@ var _a, _b; | ||
}, | ||
/** | ||
* The original request | ||
*/ | ||
query: (request2) => { | ||
@@ -105,2 +112,3 @@ const { range, targets, requestId, intervalMs, maxDataPoints } = request2; | ||
maxDataPoints, | ||
// getRef optionally chained to support < v8.3.x of Grafana | ||
datasource: this == null ? void 0 : this.getRef(), | ||
@@ -127,2 +135,5 @@ datasourceId: this.id | ||
}, | ||
/** | ||
* Process the results | ||
*/ | ||
process: (data) => { | ||
@@ -140,2 +151,5 @@ for (const frame of data) { | ||
}, | ||
/** | ||
* Callback that gets executed when unsubscribed | ||
*/ | ||
onCancel: () => { | ||
@@ -142,0 +156,0 @@ if (queryID) { |
import React, { useState, useEffect } from 'react'; | ||
import { HorizontalGroup, Button, Spinner } from '@grafana/ui'; | ||
import { Button } from '@grafana/ui'; | ||
import { LoadingState } from '@grafana/data'; | ||
@@ -28,12 +28,23 @@ | ||
} : void 0; | ||
const isQueryValid = props.isQueryValid(props.query); | ||
return /* @__PURE__ */ React.createElement(HorizontalGroup, null, /* @__PURE__ */ React.createElement(Button, { | ||
icon: running ? void 0 : "play", | ||
disabled: running || !isQueryValid, | ||
onClick: onRunQuery | ||
}, running && !stopping ? /* @__PURE__ */ React.createElement(HorizontalGroup, null, /* @__PURE__ */ React.createElement(Spinner, null), " Running") : "Run"), onCancelQuery && /* @__PURE__ */ React.createElement(Button, { | ||
icon: running ? void 0 : "square-shape", | ||
disabled: !running || stopping, | ||
onClick: onCancelQuery | ||
}, stopping ? /* @__PURE__ */ React.createElement(HorizontalGroup, null, /* @__PURE__ */ React.createElement(Spinner, null), " Stopping") : "Stop")); | ||
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement( | ||
Button, | ||
{ | ||
variant: props.enableRun ? "primary" : "secondary", | ||
size: "sm", | ||
onClick: onRunQuery, | ||
icon: running && !stopping ? "fa fa-spinner" : void 0, | ||
disabled: state === LoadingState.Loading || !props.enableRun | ||
}, | ||
"Run query" | ||
), onCancelQuery && /* @__PURE__ */ React.createElement( | ||
Button, | ||
{ | ||
variant: running && !stopping ? "primary" : "secondary", | ||
size: "sm", | ||
disabled: !running || stopping, | ||
icon: stopping ? "fa fa-spinner" : void 0, | ||
onClick: onCancelQuery | ||
}, | ||
"Stop query" | ||
)); | ||
}; | ||
@@ -40,0 +51,0 @@ |
@@ -23,5 +23,5 @@ import { DataQuery, DataSourceJsonData, DataSourceInstanceSettings, DataQueryRequest, DataQueryResponse, LoadingState } from '@grafana/data'; | ||
interface RunQueryButtonsProps<TQuery extends DataQuery> { | ||
enableRun?: boolean; | ||
onRunQuery: () => void; | ||
onCancelQuery?: (query: TQuery) => void; | ||
isQueryValid: (query: TQuery) => boolean; | ||
query: TQuery; | ||
@@ -28,0 +28,0 @@ state?: LoadingState; |
@@ -73,3 +73,3 @@ 'use strict'; | ||
this._parentage = null; | ||
this._teardowns = null; | ||
this._finalizers = null; | ||
} | ||
@@ -103,6 +103,6 @@ Subscription.prototype.unsubscribe = function () { | ||
} | ||
var initialTeardown = this.initialTeardown; | ||
if (isFunction(initialTeardown)) { | ||
var initialFinalizer = this.initialTeardown; | ||
if (isFunction(initialFinalizer)) { | ||
try { | ||
initialTeardown(); | ||
initialFinalizer(); | ||
} | ||
@@ -113,10 +113,10 @@ catch (e) { | ||
} | ||
var _teardowns = this._teardowns; | ||
if (_teardowns) { | ||
this._teardowns = null; | ||
var _finalizers = this._finalizers; | ||
if (_finalizers) { | ||
this._finalizers = null; | ||
try { | ||
for (var _teardowns_1 = tslib.__values(_teardowns), _teardowns_1_1 = _teardowns_1.next(); !_teardowns_1_1.done; _teardowns_1_1 = _teardowns_1.next()) { | ||
var teardown_1 = _teardowns_1_1.value; | ||
for (var _finalizers_1 = tslib.__values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) { | ||
var finalizer = _finalizers_1_1.value; | ||
try { | ||
execTeardown(teardown_1); | ||
execFinalizer(finalizer); | ||
} | ||
@@ -137,3 +137,3 @@ catch (err) { | ||
try { | ||
if (_teardowns_1_1 && !_teardowns_1_1.done && (_b = _teardowns_1.return)) _b.call(_teardowns_1); | ||
if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1); | ||
} | ||
@@ -152,3 +152,3 @@ finally { if (e_2) throw e_2.error; } | ||
if (this.closed) { | ||
execTeardown(teardown); | ||
execFinalizer(teardown); | ||
} | ||
@@ -162,3 +162,3 @@ else { | ||
} | ||
(this._teardowns = (_a = this._teardowns) !== null && _a !== void 0 ? _a : []).push(teardown); | ||
(this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown); | ||
} | ||
@@ -185,4 +185,4 @@ } | ||
Subscription.prototype.remove = function (teardown) { | ||
var _teardowns = this._teardowns; | ||
_teardowns && arrRemove(_teardowns, teardown); | ||
var _finalizers = this._finalizers; | ||
_finalizers && arrRemove(_finalizers, teardown); | ||
if (teardown instanceof Subscription) { | ||
@@ -204,8 +204,8 @@ teardown._removeParent(this); | ||
} | ||
function execTeardown(teardown) { | ||
if (isFunction(teardown)) { | ||
teardown(); | ||
function execFinalizer(finalizer) { | ||
if (isFunction(finalizer)) { | ||
finalizer(); | ||
} | ||
else { | ||
teardown.unsubscribe(); | ||
finalizer.unsubscribe(); | ||
} | ||
@@ -223,8 +223,8 @@ } | ||
var timeoutProvider = { | ||
setTimeout: function () { | ||
setTimeout: function (handler, timeout) { | ||
var args = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
args[_i] = arguments[_i]; | ||
for (var _i = 2; _i < arguments.length; _i++) { | ||
args[_i - 2] = arguments[_i]; | ||
} | ||
return (setTimeout).apply(void 0, tslib.__spreadArray([], tslib.__read(args))); | ||
return setTimeout.apply(void 0, tslib.__spreadArray([handler, timeout], tslib.__read(args))); | ||
}, | ||
@@ -314,2 +314,48 @@ clearTimeout: function (handle) { | ||
}(Subscription)); | ||
var _bind = Function.prototype.bind; | ||
function bind(fn, thisArg) { | ||
return _bind.call(fn, thisArg); | ||
} | ||
var ConsumerObserver = (function () { | ||
function ConsumerObserver(partialObserver) { | ||
this.partialObserver = partialObserver; | ||
} | ||
ConsumerObserver.prototype.next = function (value) { | ||
var partialObserver = this.partialObserver; | ||
if (partialObserver.next) { | ||
try { | ||
partialObserver.next(value); | ||
} | ||
catch (error) { | ||
handleUnhandledError(error); | ||
} | ||
} | ||
}; | ||
ConsumerObserver.prototype.error = function (err) { | ||
var partialObserver = this.partialObserver; | ||
if (partialObserver.error) { | ||
try { | ||
partialObserver.error(err); | ||
} | ||
catch (error) { | ||
handleUnhandledError(error); | ||
} | ||
} | ||
else { | ||
handleUnhandledError(err); | ||
} | ||
}; | ||
ConsumerObserver.prototype.complete = function () { | ||
var partialObserver = this.partialObserver; | ||
if (partialObserver.complete) { | ||
try { | ||
partialObserver.complete(); | ||
} | ||
catch (error) { | ||
handleUnhandledError(error); | ||
} | ||
} | ||
}; | ||
return ConsumerObserver; | ||
}()); | ||
var SafeSubscriber = (function (_super) { | ||
@@ -319,8 +365,11 @@ tslib.__extends(SafeSubscriber, _super); | ||
var _this = _super.call(this) || this; | ||
var next; | ||
if (isFunction(observerOrNext)) { | ||
next = observerOrNext; | ||
var partialObserver; | ||
if (isFunction(observerOrNext) || !observerOrNext) { | ||
partialObserver = { | ||
next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined), | ||
error: error !== null && error !== void 0 ? error : undefined, | ||
complete: complete !== null && complete !== void 0 ? complete : undefined, | ||
}; | ||
} | ||
else if (observerOrNext) { | ||
(next = observerOrNext.next, error = observerOrNext.error, complete = observerOrNext.complete); | ||
else { | ||
var context_1; | ||
@@ -330,15 +379,13 @@ if (_this && config.useDeprecatedNextContext) { | ||
context_1.unsubscribe = function () { return _this.unsubscribe(); }; | ||
partialObserver = { | ||
next: observerOrNext.next && bind(observerOrNext.next, context_1), | ||
error: observerOrNext.error && bind(observerOrNext.error, context_1), | ||
complete: observerOrNext.complete && bind(observerOrNext.complete, context_1), | ||
}; | ||
} | ||
else { | ||
context_1 = observerOrNext; | ||
partialObserver = observerOrNext; | ||
} | ||
next = next === null || next === void 0 ? void 0 : next.bind(context_1); | ||
error = error === null || error === void 0 ? void 0 : error.bind(context_1); | ||
complete = complete === null || complete === void 0 ? void 0 : complete.bind(context_1); | ||
} | ||
_this.destination = { | ||
next: next ? wrapForErrorHandling(next) : noop, | ||
error: wrapForErrorHandling(error !== null && error !== void 0 ? error : defaultErrorHandler), | ||
complete: complete ? wrapForErrorHandling(complete) : noop, | ||
}; | ||
_this.destination = new ConsumerObserver(partialObserver); | ||
return _this; | ||
@@ -348,17 +395,6 @@ } | ||
}(Subscriber)); | ||
function wrapForErrorHandling(handler, instance) { | ||
return function () { | ||
var args = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
args[_i] = arguments[_i]; | ||
} | ||
try { | ||
handler.apply(void 0, tslib.__spreadArray([], tslib.__read(args))); | ||
} | ||
catch (err) { | ||
{ | ||
reportUnhandledError(err); | ||
} | ||
} | ||
}; | ||
function handleUnhandledError(error) { | ||
{ | ||
reportUnhandledError(error); | ||
} | ||
} | ||
@@ -375,7 +411,11 @@ function defaultErrorHandler(err) { | ||
function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { | ||
return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); | ||
} | ||
var OperatorSubscriber = (function (_super) { | ||
tslib.__extends(OperatorSubscriber, _super); | ||
function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { | ||
function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) { | ||
var _this = _super.call(this, destination) || this; | ||
_this.onFinalize = onFinalize; | ||
_this.shouldUnsubscribe = shouldUnsubscribe; | ||
_this._next = onNext | ||
@@ -421,5 +461,7 @@ ? function (value) { | ||
var _a; | ||
var closed = this.closed; | ||
_super.prototype.unsubscribe.call(this); | ||
!closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); | ||
if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { | ||
var closed_1 = this.closed; | ||
_super.prototype.unsubscribe.call(this); | ||
!closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); | ||
} | ||
}; | ||
@@ -432,3 +474,3 @@ return OperatorSubscriber; | ||
var index = 0; | ||
source.subscribe(new OperatorSubscriber(subscriber, function (value) { | ||
source.subscribe(createOperatorSubscriber(subscriber, function (value) { | ||
subscriber.next(project.call(thisArg, value, index++)); | ||
@@ -554,2 +596,3 @@ })); | ||
this.requestCounter = 100; | ||
// cancel sets shouldCancel to tell requestLooper to cancel the query | ||
this.cancel = (target) => { | ||
@@ -598,2 +641,5 @@ this.storeQuery(target, { shouldCancel: true }); | ||
{ | ||
/** | ||
* Additional query to execute if the current query is still in a running state | ||
*/ | ||
getNextQuery: (rsp) => { | ||
@@ -614,2 +660,5 @@ var _a, _b; | ||
}, | ||
/** | ||
* The original request | ||
*/ | ||
query: (request2) => { | ||
@@ -624,2 +673,3 @@ const { range, targets, requestId, intervalMs, maxDataPoints } = request2; | ||
maxDataPoints, | ||
// getRef optionally chained to support < v8.3.x of Grafana | ||
datasource: this == null ? void 0 : this.getRef(), | ||
@@ -646,2 +696,5 @@ datasourceId: this.id | ||
}, | ||
/** | ||
* Process the results | ||
*/ | ||
process: (data) => { | ||
@@ -659,2 +712,5 @@ for (const frame of data) { | ||
}, | ||
/** | ||
* Callback that gets executed when unsubscribed | ||
*/ | ||
onCancel: () => { | ||
@@ -699,12 +755,23 @@ if (queryID) { | ||
} : void 0; | ||
const isQueryValid = props.isQueryValid(props.query); | ||
return /* @__PURE__ */ React__default["default"].createElement(ui.HorizontalGroup, null, /* @__PURE__ */ React__default["default"].createElement(ui.Button, { | ||
icon: running ? void 0 : "play", | ||
disabled: running || !isQueryValid, | ||
onClick: onRunQuery | ||
}, running && !stopping ? /* @__PURE__ */ React__default["default"].createElement(ui.HorizontalGroup, null, /* @__PURE__ */ React__default["default"].createElement(ui.Spinner, null), " Running") : "Run"), onCancelQuery && /* @__PURE__ */ React__default["default"].createElement(ui.Button, { | ||
icon: running ? void 0 : "square-shape", | ||
disabled: !running || stopping, | ||
onClick: onCancelQuery | ||
}, stopping ? /* @__PURE__ */ React__default["default"].createElement(ui.HorizontalGroup, null, /* @__PURE__ */ React__default["default"].createElement(ui.Spinner, null), " Stopping") : "Stop")); | ||
return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */ React__default["default"].createElement( | ||
ui.Button, | ||
{ | ||
variant: props.enableRun ? "primary" : "secondary", | ||
size: "sm", | ||
onClick: onRunQuery, | ||
icon: running && !stopping ? "fa fa-spinner" : void 0, | ||
disabled: state === data.LoadingState.Loading || !props.enableRun | ||
}, | ||
"Run query" | ||
), onCancelQuery && /* @__PURE__ */ React__default["default"].createElement( | ||
ui.Button, | ||
{ | ||
variant: running && !stopping ? "primary" : "secondary", | ||
size: "sm", | ||
disabled: !running || stopping, | ||
icon: stopping ? "fa fa-spinner" : void 0, | ||
onClick: onCancelQuery | ||
}, | ||
"Stop query" | ||
)); | ||
}; | ||
@@ -711,0 +778,0 @@ |
{ | ||
"name": "@grafana/async-query-data", | ||
"version": "0.0.4", | ||
"version": "0.1.4", | ||
"description": "Async query support for Grafana", | ||
@@ -33,21 +33,34 @@ "main": "dist/index.js", | ||
"devDependencies": { | ||
"@grafana/data": "8.4.7", | ||
"@grafana/runtime": "8.4.7", | ||
"@grafana/toolkit": "8.4.7", | ||
"@grafana/ui": "8.4.7", | ||
"@grafana/data": "9.3.2", | ||
"@grafana/eslint-config": "^5.1.0", | ||
"@grafana/runtime": "9.3.2", | ||
"@grafana/tsconfig": "^1.2.0-rc1", | ||
"@grafana/ui": "9.3.2", | ||
"@rollup/plugin-node-resolve": "^15.0.1", | ||
"@swc/core": "^1.3.24", | ||
"@swc/jest": "^0.2.24", | ||
"@testing-library/jest-dom": "^5.11.10", | ||
"@testing-library/react": "^11.2.5", | ||
"@testing-library/react-hooks": "^5.1.0", | ||
"@types/jest": "23.3.14", | ||
"@testing-library/react": "12.1.5", | ||
"@testing-library/react-hooks": "^8.0.1", | ||
"@types/jest": "29.2.4", | ||
"@types/react": "17.0.42", | ||
"@types/react-dom": "17.0.14", | ||
"esbuild": "^0.15.13", | ||
"jest": "^26.6.3", | ||
"@typescript-eslint/eslint-plugin": "^5.48.0", | ||
"esbuild": "^0.16.10", | ||
"eslint": "^8.31.0", | ||
"eslint-plugin-jsdoc": "^39.6.4", | ||
"eslint-plugin-react": "^7.31.11", | ||
"eslint-plugin-react-hooks": "^4.6.0", | ||
"jest": "^29.3.1", | ||
"jest-environment-jsdom": "^29.3.1", | ||
"node-notifier": "^10.0.1", | ||
"react": "17.0.2", | ||
"react-dom": "17.0.2", | ||
"rimraf": "^3.0.2", | ||
"rollup": "^2.79.1", | ||
"rollup-plugin-dts": "^5.0.0", | ||
"rollup-plugin-esbuild": "^4.10.1", | ||
"rollup-plugin-node-externals": "^5.0.2" | ||
"rollup-plugin-esbuild": "^5.0.0", | ||
"rollup-plugin-node-externals": "^5.0.3", | ||
"typescript": "4.8.4" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
182751
1551
31