@superset-ui/core
Version:
72 lines (54 loc) • 2.15 kB
JavaScript
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import buildQueryObject from './buildQueryObject';
import DatasourceKey from './DatasourceKey';
import { normalizeTimeColumn } from './normalizeTimeColumn';
import { isXAxisSet } from './getXAxis';
const WRAP_IN_ARRAY = (baseQueryObject) => [baseQueryObject];
export default function buildQueryContext(
formData,
options)
{
const { queryFields, buildQuery = WRAP_IN_ARRAY } =
typeof options === 'function' ?
{ buildQuery: options, queryFields: {} } :
options || {};
let queries = buildQuery(buildQueryObject(formData, queryFields));
// --- query mutator begin ---
// todo(Yongjie): move the query mutator into buildQueryObject instead of buildQueryContext
queries.forEach((query) => {
if (Array.isArray(query.post_processing)) {
// eslint-disable-next-line no-param-reassign
query.post_processing = query.post_processing.filter(Boolean);
}
});
if (isXAxisSet(formData)) {
queries = queries.map((query) => normalizeTimeColumn(formData, query));
}
// --- query mutator end ---
return {
datasource: new DatasourceKey(formData.datasource).toObject(),
force: formData.force || false,
queries,
form_data: formData,
result_format: formData.result_format || 'json',
result_type: formData.result_type || 'full'
};
}
//# sourceMappingURL=buildQueryContext.js.map