crossfilter immutability error (#1009)

* add rename immutability test

* make rename immutable
This commit is contained in:
Bruce Martin
2019-11-04 14:14:17 -08:00
committed by GitHub
parent e50fd8b881
commit a16c2e2747
2 changed files with 19 additions and 13 deletions
+16 -13
View File
@@ -125,20 +125,17 @@ export default class ImmutableTypedCrossfilter {
}
renameDimension(oldName, newName) {
/*
rename a dimension
*/
const { [oldName]: dim, ...dimensions } = this.dimensions;
const { data, selectionCache } = this;
dim.dim.rename(newName);
return new ImmutableTypedCrossfilter(
data,
{
...dimensions,
[newName]: dim
},
selectionCache
);
const newDimensions = {
...dimensions,
[newName]: {
...dim,
name: newName,
dim: dim.dim.rename(newName)
}
};
return new ImmutableTypedCrossfilter(data, newDimensions, selectionCache);
}
select(name, spec) {
@@ -316,8 +313,14 @@ class _ImmutableBaseDimension {
this.name = name;
}
clone() {
return Object.assign(Object.create(Object.getPrototypeOf(this)), this);
}
rename(name) {
this.name = name;
const d = this.clone();
d.name = name;
return d;
}
select(spec) {