@superset-ui/query
Advanced tools
Comparing version 0.12.5 to 0.12.8
@@ -1,1 +0,15 @@ | ||
import buildQueryObject from"./buildQueryObject";import DatasourceKey from"./DatasourceKey";var WRAP_IN_ARRAY=function(a){return[a]};export default function buildQueryContext(a,b){return void 0===b&&(b=WRAP_IN_ARRAY),{datasource:new DatasourceKey(a.datasource).toObject(),queries:b(buildQueryObject(a))}} | ||
import buildQueryObject from './buildQueryObject'; | ||
import DatasourceKey from './DatasourceKey'; | ||
const WRAP_IN_ARRAY = baseQueryObject => [baseQueryObject]; | ||
export default function buildQueryContext(formData, buildQuery) { | ||
if (buildQuery === void 0) { | ||
buildQuery = WRAP_IN_ARRAY; | ||
} | ||
return { | ||
datasource: new DatasourceKey(formData.datasource).toObject(), | ||
queries: buildQuery(buildQueryObject(formData)) | ||
}; | ||
} |
@@ -1,2 +0,15 @@ | ||
function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}/* eslint-disable camelcase */import{isSqlaFormData}from"./types/QueryFormData";import convertMetric from"./convertMetric";import processFilters from"./processFilters";import processMetrics from"./processMetrics";import processExtras from"./processExtras";export var DTTM_ALIAS="__timestamp";function processGranularity(a){return isSqlaFormData(a)?a.granularity_sqla:a.granularity}/** | ||
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } | ||
/* eslint-disable camelcase */ | ||
import { isSqlaFormData } from './types/QueryFormData'; | ||
import convertMetric from './convertMetric'; | ||
import processFilters from './processFilters'; | ||
import processMetrics from './processMetrics'; | ||
import processExtras from './processExtras'; | ||
export const DTTM_ALIAS = '__timestamp'; | ||
function processGranularity(formData) { | ||
return isSqlaFormData(formData) ? formData.granularity_sqla : formData.granularity; | ||
} | ||
/** | ||
* Build the common segments of all query objects (e.g. the granularity field derived from | ||
@@ -7,2 +20,36 @@ * either sql alchemy or druid). The segments specific to each viz type is constructed in the | ||
* specific viz, which is a subtype of the generic formData shared among all viz types. | ||
*/export default function buildQueryObject(a){var b=a.time_range,c=a.since,d=a.until,e=a.columns,f=void 0===e?[]:e,g=a.groupby,h=void 0===g?[]:g,i=a.order_desc,j=a.row_limit,k=a.limit,l=a.timeseries_limit_metric,m=new Set([].concat(f,h)),n=_extends({extras:processExtras(a),granularity:processGranularity(a),groupby:Array.from(m),is_timeseries:m.has(DTTM_ALIAS),metrics:processMetrics(a),order_desc:!("undefined"!=typeof i)||i,orderby:[],row_limit:+j,since:c,time_range:b,timeseries_limit:k?+k:0,timeseries_limit_metric:l?convertMetric(l):null,until:d},processFilters(a));return n} | ||
*/ | ||
export default function buildQueryObject(formData) { | ||
const { | ||
time_range, | ||
since, | ||
until, | ||
columns = [], | ||
groupby = [], | ||
order_desc, | ||
row_limit, | ||
limit, | ||
timeseries_limit_metric | ||
} = formData; | ||
const groupbySet = new Set([...columns, ...groupby]); | ||
const queryObject = _extends({ | ||
extras: processExtras(formData), | ||
granularity: processGranularity(formData), | ||
groupby: Array.from(groupbySet), | ||
is_timeseries: groupbySet.has(DTTM_ALIAS), | ||
metrics: processMetrics(formData), | ||
order_desc: typeof order_desc === 'undefined' ? true : order_desc, | ||
orderby: [], | ||
row_limit: Number(row_limit), | ||
since, | ||
time_range, | ||
timeseries_limit: limit ? Number(limit) : 0, | ||
timeseries_limit_metric: timeseries_limit_metric ? convertMetric(timeseries_limit_metric) : null, | ||
until | ||
}, processFilters(formData)); | ||
return queryObject; | ||
} |
@@ -1,1 +0,36 @@ | ||
import{isBinaryAdhocFilter,isUnaryAdhocFilter}from"./types/Filter";export default function convertFilter(a){var b=a.subject;if(isUnaryAdhocFilter(a)){var c=a.operator;return{col:b,op:c}}if(isBinaryAdhocFilter(a)){var d=a.operator;return{col:b,op:d,val:a.comparator}}var e=a.operator;return{col:b,op:e,val:a.comparator}} | ||
import { isBinaryAdhocFilter, isUnaryAdhocFilter } from './types/Filter'; | ||
export default function convertFilter(filter) { | ||
const { | ||
subject | ||
} = filter; | ||
if (isUnaryAdhocFilter(filter)) { | ||
const { | ||
operator | ||
} = filter; | ||
return { | ||
col: subject, | ||
op: operator | ||
}; | ||
} | ||
if (isBinaryAdhocFilter(filter)) { | ||
const { | ||
operator | ||
} = filter; | ||
return { | ||
col: subject, | ||
op: operator, | ||
val: filter.comparator | ||
}; | ||
} | ||
const { | ||
operator | ||
} = filter; | ||
return { | ||
col: subject, | ||
op: operator, | ||
val: filter.comparator | ||
}; | ||
} |
@@ -1,4 +0,37 @@ | ||
function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}export var LABEL_MAX_LENGTH=43;function getDefaultLabel(a){var b;return b="SIMPLE"===a.expressionType?a.aggregate+"("+a.column.columnName+")":a.sqlExpression,b.length<=LABEL_MAX_LENGTH?b:b.substring(0,LABEL_MAX_LENGTH-3)+"..."}export default function convertMetric(a){var b;if("string"==typeof a)b={label:a};else{// Note we further sanitize the metric label for BigQuery datasources | ||
// TODO: move this logic to the client once client has more info on the | ||
// the datasource | ||
var c=a.label||getDefaultLabel(a);b=_extends({},a,{label:c})}return b} | ||
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } | ||
export const LABEL_MAX_LENGTH = 43; | ||
function getDefaultLabel(metric) { | ||
let label; | ||
if (metric.expressionType === 'SIMPLE') { | ||
label = metric.aggregate + "(" + metric.column.columnName + ")"; | ||
} else { | ||
label = metric.sqlExpression; | ||
} | ||
return label.length <= LABEL_MAX_LENGTH ? label : label.slice(0, Math.max(0, LABEL_MAX_LENGTH - 3)) + "..."; | ||
} | ||
export default function convertMetric(metric) { | ||
let formattedMetric; | ||
if (typeof metric === 'string') { | ||
formattedMetric = { | ||
label: metric | ||
}; | ||
} else { | ||
var _metric$label; | ||
// Note we further sanitize the metric label for BigQuery datasources | ||
// TODO: move this logic to the client once client has more info on the | ||
// the datasource | ||
const label = (_metric$label = metric.label) != null ? _metric$label : getDefaultLabel(metric); | ||
formattedMetric = _extends({}, metric, { | ||
label | ||
}); | ||
} | ||
return formattedMetric; | ||
} |
@@ -1,1 +0,26 @@ | ||
function _defineProperty(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}import{DatasourceType}from"./types/Datasource";var DatasourceKey=/*#__PURE__*/function(){function a(a){_defineProperty(this,"id",void 0),_defineProperty(this,"type",void 0);var b=a.split("__"),c=b[0],d=b[1];this.id=parseInt(c,10),this.type="table"===d?DatasourceType.Table:DatasourceType.Druid}var b=a.prototype;return b.toString=function toString(){return this.id+"__"+this.type},b.toObject=function toObject(){return{id:this.id,type:this.type}},a}();export{DatasourceKey as default}; | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
import { DatasourceType } from './types/Datasource'; | ||
export default class DatasourceKey { | ||
constructor(key) { | ||
_defineProperty(this, "id", void 0); | ||
_defineProperty(this, "type", void 0); | ||
const [idStr, typeStr] = key.split('__'); | ||
this.id = parseInt(idStr, 10); | ||
this.type = typeStr === 'table' ? DatasourceType.Table : DatasourceType.Druid; | ||
} | ||
toString() { | ||
return this.id + "__" + this.type; | ||
} | ||
toObject() { | ||
return { | ||
id: this.id, | ||
type: this.type | ||
}; | ||
} | ||
} |
@@ -1,1 +0,10 @@ | ||
export{default as buildQueryContext}from"./buildQueryContext";export{default as buildQueryObject}from"./buildQueryObject";export{default as convertFilter}from"./convertFilter";export{default as convertMetric}from"./convertMetric";export{default as DatasourceKey}from"./DatasourceKey";export*from"./types/QueryFormData";export*from"./types/Column";export*from"./types/Datasource";export*from"./types/Metric";export*from"./types/Query"; | ||
export { default as buildQueryContext } from './buildQueryContext'; | ||
export { default as buildQueryObject } from './buildQueryObject'; | ||
export { default as convertFilter } from './convertFilter'; | ||
export { default as convertMetric } from './convertMetric'; | ||
export { default as DatasourceKey } from './DatasourceKey'; | ||
export * from './types/QueryFormData'; | ||
export * from './types/Column'; | ||
export * from './types/Datasource'; | ||
export * from './types/Metric'; | ||
export * from './types/Query'; |
@@ -1,1 +0,29 @@ | ||
/* eslint-disable camelcase */import{isDruidFormData}from"./types/QueryFormData";export default function processExtras(a){var b=a.where,c=void 0===b?"":b;if(isDruidFormData(a)){var d=a.druid_time_origin,e=a.having_druid;return{druid_time_origin:d,having_druid:e,where:c}}var f=a.time_grain_sqla,g=a.having;return{having:g,time_grain_sqla:f,where:c}} | ||
/* eslint-disable camelcase */ | ||
import { isDruidFormData } from './types/QueryFormData'; | ||
export default function processExtras(formData) { | ||
const { | ||
where = '' | ||
} = formData; | ||
if (isDruidFormData(formData)) { | ||
const { | ||
druid_time_origin, | ||
having_druid | ||
} = formData; | ||
return { | ||
druid_time_origin, | ||
having_druid, | ||
where | ||
}; | ||
} | ||
const { | ||
time_grain_sqla, | ||
having | ||
} = formData; | ||
return { | ||
having, | ||
time_grain_sqla, | ||
where | ||
}; | ||
} |
@@ -1,11 +0,59 @@ | ||
import{isSimpleAdhocFilter}from"./types/Filter";import convertFilter from"./convertFilter";/** Logic formerly in viz.py's process_query_filters */export default function processFilters(a){// TODO: Implement | ||
// utils.convert_legacy_filters_into_adhoc(self.form_data) | ||
// TODO: Implement | ||
// merge_extra_filters(self.form_data) | ||
// Split adhoc_filters into four fields according to | ||
// (1) clause (WHERE or HAVING) | ||
// (2) expressionType | ||
// 2.1 SIMPLE (subject + operator + comparator) | ||
// 2.2 SQL (freeform SQL expression)) | ||
// eslint-disable-next-line camelcase | ||
var b=a.adhoc_filters;if(Array.isArray(b)){var c=[],d=[],e=[],f=[];return b.forEach(function(a){var b=a.clause;if(isSimpleAdhocFilter(a)){var h=convertFilter(a);"WHERE"===b?c.push(h):d.push(h)}else{var g=a.sqlExpression;"WHERE"===b?e.push(g):f.push(g)}}),{filters:c,having:f.map(function(a){return"("+a+")"}).join(" AND "),having_filters:d,where:e.map(function(a){return"("+a+")"}).join(" AND ")}}return{}} | ||
import { isSimpleAdhocFilter } from './types/Filter'; | ||
import convertFilter from './convertFilter'; | ||
/** Logic formerly in viz.py's process_query_filters */ | ||
export default function processFilters(formData) { | ||
// TODO: Implement | ||
// utils.convert_legacy_filters_into_adhoc(self.form_data) | ||
// TODO: Implement | ||
// merge_extra_filters(self.form_data) | ||
// Split adhoc_filters into four fields according to | ||
// (1) clause (WHERE or HAVING) | ||
// (2) expressionType | ||
// 2.1 SIMPLE (subject + operator + comparator) | ||
// 2.2 SQL (freeform SQL expression)) | ||
// eslint-disable-next-line camelcase | ||
const { | ||
adhoc_filters | ||
} = formData; | ||
if (Array.isArray(adhoc_filters)) { | ||
const simpleWhere = []; | ||
const simpleHaving = []; | ||
const freeformWhere = []; | ||
const freeformHaving = []; | ||
adhoc_filters.forEach(filter => { | ||
const { | ||
clause | ||
} = filter; | ||
if (isSimpleAdhocFilter(filter)) { | ||
const filterClause = convertFilter(filter); | ||
if (clause === 'WHERE') { | ||
simpleWhere.push(filterClause); | ||
} else { | ||
simpleHaving.push(filterClause); | ||
} | ||
} else { | ||
const { | ||
sqlExpression | ||
} = filter; | ||
if (clause === 'WHERE') { | ||
freeformWhere.push(sqlExpression); | ||
} else { | ||
freeformHaving.push(sqlExpression); | ||
} | ||
} | ||
}); | ||
return { | ||
filters: simpleWhere, | ||
having: freeformHaving.map(exp => "(" + exp + ")").join(' AND '), | ||
having_filters: simpleHaving, | ||
where: freeformWhere.map(exp => "(" + exp + ")").join(' AND ') | ||
}; | ||
} | ||
return {}; | ||
} |
@@ -1,3 +0,21 @@ | ||
import{MetricKey}from"./types/Metric";import convertMetric from"./convertMetric";export default function processMetrics(a){// Use Array to maintain insertion order | ||
// for metrics that are order sensitive | ||
var b=[];return Object.keys(MetricKey).forEach(function(c){var d=a[MetricKey[c]];d&&(Array.isArray(d)?d.forEach(function(a){b.push(convertMetric(a))}):b.push(convertMetric(d)))}),b} | ||
import { MetricKey } from './types/Metric'; | ||
import convertMetric from './convertMetric'; | ||
export default function processMetrics(formData) { | ||
// Use Array to maintain insertion order | ||
// for metrics that are order sensitive | ||
const metrics = []; | ||
Object.keys(MetricKey).forEach(key => { | ||
const metric = formData[MetricKey[key]]; | ||
if (metric) { | ||
if (Array.isArray(metric)) { | ||
metric.forEach(m => { | ||
metrics.push(convertMetric(m)); | ||
}); | ||
} else { | ||
metrics.push(convertMetric(metric)); | ||
} | ||
} | ||
}); | ||
return metrics; | ||
} |
@@ -1,2 +0,19 @@ | ||
/* eslint-disable no-unused-vars */ /* eslint-disable import/prefer-default-export */export var ColumnType;// TODO: fill out additional fields of the Column interface | ||
(function(a){a.DOUBLE="DOUBLE",a.FLOAT="FLOAT",a.INT="INT",a.BIGINT="BIGINT",a.LONG="LONG",a.REAL="REAL",a.NUMERIC="NUMERIC",a.DECIMAL="DECIMAL",a.MONEY="MONEY",a.DATE="DATE",a.TIME="TIME",a.DATETIME="DATETIME",a.VARCHAR="VARCHAR",a.STRING="STRING",a.CHAR="CHAR"})(ColumnType||(ColumnType={})); | ||
export let ColumnType; // TODO: fill out additional fields of the Column interface | ||
(function (ColumnType) { | ||
ColumnType["DOUBLE"] = "DOUBLE"; | ||
ColumnType["FLOAT"] = "FLOAT"; | ||
ColumnType["INT"] = "INT"; | ||
ColumnType["BIGINT"] = "BIGINT"; | ||
ColumnType["LONG"] = "LONG"; | ||
ColumnType["REAL"] = "REAL"; | ||
ColumnType["NUMERIC"] = "NUMERIC"; | ||
ColumnType["DECIMAL"] = "DECIMAL"; | ||
ColumnType["MONEY"] = "MONEY"; | ||
ColumnType["DATE"] = "DATE"; | ||
ColumnType["TIME"] = "TIME"; | ||
ColumnType["DATETIME"] = "DATETIME"; | ||
ColumnType["VARCHAR"] = "VARCHAR"; | ||
ColumnType["STRING"] = "STRING"; | ||
ColumnType["CHAR"] = "CHAR"; | ||
})(ColumnType || (ColumnType = {})); |
@@ -1,1 +0,7 @@ | ||
/* eslint-disable import/prefer-default-export */export var DatasourceType;/** @TODO can continue to add fields to this */(function(a){a.Table="table",a.Druid="druid"})(DatasourceType||(DatasourceType={})); | ||
export let DatasourceType; | ||
/** @TODO can continue to add fields to this */ | ||
(function (DatasourceType) { | ||
DatasourceType["Table"] = "table"; | ||
DatasourceType["Druid"] = "druid"; | ||
})(DatasourceType || (DatasourceType = {})); |
@@ -1,4 +0,16 @@ | ||
import{isUnaryOperator,isBinaryOperator,isSetOperator}from"./Operator";//--------------------------------------------------- | ||
import { isUnaryOperator, isBinaryOperator, isSetOperator } from './Operator'; | ||
//--------------------------------------------------- | ||
// Type guards | ||
//--------------------------------------------------- | ||
export function isSimpleAdhocFilter(a){return"SIMPLE"===a.expressionType}export function isUnaryAdhocFilter(a){return isUnaryOperator(a.operator)}export function isBinaryAdhocFilter(a){return isBinaryOperator(a.operator)}export function isSetAdhocFilter(a){return isSetOperator(a.operator)} | ||
export function isSimpleAdhocFilter(filter) { | ||
return filter.expressionType === 'SIMPLE'; | ||
} | ||
export function isUnaryAdhocFilter(filter) { | ||
return isUnaryOperator(filter.operator); | ||
} | ||
export function isBinaryAdhocFilter(filter) { | ||
return isBinaryOperator(filter.operator); | ||
} | ||
export function isSetAdhocFilter(filter) { | ||
return isSetOperator(filter.operator); | ||
} |
@@ -1,3 +0,14 @@ | ||
/* eslint-disable no-unused-vars */ /* eslint-disable import/prefer-default-export */ // Note that the values of MetricKeys are lower_snake_case because they're | ||
// Note that the values of MetricKeys are lower_snake_case because they're | ||
// used as keys of form data jsons. | ||
export var MetricKey;(function(a){a.METRIC="metric",a.METRICS="metrics",a.PERCENT_METRICS="percent_metrics",a.RIGHT_AXIS_METRIC="metric_2",a.SECONDARY_METRIC="secondary_metric",a.X="x",a.Y="y",a.SIZE="size"})(MetricKey||(MetricKey={})); | ||
export let MetricKey; | ||
(function (MetricKey) { | ||
MetricKey["METRIC"] = "metric"; | ||
MetricKey["METRICS"] = "metrics"; | ||
MetricKey["PERCENT_METRICS"] = "percent_metrics"; | ||
MetricKey["RIGHT_AXIS_METRIC"] = "metric_2"; | ||
MetricKey["SECONDARY_METRIC"] = "secondary_metric"; | ||
MetricKey["X"] = "x"; | ||
MetricKey["Y"] = "y"; | ||
MetricKey["SIZE"] = "size"; | ||
})(MetricKey || (MetricKey = {})); |
@@ -1,1 +0,28 @@ | ||
/** List of operators that do not require another operand */var UNARY_OPERATORS=["IS NOT NULL","IS NULL"],BINARY_OPERATORS=["=","!=",">","<",">=","<=","like","regex"],SET_OPERATORS=["in","not in"],unaryOperatorSet=new Set(UNARY_OPERATORS);/** List of operators that require another operand that is a single value */export function isUnaryOperator(a){return unaryOperatorSet.has(a)}var binaryOperatorSet=new Set(BINARY_OPERATORS);export function isBinaryOperator(a){return binaryOperatorSet.has(a)}var setOperatorSet=new Set(SET_OPERATORS);export function isSetOperator(a){return setOperatorSet.has(a)} | ||
/** List of operators that do not require another operand */ | ||
const UNARY_OPERATORS = ['IS NOT NULL', 'IS NULL']; | ||
/** List of operators that require another operand that is a single value */ | ||
const BINARY_OPERATORS = ['=', '!=', '>', '<', '>=', '<=', 'like', 'regex']; | ||
/** List of operators that require another operand that is a set */ | ||
const SET_OPERATORS = ['in', 'not in']; //--------------------------------------------------- | ||
// Derived types | ||
//--------------------------------------------------- | ||
/** An operator that does not require another operand */ | ||
//--------------------------------------------------- | ||
// Type guards | ||
//--------------------------------------------------- | ||
const unaryOperatorSet = new Set(UNARY_OPERATORS); | ||
export function isUnaryOperator(operator) { | ||
return unaryOperatorSet.has(operator); | ||
} | ||
const binaryOperatorSet = new Set(BINARY_OPERATORS); | ||
export function isBinaryOperator(operator) { | ||
return binaryOperatorSet.has(operator); | ||
} | ||
const setOperatorSet = new Set(SET_OPERATORS); | ||
export function isSetOperator(operator) { | ||
return setOperatorSet.has(operator); | ||
} |
@@ -1,2 +0,3 @@ | ||
/* eslint camelcase: 0 */ /* eslint-disable import/prefer-default-export */ // FormData uses snake_cased keys. | ||
/* eslint camelcase: 0 */ | ||
// FormData uses snake_cased keys. | ||
// Define mapped type separately to work around a limitation of TypeScript | ||
@@ -12,2 +13,7 @@ // https://github.com/Microsoft/TypeScript/issues/13573 | ||
//--------------------------------------------------- | ||
export function isDruidFormData(a){return"granularity"in a}export function isSqlaFormData(a){return"granularity_sqla"in a} | ||
export function isDruidFormData(formData) { | ||
return 'granularity' in formData; | ||
} | ||
export function isSqlaFormData(formData) { | ||
return 'granularity_sqla' in formData; | ||
} |
import { QueryFormData } from './types/QueryFormData'; | ||
import { QueryContext, QueryObject } from './types/Query'; | ||
export default function buildQueryContext(formData: QueryFormData, buildQuery?: (baseQueryObject: QueryObject) => QueryObject[]): QueryContext; | ||
//# sourceMappingURL=buildQueryContext.d.ts.map |
@@ -1,1 +0,23 @@ | ||
"use strict";exports.__esModule=!0,exports.default=buildQueryContext;var _buildQueryObject=_interopRequireDefault(require("./buildQueryObject")),_DatasourceKey=_interopRequireDefault(require("./DatasourceKey"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}var WRAP_IN_ARRAY=function(a){return[a]};function buildQueryContext(a,b){return void 0===b&&(b=WRAP_IN_ARRAY),{datasource:new _DatasourceKey.default(a.datasource).toObject(),queries:b((0,_buildQueryObject.default)(a))}} | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.default = buildQueryContext; | ||
var _buildQueryObject = _interopRequireDefault(require("./buildQueryObject")); | ||
var _DatasourceKey = _interopRequireDefault(require("./DatasourceKey")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
const WRAP_IN_ARRAY = baseQueryObject => [baseQueryObject]; | ||
function buildQueryContext(formData, buildQuery) { | ||
if (buildQuery === void 0) { | ||
buildQuery = WRAP_IN_ARRAY; | ||
} | ||
return { | ||
datasource: new _DatasourceKey.default(formData.datasource).toObject(), | ||
queries: buildQuery((0, _buildQueryObject.default)(formData)) | ||
}; | ||
} |
@@ -12,1 +12,2 @@ import { QueryObject } from './types/Query'; | ||
export default function buildQueryObject<T extends QueryFormData>(formData: T): QueryObject; | ||
//# sourceMappingURL=buildQueryObject.d.ts.map |
@@ -1,2 +0,28 @@ | ||
"use strict";exports.__esModule=!0,exports.default=buildQueryObject,exports.DTTM_ALIAS=void 0;var _QueryFormData=require("./types/QueryFormData"),_convertMetric=_interopRequireDefault(require("./convertMetric")),_processFilters=_interopRequireDefault(require("./processFilters")),_processMetrics=_interopRequireDefault(require("./processMetrics")),_processExtras=_interopRequireDefault(require("./processExtras"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var DTTM_ALIAS="__timestamp";exports.DTTM_ALIAS=DTTM_ALIAS;function processGranularity(a){return(0,_QueryFormData.isSqlaFormData)(a)?a.granularity_sqla:a.granularity}/** | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.default = buildQueryObject; | ||
exports.DTTM_ALIAS = void 0; | ||
var _QueryFormData = require("./types/QueryFormData"); | ||
var _convertMetric = _interopRequireDefault(require("./convertMetric")); | ||
var _processFilters = _interopRequireDefault(require("./processFilters")); | ||
var _processMetrics = _interopRequireDefault(require("./processMetrics")); | ||
var _processExtras = _interopRequireDefault(require("./processExtras")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } | ||
const DTTM_ALIAS = '__timestamp'; | ||
exports.DTTM_ALIAS = DTTM_ALIAS; | ||
function processGranularity(formData) { | ||
return (0, _QueryFormData.isSqlaFormData)(formData) ? formData.granularity_sqla : formData.granularity; | ||
} | ||
/** | ||
* Build the common segments of all query objects (e.g. the granularity field derived from | ||
@@ -7,2 +33,36 @@ * either sql alchemy or druid). The segments specific to each viz type is constructed in the | ||
* specific viz, which is a subtype of the generic formData shared among all viz types. | ||
*/function buildQueryObject(a){var b=a.time_range,c=a.since,d=a.until,e=a.columns,f=void 0===e?[]:e,g=a.groupby,h=void 0===g?[]:g,i=a.order_desc,j=a.row_limit,k=a.limit,l=a.timeseries_limit_metric,m=new Set([].concat(f,h)),n=_extends({extras:(0,_processExtras.default)(a),granularity:processGranularity(a),groupby:Array.from(m),is_timeseries:m.has(DTTM_ALIAS),metrics:(0,_processMetrics.default)(a),order_desc:!("undefined"!=typeof i)||i,orderby:[],row_limit:+j,since:c,time_range:b,timeseries_limit:k?+k:0,timeseries_limit_metric:l?(0,_convertMetric.default)(l):null,until:d},(0,_processFilters.default)(a));return n} | ||
*/ | ||
function buildQueryObject(formData) { | ||
const { | ||
time_range, | ||
since, | ||
until, | ||
columns = [], | ||
groupby = [], | ||
order_desc, | ||
row_limit, | ||
limit, | ||
timeseries_limit_metric | ||
} = formData; | ||
const groupbySet = new Set([...columns, ...groupby]); | ||
const queryObject = _extends({ | ||
extras: (0, _processExtras.default)(formData), | ||
granularity: processGranularity(formData), | ||
groupby: Array.from(groupbySet), | ||
is_timeseries: groupbySet.has(DTTM_ALIAS), | ||
metrics: (0, _processMetrics.default)(formData), | ||
order_desc: typeof order_desc === 'undefined' ? true : order_desc, | ||
orderby: [], | ||
row_limit: Number(row_limit), | ||
since, | ||
time_range, | ||
timeseries_limit: limit ? Number(limit) : 0, | ||
timeseries_limit_metric: timeseries_limit_metric ? (0, _convertMetric.default)(timeseries_limit_metric) : null, | ||
until | ||
}, (0, _processFilters.default)(formData)); | ||
return queryObject; | ||
} |
import { SimpleAdhocFilter } from './types/Filter'; | ||
import { QueryObjectFilterClause } from './types/Query'; | ||
export default function convertFilter(filter: SimpleAdhocFilter): QueryObjectFilterClause; | ||
//# sourceMappingURL=convertFilter.d.ts.map |
@@ -1,1 +0,42 @@ | ||
"use strict";var _Filter=require("./types/Filter");exports.__esModule=!0,exports.default=convertFilter;function convertFilter(a){var b=a.subject;if((0,_Filter.isUnaryAdhocFilter)(a)){var c=a.operator;return{col:b,op:c}}if((0,_Filter.isBinaryAdhocFilter)(a)){var d=a.operator;return{col:b,op:d,val:a.comparator}}var e=a.operator;return{col:b,op:e,val:a.comparator}} | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.default = convertFilter; | ||
var _Filter = require("./types/Filter"); | ||
function convertFilter(filter) { | ||
const { | ||
subject | ||
} = filter; | ||
if ((0, _Filter.isUnaryAdhocFilter)(filter)) { | ||
const { | ||
operator | ||
} = filter; | ||
return { | ||
col: subject, | ||
op: operator | ||
}; | ||
} | ||
if ((0, _Filter.isBinaryAdhocFilter)(filter)) { | ||
const { | ||
operator | ||
} = filter; | ||
return { | ||
col: subject, | ||
op: operator, | ||
val: filter.comparator | ||
}; | ||
} | ||
const { | ||
operator | ||
} = filter; | ||
return { | ||
col: subject, | ||
op: operator, | ||
val: filter.comparator | ||
}; | ||
} |
@@ -5,1 +5,2 @@ import { QueryFormDataMetric } from './types/QueryFormData'; | ||
export default function convertMetric(metric: QueryFormDataMetric): QueryObjectMetric; | ||
//# sourceMappingURL=convertMetric.d.ts.map |
@@ -1,4 +0,44 @@ | ||
"use strict";exports.__esModule=!0,exports.default=convertMetric,exports.LABEL_MAX_LENGTH=void 0;function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var LABEL_MAX_LENGTH=43;exports.LABEL_MAX_LENGTH=LABEL_MAX_LENGTH;function getDefaultLabel(a){var b;return b="SIMPLE"===a.expressionType?a.aggregate+"("+a.column.columnName+")":a.sqlExpression,b.length<=LABEL_MAX_LENGTH?b:b.substring(0,LABEL_MAX_LENGTH-3)+"..."}function convertMetric(a){var b;if("string"==typeof a)b={label:a};else{// Note we further sanitize the metric label for BigQuery datasources | ||
// TODO: move this logic to the client once client has more info on the | ||
// the datasource | ||
var c=a.label||getDefaultLabel(a);b=_extends({},a,{label:c})}return b} | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.default = convertMetric; | ||
exports.LABEL_MAX_LENGTH = void 0; | ||
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } | ||
const LABEL_MAX_LENGTH = 43; | ||
exports.LABEL_MAX_LENGTH = LABEL_MAX_LENGTH; | ||
function getDefaultLabel(metric) { | ||
let label; | ||
if (metric.expressionType === 'SIMPLE') { | ||
label = metric.aggregate + "(" + metric.column.columnName + ")"; | ||
} else { | ||
label = metric.sqlExpression; | ||
} | ||
return label.length <= LABEL_MAX_LENGTH ? label : label.slice(0, Math.max(0, LABEL_MAX_LENGTH - 3)) + "..."; | ||
} | ||
function convertMetric(metric) { | ||
let formattedMetric; | ||
if (typeof metric === 'string') { | ||
formattedMetric = { | ||
label: metric | ||
}; | ||
} else { | ||
var _metric$label; | ||
// Note we further sanitize the metric label for BigQuery datasources | ||
// TODO: move this logic to the client once client has more info on the | ||
// the datasource | ||
const label = (_metric$label = metric.label) != null ? _metric$label : getDefaultLabel(metric); | ||
formattedMetric = _extends({}, metric, { | ||
label | ||
}); | ||
} | ||
return formattedMetric; | ||
} |
@@ -12,1 +12,2 @@ import { DatasourceType } from './types/Datasource'; | ||
} | ||
//# sourceMappingURL=DatasourceKey.d.ts.map |
@@ -1,1 +0,34 @@ | ||
"use strict";var _Datasource=require("./types/Datasource");exports.__esModule=!0,exports.default=void 0;function _defineProperty(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}var DatasourceKey=/*#__PURE__*/function(){function a(a){_defineProperty(this,"id",void 0),_defineProperty(this,"type",void 0);var b=a.split("__"),c=b[0],d=b[1];this.id=parseInt(c,10),this.type="table"===d?_Datasource.DatasourceType.Table:_Datasource.DatasourceType.Druid}var b=a.prototype;return b.toString=function toString(){return this.id+"__"+this.type},b.toObject=function toObject(){return{id:this.id,type:this.type}},a}();exports.default=DatasourceKey; | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.default = void 0; | ||
var _Datasource = require("./types/Datasource"); | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
class DatasourceKey { | ||
constructor(key) { | ||
_defineProperty(this, "id", void 0); | ||
_defineProperty(this, "type", void 0); | ||
const [idStr, typeStr] = key.split('__'); | ||
this.id = parseInt(idStr, 10); | ||
this.type = typeStr === 'table' ? _Datasource.DatasourceType.Table : _Datasource.DatasourceType.Druid; | ||
} | ||
toString() { | ||
return this.id + "__" + this.type; | ||
} | ||
toObject() { | ||
return { | ||
id: this.id, | ||
type: this.type | ||
}; | ||
} | ||
} | ||
exports.default = DatasourceKey; |
@@ -11,1 +11,2 @@ export { default as buildQueryContext } from './buildQueryContext'; | ||
export * from './types/Query'; | ||
//# sourceMappingURL=index.d.ts.map |
@@ -1,1 +0,73 @@ | ||
"use strict";var _exportNames={buildQueryContext:!0,buildQueryObject:!0,convertFilter:!0,convertMetric:!0,DatasourceKey:!0};var _buildQueryContext=_interopRequireDefault(require("./buildQueryContext"));var _buildQueryObject=_interopRequireDefault(require("./buildQueryObject"));var _convertFilter=_interopRequireDefault(require("./convertFilter"));var _convertMetric=_interopRequireDefault(require("./convertMetric"));var _DatasourceKey=_interopRequireDefault(require("./DatasourceKey"));var _QueryFormData=require("./types/QueryFormData");var _Column=require("./types/Column");var _Datasource=require("./types/Datasource");var _Metric=require("./types/Metric");var _Query=require("./types/Query");exports.__esModule=!0;exports.DatasourceKey=exports.convertMetric=exports.convertFilter=exports.buildQueryObject=exports.buildQueryContext=void 0;exports.buildQueryContext=_buildQueryContext.default;exports.buildQueryObject=_buildQueryObject.default;exports.convertFilter=_convertFilter.default;exports.convertMetric=_convertMetric.default;exports.DatasourceKey=_DatasourceKey.default;Object.keys(_QueryFormData).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||(exports[a]=_QueryFormData[a])});Object.keys(_Column).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||(exports[a]=_Column[a])});Object.keys(_Datasource).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||(exports[a]=_Datasource[a])});Object.keys(_Metric).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||(exports[a]=_Metric[a])});Object.keys(_Query).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||(exports[a]=_Query[a])});function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}} | ||
"use strict"; | ||
exports.__esModule = true; | ||
var _exportNames = { | ||
buildQueryContext: true, | ||
buildQueryObject: true, | ||
convertFilter: true, | ||
convertMetric: true, | ||
DatasourceKey: true | ||
}; | ||
exports.DatasourceKey = exports.convertMetric = exports.convertFilter = exports.buildQueryObject = exports.buildQueryContext = void 0; | ||
var _buildQueryContext = _interopRequireDefault(require("./buildQueryContext")); | ||
exports.buildQueryContext = _buildQueryContext.default; | ||
var _buildQueryObject = _interopRequireDefault(require("./buildQueryObject")); | ||
exports.buildQueryObject = _buildQueryObject.default; | ||
var _convertFilter = _interopRequireDefault(require("./convertFilter")); | ||
exports.convertFilter = _convertFilter.default; | ||
var _convertMetric = _interopRequireDefault(require("./convertMetric")); | ||
exports.convertMetric = _convertMetric.default; | ||
var _DatasourceKey = _interopRequireDefault(require("./DatasourceKey")); | ||
exports.DatasourceKey = _DatasourceKey.default; | ||
var _QueryFormData = require("./types/QueryFormData"); | ||
Object.keys(_QueryFormData).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
exports[key] = _QueryFormData[key]; | ||
}); | ||
var _Column = require("./types/Column"); | ||
Object.keys(_Column).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
exports[key] = _Column[key]; | ||
}); | ||
var _Datasource = require("./types/Datasource"); | ||
Object.keys(_Datasource).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
exports[key] = _Datasource[key]; | ||
}); | ||
var _Metric = require("./types/Metric"); | ||
Object.keys(_Metric).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
exports[key] = _Metric[key]; | ||
}); | ||
var _Query = require("./types/Query"); | ||
Object.keys(_Query).forEach(function (key) { | ||
if (key === "default" || key === "__esModule") return; | ||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; | ||
exports[key] = _Query[key]; | ||
}); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
import { QueryFormData } from './types/QueryFormData'; | ||
import { QueryObjectExtras } from './types/Query'; | ||
export default function processExtras(formData: QueryFormData): QueryObjectExtras; | ||
//# sourceMappingURL=processExtras.d.ts.map |
@@ -1,1 +0,35 @@ | ||
"use strict";var _QueryFormData=require("./types/QueryFormData");exports.__esModule=!0,exports.default=processExtras;/* eslint-disable camelcase */function processExtras(a){var b=a.where,c=void 0===b?"":b;if((0,_QueryFormData.isDruidFormData)(a)){var d=a.druid_time_origin,e=a.having_druid;return{druid_time_origin:d,having_druid:e,where:c}}var f=a.time_grain_sqla,g=a.having;return{having:g,time_grain_sqla:f,where:c}} | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.default = processExtras; | ||
var _QueryFormData = require("./types/QueryFormData"); | ||
/* eslint-disable camelcase */ | ||
function processExtras(formData) { | ||
const { | ||
where = '' | ||
} = formData; | ||
if ((0, _QueryFormData.isDruidFormData)(formData)) { | ||
const { | ||
druid_time_origin, | ||
having_druid | ||
} = formData; | ||
return { | ||
druid_time_origin, | ||
having_druid, | ||
where | ||
}; | ||
} | ||
const { | ||
time_grain_sqla, | ||
having | ||
} = formData; | ||
return { | ||
having, | ||
time_grain_sqla, | ||
where | ||
}; | ||
} |
@@ -15,1 +15,2 @@ import { QueryFormData } from './types/QueryFormData'; | ||
}; | ||
//# sourceMappingURL=processFilters.d.ts.map |
@@ -1,11 +0,67 @@ | ||
"use strict";exports.__esModule=!0,exports.default=processFilters;var _Filter=require("./types/Filter"),_convertFilter=_interopRequireDefault(require("./convertFilter"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}/** Logic formerly in viz.py's process_query_filters */function processFilters(a){// TODO: Implement | ||
// utils.convert_legacy_filters_into_adhoc(self.form_data) | ||
// TODO: Implement | ||
// merge_extra_filters(self.form_data) | ||
// Split adhoc_filters into four fields according to | ||
// (1) clause (WHERE or HAVING) | ||
// (2) expressionType | ||
// 2.1 SIMPLE (subject + operator + comparator) | ||
// 2.2 SQL (freeform SQL expression)) | ||
// eslint-disable-next-line camelcase | ||
var b=a.adhoc_filters;if(Array.isArray(b)){var c=[],d=[],e=[],f=[];return b.forEach(function(a){var b=a.clause;if((0,_Filter.isSimpleAdhocFilter)(a)){var h=(0,_convertFilter.default)(a);"WHERE"===b?c.push(h):d.push(h)}else{var g=a.sqlExpression;"WHERE"===b?e.push(g):f.push(g)}}),{filters:c,having:f.map(function(a){return"("+a+")"}).join(" AND "),having_filters:d,where:e.map(function(a){return"("+a+")"}).join(" AND ")}}return{}} | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.default = processFilters; | ||
var _Filter = require("./types/Filter"); | ||
var _convertFilter = _interopRequireDefault(require("./convertFilter")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
/** Logic formerly in viz.py's process_query_filters */ | ||
function processFilters(formData) { | ||
// TODO: Implement | ||
// utils.convert_legacy_filters_into_adhoc(self.form_data) | ||
// TODO: Implement | ||
// merge_extra_filters(self.form_data) | ||
// Split adhoc_filters into four fields according to | ||
// (1) clause (WHERE or HAVING) | ||
// (2) expressionType | ||
// 2.1 SIMPLE (subject + operator + comparator) | ||
// 2.2 SQL (freeform SQL expression)) | ||
// eslint-disable-next-line camelcase | ||
const { | ||
adhoc_filters | ||
} = formData; | ||
if (Array.isArray(adhoc_filters)) { | ||
const simpleWhere = []; | ||
const simpleHaving = []; | ||
const freeformWhere = []; | ||
const freeformHaving = []; | ||
adhoc_filters.forEach(filter => { | ||
const { | ||
clause | ||
} = filter; | ||
if ((0, _Filter.isSimpleAdhocFilter)(filter)) { | ||
const filterClause = (0, _convertFilter.default)(filter); | ||
if (clause === 'WHERE') { | ||
simpleWhere.push(filterClause); | ||
} else { | ||
simpleHaving.push(filterClause); | ||
} | ||
} else { | ||
const { | ||
sqlExpression | ||
} = filter; | ||
if (clause === 'WHERE') { | ||
freeformWhere.push(sqlExpression); | ||
} else { | ||
freeformHaving.push(sqlExpression); | ||
} | ||
} | ||
}); | ||
return { | ||
filters: simpleWhere, | ||
having: freeformHaving.map(exp => "(" + exp + ")").join(' AND '), | ||
having_filters: simpleHaving, | ||
where: freeformWhere.map(exp => "(" + exp + ")").join(' AND ') | ||
}; | ||
} | ||
return {}; | ||
} |
import { QueryFormData } from './types/QueryFormData'; | ||
import { QueryObjectMetric } from './types/Query'; | ||
export default function processMetrics(formData: QueryFormData): QueryObjectMetric[]; | ||
//# sourceMappingURL=processMetrics.d.ts.map |
@@ -1,3 +0,30 @@ | ||
"use strict";exports.__esModule=!0,exports.default=processMetrics;var _Metric=require("./types/Metric"),_convertMetric=_interopRequireDefault(require("./convertMetric"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function processMetrics(a){// Use Array to maintain insertion order | ||
// for metrics that are order sensitive | ||
var b=[];return Object.keys(_Metric.MetricKey).forEach(function(c){var d=a[_Metric.MetricKey[c]];d&&(Array.isArray(d)?d.forEach(function(a){b.push((0,_convertMetric.default)(a))}):b.push((0,_convertMetric.default)(d)))}),b} | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.default = processMetrics; | ||
var _Metric = require("./types/Metric"); | ||
var _convertMetric = _interopRequireDefault(require("./convertMetric")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function processMetrics(formData) { | ||
// Use Array to maintain insertion order | ||
// for metrics that are order sensitive | ||
const metrics = []; | ||
Object.keys(_Metric.MetricKey).forEach(key => { | ||
const metric = formData[_Metric.MetricKey[key]]; | ||
if (metric) { | ||
if (Array.isArray(metric)) { | ||
metric.forEach(m => { | ||
metrics.push((0, _convertMetric.default)(m)); | ||
}); | ||
} else { | ||
metrics.push((0, _convertMetric.default)(metric)); | ||
} | ||
} | ||
}); | ||
return metrics; | ||
} |
@@ -23,1 +23,2 @@ export declare enum ColumnType { | ||
} | ||
//# sourceMappingURL=Column.d.ts.map |
@@ -1,2 +0,25 @@ | ||
"use strict";exports.__esModule=!0,exports.ColumnType=void 0;/* eslint-disable no-unused-vars */ /* eslint-disable import/prefer-default-export */var ColumnType;// TODO: fill out additional fields of the Column interface | ||
exports.ColumnType=ColumnType,function(a){a.DOUBLE="DOUBLE",a.FLOAT="FLOAT",a.INT="INT",a.BIGINT="BIGINT",a.LONG="LONG",a.REAL="REAL",a.NUMERIC="NUMERIC",a.DECIMAL="DECIMAL",a.MONEY="MONEY",a.DATE="DATE",a.TIME="TIME",a.DATETIME="DATETIME",a.VARCHAR="VARCHAR",a.STRING="STRING",a.CHAR="CHAR"}(ColumnType||(exports.ColumnType=ColumnType={})); | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.ColumnType = void 0; | ||
let ColumnType; // TODO: fill out additional fields of the Column interface | ||
exports.ColumnType = ColumnType; | ||
(function (ColumnType) { | ||
ColumnType["DOUBLE"] = "DOUBLE"; | ||
ColumnType["FLOAT"] = "FLOAT"; | ||
ColumnType["INT"] = "INT"; | ||
ColumnType["BIGINT"] = "BIGINT"; | ||
ColumnType["LONG"] = "LONG"; | ||
ColumnType["REAL"] = "REAL"; | ||
ColumnType["NUMERIC"] = "NUMERIC"; | ||
ColumnType["DECIMAL"] = "DECIMAL"; | ||
ColumnType["MONEY"] = "MONEY"; | ||
ColumnType["DATE"] = "DATE"; | ||
ColumnType["TIME"] = "TIME"; | ||
ColumnType["DATETIME"] = "DATETIME"; | ||
ColumnType["VARCHAR"] = "VARCHAR"; | ||
ColumnType["STRING"] = "STRING"; | ||
ColumnType["CHAR"] = "CHAR"; | ||
})(ColumnType || (exports.ColumnType = ColumnType = {})); |
@@ -16,1 +16,2 @@ import { Column } from './Column'; | ||
} | ||
//# sourceMappingURL=Datasource.d.ts.map |
@@ -1,1 +0,13 @@ | ||
"use strict";exports.__esModule=!0,exports.DatasourceType=void 0;/* eslint-disable import/prefer-default-export */var DatasourceType;/** @TODO can continue to add fields to this */exports.DatasourceType=DatasourceType,function(a){a.Table="table",a.Druid="druid"}(DatasourceType||(exports.DatasourceType=DatasourceType={})); | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.DatasourceType = void 0; | ||
let DatasourceType; | ||
/** @TODO can continue to add fields to this */ | ||
exports.DatasourceType = DatasourceType; | ||
(function (DatasourceType) { | ||
DatasourceType["Table"] = "table"; | ||
DatasourceType["Druid"] = "druid"; | ||
})(DatasourceType || (exports.DatasourceType = DatasourceType = {})); |
@@ -30,1 +30,2 @@ import { UnaryOperator, BinaryOperator, SetOperator } from './Operator'; | ||
export {}; | ||
//# sourceMappingURL=Filter.d.ts.map |
@@ -1,4 +0,28 @@ | ||
"use strict";var _Operator=require("./Operator");exports.__esModule=!0,exports.isSimpleAdhocFilter=isSimpleAdhocFilter,exports.isUnaryAdhocFilter=isUnaryAdhocFilter,exports.isBinaryAdhocFilter=isBinaryAdhocFilter,exports.isSetAdhocFilter=isSetAdhocFilter;//--------------------------------------------------- | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.isSimpleAdhocFilter = isSimpleAdhocFilter; | ||
exports.isUnaryAdhocFilter = isUnaryAdhocFilter; | ||
exports.isBinaryAdhocFilter = isBinaryAdhocFilter; | ||
exports.isSetAdhocFilter = isSetAdhocFilter; | ||
var _Operator = require("./Operator"); | ||
//--------------------------------------------------- | ||
// Type guards | ||
//--------------------------------------------------- | ||
function isSimpleAdhocFilter(a){return"SIMPLE"===a.expressionType}function isUnaryAdhocFilter(a){return(0,_Operator.isUnaryOperator)(a.operator)}function isBinaryAdhocFilter(a){return(0,_Operator.isBinaryOperator)(a.operator)}function isSetAdhocFilter(a){return(0,_Operator.isSetOperator)(a.operator)} | ||
function isSimpleAdhocFilter(filter) { | ||
return filter.expressionType === 'SIMPLE'; | ||
} | ||
function isUnaryAdhocFilter(filter) { | ||
return (0, _Operator.isUnaryOperator)(filter.operator); | ||
} | ||
function isBinaryAdhocFilter(filter) { | ||
return (0, _Operator.isBinaryOperator)(filter.operator); | ||
} | ||
function isSetAdhocFilter(filter) { | ||
return (0, _Operator.isSetOperator)(filter.operator); | ||
} |
@@ -27,1 +27,2 @@ import { Column } from './Column'; | ||
export {}; | ||
//# sourceMappingURL=Metric.d.ts.map |
@@ -1,3 +0,19 @@ | ||
"use strict";exports.__esModule=!0,exports.MetricKey=void 0;/* eslint-disable no-unused-vars */ /* eslint-disable import/prefer-default-export */ // Note that the values of MetricKeys are lower_snake_case because they're | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.MetricKey = void 0; | ||
// Note that the values of MetricKeys are lower_snake_case because they're | ||
// used as keys of form data jsons. | ||
var MetricKey;exports.MetricKey=MetricKey,function(a){a.METRIC="metric",a.METRICS="metrics",a.PERCENT_METRICS="percent_metrics",a.RIGHT_AXIS_METRIC="metric_2",a.SECONDARY_METRIC="secondary_metric",a.X="x",a.Y="y",a.SIZE="size"}(MetricKey||(exports.MetricKey=MetricKey={})); | ||
let MetricKey; | ||
exports.MetricKey = MetricKey; | ||
(function (MetricKey) { | ||
MetricKey["METRIC"] = "metric"; | ||
MetricKey["METRICS"] = "metrics"; | ||
MetricKey["PERCENT_METRICS"] = "percent_metrics"; | ||
MetricKey["RIGHT_AXIS_METRIC"] = "metric_2"; | ||
MetricKey["SECONDARY_METRIC"] = "secondary_metric"; | ||
MetricKey["X"] = "x"; | ||
MetricKey["Y"] = "y"; | ||
MetricKey["SIZE"] = "size"; | ||
})(MetricKey || (exports.MetricKey = MetricKey = {})); |
@@ -17,1 +17,2 @@ /** List of operators that do not require another operand */ | ||
export {}; | ||
//# sourceMappingURL=Operator.d.ts.map |
@@ -1,1 +0,40 @@ | ||
"use strict";exports.__esModule=!0,exports.isUnaryOperator=isUnaryOperator,exports.isBinaryOperator=isBinaryOperator,exports.isSetOperator=isSetOperator;/** List of operators that do not require another operand */var UNARY_OPERATORS=["IS NOT NULL","IS NULL"],BINARY_OPERATORS=["=","!=",">","<",">=","<=","like","regex"],SET_OPERATORS=["in","not in"],unaryOperatorSet=new Set(UNARY_OPERATORS);/** List of operators that require another operand that is a single value */function isUnaryOperator(a){return unaryOperatorSet.has(a)}var binaryOperatorSet=new Set(BINARY_OPERATORS);function isBinaryOperator(a){return binaryOperatorSet.has(a)}var setOperatorSet=new Set(SET_OPERATORS);function isSetOperator(a){return setOperatorSet.has(a)} | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.isUnaryOperator = isUnaryOperator; | ||
exports.isBinaryOperator = isBinaryOperator; | ||
exports.isSetOperator = isSetOperator; | ||
/** List of operators that do not require another operand */ | ||
const UNARY_OPERATORS = ['IS NOT NULL', 'IS NULL']; | ||
/** List of operators that require another operand that is a single value */ | ||
const BINARY_OPERATORS = ['=', '!=', '>', '<', '>=', '<=', 'like', 'regex']; | ||
/** List of operators that require another operand that is a set */ | ||
const SET_OPERATORS = ['in', 'not in']; //--------------------------------------------------- | ||
// Derived types | ||
//--------------------------------------------------- | ||
/** An operator that does not require another operand */ | ||
//--------------------------------------------------- | ||
// Type guards | ||
//--------------------------------------------------- | ||
const unaryOperatorSet = new Set(UNARY_OPERATORS); | ||
function isUnaryOperator(operator) { | ||
return unaryOperatorSet.has(operator); | ||
} | ||
const binaryOperatorSet = new Set(BINARY_OPERATORS); | ||
function isBinaryOperator(operator) { | ||
return binaryOperatorSet.has(operator); | ||
} | ||
const setOperatorSet = new Set(SET_OPERATORS); | ||
function isSetOperator(operator) { | ||
return setOperatorSet.has(operator); | ||
} |
@@ -64,1 +64,2 @@ import { DatasourceType } from './Datasource'; | ||
} | ||
//# sourceMappingURL=Query.d.ts.map |
@@ -48,1 +48,2 @@ import { MetricKey, AdhocMetric } from './Metric'; | ||
export declare function isSqlaFormData(formData: QueryFormData): formData is SqlaFormData; | ||
//# sourceMappingURL=QueryFormData.d.ts.map |
@@ -1,2 +0,9 @@ | ||
"use strict";exports.__esModule=!0,exports.isDruidFormData=isDruidFormData,exports.isSqlaFormData=isSqlaFormData;/* eslint camelcase: 0 */ /* eslint-disable import/prefer-default-export */ // FormData uses snake_cased keys. | ||
"use strict"; | ||
exports.__esModule = true; | ||
exports.isDruidFormData = isDruidFormData; | ||
exports.isSqlaFormData = isSqlaFormData; | ||
/* eslint camelcase: 0 */ | ||
// FormData uses snake_cased keys. | ||
// Define mapped type separately to work around a limitation of TypeScript | ||
@@ -12,2 +19,8 @@ // https://github.com/Microsoft/TypeScript/issues/13573 | ||
//--------------------------------------------------- | ||
function isDruidFormData(a){return"granularity"in a}function isSqlaFormData(a){return"granularity_sqla"in a} | ||
function isDruidFormData(formData) { | ||
return 'granularity' in formData; | ||
} | ||
function isSqlaFormData(formData) { | ||
return 'granularity_sqla' in formData; | ||
} |
@@ -7,1 +7,2 @@ export declare type TimeRange = { | ||
}; | ||
//# sourceMappingURL=Time.d.ts.map |
{ | ||
"name": "@superset-ui/query", | ||
"version": "0.12.5", | ||
"version": "0.12.8", | ||
"description": "Superset UI query", | ||
@@ -28,3 +28,3 @@ "sideEffects": false, | ||
}, | ||
"gitHead": "5b6f4a5bd2cb70089d429c9f635f1d0fbc40973f" | ||
"gitHead": "9bb5c471e0e3d05da38929feb00ade7d0ecdc474" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 4 instances in 1 package
61538
71
1054
1
1