Skip to content

Commit 339aea6

Browse files
committed
get rid of ramda in CubeToMetaTransformer
1 parent 258be19 commit 339aea6

File tree

1 file changed

+50
-60
lines changed

1 file changed

+50
-60
lines changed

packages/cubejs-schema-compiler/src/compiler/CubeToMetaTransformer.js

Lines changed: 50 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import inflection from 'inflection';
2-
import R from 'ramda';
32
import camelCase from 'camelcase';
43

54
import { getEnv } from '@cubejs-backend/shared';
@@ -91,60 +90,51 @@ export class CubeToMetaTransformer {
9190
description: cube.description,
9291
connectedComponent: this.joinGraph.connectedComponents()[cube.name],
9392
meta: cube.meta,
94-
measures: R.compose(
95-
R.map((nameToMetric) => ({
96-
...this.measureConfig(cube.name, cubeTitle, nameToMetric),
97-
isVisible: isCubeVisible ? this.isVisible(nameToMetric[1], true) : false,
98-
public: isCubeVisible ? this.isVisible(nameToMetric[1], true) : false,
99-
})),
100-
R.toPairs
101-
)(cube.measures || {}),
102-
dimensions: R.compose(
103-
R.map((nameToDimension) => ({
104-
name: `${cube.name}.${nameToDimension[0]}`,
105-
title: this.title(cubeTitle, nameToDimension),
106-
type: this.dimensionDataType(nameToDimension[1].type),
107-
description: nameToDimension[1].description,
108-
shortTitle: this.title(cubeTitle, nameToDimension, true),
109-
suggestFilterValues:
110-
nameToDimension[1].suggestFilterValues == null
111-
? true
112-
: nameToDimension[1].suggestFilterValues,
113-
format: nameToDimension[1].format,
114-
meta: nameToDimension[1].meta,
115-
isVisible: isCubeVisible
116-
? this.isVisible(nameToDimension[1], !nameToDimension[1].primaryKey)
117-
: false,
118-
public: isCubeVisible
119-
? this.isVisible(nameToDimension[1], !nameToDimension[1].primaryKey)
120-
: false,
121-
primaryKey: !!nameToDimension[1].primaryKey,
122-
aliasMember: nameToDimension[1].aliasMember,
123-
granularities:
124-
nameToDimension[1].granularities
125-
? R.compose(R.map((g) => ({
126-
name: g[0],
127-
title: this.title(cubeTitle, g, true),
128-
interval: g[1].interval,
129-
offset: g[1].offset,
130-
origin: g[1].origin,
131-
})), R.toPairs)(nameToDimension[1].granularities)
132-
: undefined,
133-
})),
134-
R.toPairs
135-
)(cube.dimensions || {}),
136-
segments: R.compose(
137-
R.map((nameToSegment) => ({
138-
name: `${cube.name}.${nameToSegment[0]}`,
139-
title: this.title(cubeTitle, nameToSegment),
140-
shortTitle: this.title(cubeTitle, nameToSegment, true),
141-
description: nameToSegment[1].description,
142-
meta: nameToSegment[1].meta,
143-
isVisible: isCubeVisible ? this.isVisible(nameToSegment[1], true) : false,
144-
public: isCubeVisible ? this.isVisible(nameToSegment[1], true) : false,
145-
})),
146-
R.toPairs
147-
)(cube.segments || {}),
93+
measures: Object.entries(cube.measures || {}).map((nameToMetric) => ({
94+
...this.measureConfig(cube.name, cubeTitle, nameToMetric),
95+
isVisible: isCubeVisible ? this.isVisible(nameToMetric[1], true) : false,
96+
public: isCubeVisible ? this.isVisible(nameToMetric[1], true) : false,
97+
})),
98+
dimensions: Object.entries(cube.dimensions || {}).map((nameToDimension) => ({
99+
name: `${cube.name}.${nameToDimension[0]}`,
100+
title: this.title(cubeTitle, nameToDimension),
101+
type: this.dimensionDataType(nameToDimension[1].type),
102+
description: nameToDimension[1].description,
103+
shortTitle: this.title(cubeTitle, nameToDimension, true),
104+
suggestFilterValues:
105+
nameToDimension[1].suggestFilterValues == null
106+
? true
107+
: nameToDimension[1].suggestFilterValues,
108+
format: nameToDimension[1].format,
109+
meta: nameToDimension[1].meta,
110+
isVisible: isCubeVisible
111+
? this.isVisible(nameToDimension[1], !nameToDimension[1].primaryKey)
112+
: false,
113+
public: isCubeVisible
114+
? this.isVisible(nameToDimension[1], !nameToDimension[1].primaryKey)
115+
: false,
116+
primaryKey: !!nameToDimension[1].primaryKey,
117+
aliasMember: nameToDimension[1].aliasMember,
118+
granularities:
119+
nameToDimension[1].granularities
120+
? Object.entries(nameToDimension[1].granularities).map((g) => ({
121+
name: g[0],
122+
title: this.title(cubeTitle, g, true),
123+
interval: g[1].interval,
124+
offset: g[1].offset,
125+
origin: g[1].origin,
126+
}))
127+
: undefined,
128+
})),
129+
segments: Object.entries(cube.segments || {}).map((nameToSegment) => ({
130+
name: `${cube.name}.${nameToSegment[0]}`,
131+
title: this.title(cubeTitle, nameToSegment),
132+
shortTitle: this.title(cubeTitle, nameToSegment, true),
133+
description: nameToSegment[1].description,
134+
meta: nameToSegment[1].meta,
135+
isVisible: isCubeVisible ? this.isVisible(nameToSegment[1], true) : false,
136+
public: isCubeVisible ? this.isVisible(nameToSegment[1], true) : false,
137+
})),
148138
hierarchies: (cube.evaluatedHierarchies || []).map((it) => ({
149139
...it,
150140
aliasMember: it.aliasMember,
@@ -159,21 +149,21 @@ export class CubeToMetaTransformer {
159149

160150
queriesForContext(contextId) {
161151
// return All queries if no context pass
162-
if (R.isNil(contextId) || R.isEmpty(contextId)) {
152+
if (contextId == null || contextId.length === 0) {
163153
return this.queries;
164154
}
165155

166156
const context = this.contextEvaluator.contextDefinitions[contextId];
167157

168158
// If contextId is wrong
169-
if (R.isNil(context)) {
159+
if (context == null) {
170160
throw new UserError(`Context ${contextId} doesn't exist`);
171161
}
172162

173163
// As for now context works on the cubes level
174-
return R.filter(
175-
(query) => R.includes(query.config.name, context.contextMembers)
176-
)(this.queries);
164+
return this.queries.filter(
165+
(query) => context.contextMembers.includes(query.config.name)
166+
);
177167
}
178168

179169
/**

0 commit comments

Comments
 (0)