Files
nebula.js/apis/supernova/src/qae.js
Christoffer Åström a57abf1ead refactor: internal packages structure (#94)
* refactor: internal packages structure

* refactor: internal packages structure
2019-08-27 09:57:04 +02:00

42 lines
854 B
JavaScript

const noop = () => {};
function fallback(x, value) {
if (typeof x === 'undefined') {
return () => value;
}
return () => x;
}
function defFn(def = {}) {
return {
min: typeof def.min === 'function' ? def.min : fallback(def.min, 0),
max: typeof def.max === 'function' ? def.max : fallback(def.max, 1000),
add: def.add || noop,
description: def.description || noop,
move: def.move || noop,
remove: def.remove || noop,
replace: def.replace || noop,
};
}
function target(def) {
return {
path: def.path || '/qHyperCubeDef',
dimensions: defFn(def.dimensions),
measures: defFn(def.measures),
};
}
export default function qae(def = {}) {
const q = {
properties: {
...def.properties,
},
data: {
targets: ((def.data || {}).targets || []).map(target),
},
};
return q;
}