response_parser.ts 846 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import _ from 'lodash';
  2. export default class ResponseParser {
  3. parse(query, results) {
  4. if (!results || results.results.length === 0) {
  5. return [];
  6. }
  7. var influxResults = results.results[0];
  8. if (!influxResults.series) {
  9. return [];
  10. }
  11. var influxdb11format = query.toLowerCase().indexOf('show tag values') >= 0;
  12. var res = {};
  13. _.each(influxResults.series, serie => {
  14. _.each(serie.values, value => {
  15. if (_.isArray(value)) {
  16. if (influxdb11format) {
  17. addUnique(res, value[1] || value[0]);
  18. } else {
  19. addUnique(res, value[0]);
  20. }
  21. } else {
  22. addUnique(res, value);
  23. }
  24. });
  25. });
  26. return _.map(res, value => {
  27. return { text: value };
  28. });
  29. }
  30. }
  31. function addUnique(arr, value) {
  32. arr[value] = value;
  33. }