@fibery/views 1.1.5 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/lib/views.js +91 -0
- package/package.json +4 -4
package/README.md
CHANGED
package/lib/views.js
CHANGED
|
@@ -108,6 +108,9 @@ const fixViewUnit = (schema, fromType, unit) => {
|
|
|
108
108
|
return unit;
|
|
109
109
|
};
|
|
110
110
|
|
|
111
|
+
// output. Not supported in all places, add support as needed.
|
|
112
|
+
|
|
113
|
+
const REMOVE = Symbol("remove");
|
|
111
114
|
const deleteExpressionWithNotFoundFieldsOrTypesInQueryExpression = (schema, queryExpression) => {
|
|
112
115
|
const {
|
|
113
116
|
"q/from": fromExpression,
|
|
@@ -469,6 +472,14 @@ const deleteExpressionWithNotFoundOrInvalidFieldsOrTypesInBoardView = (schema, v
|
|
|
469
472
|
const fixUserSelectedUnitsInBoardView = (schema, view) => {
|
|
470
473
|
return visitView$4(view, fixUserSelectedUnitsViewVisitor(schema));
|
|
471
474
|
};
|
|
475
|
+
const collectGarbage$6 = view => {
|
|
476
|
+
return visitView$4(view, {
|
|
477
|
+
visitQueryExpression: queryExpression => queryExpression,
|
|
478
|
+
visitExpression: (fromType, expression) => expression,
|
|
479
|
+
visitEnums: enums => enums,
|
|
480
|
+
visitViewUnit: (fromType, unit) => unit.checked ? unit : REMOVE
|
|
481
|
+
});
|
|
482
|
+
};
|
|
472
483
|
|
|
473
484
|
const visitView$3 = (view, visitor) => immutableUpdate__default["default"](view, {
|
|
474
485
|
"fibery/meta": {
|
|
@@ -533,6 +544,13 @@ const fixUserSelectedUnitsInCalendarView = (schema, view) => {
|
|
|
533
544
|
visitViewUnit: (fromType, unit) => fixViewUnit(schema, fromType, unit)
|
|
534
545
|
});
|
|
535
546
|
};
|
|
547
|
+
const collectGarbage$5 = view => {
|
|
548
|
+
return visitView$3(view, {
|
|
549
|
+
visitExpression: (fromType, expression) => expression,
|
|
550
|
+
visitQueryExpression: query => query,
|
|
551
|
+
visitViewUnit: (fromType, unit) => unit.checked ? unit : REMOVE
|
|
552
|
+
});
|
|
553
|
+
};
|
|
536
554
|
|
|
537
555
|
const visitView$2 = (view, visitor) => immutableUpdate__default["default"](view, {
|
|
538
556
|
"fibery/meta": {
|
|
@@ -594,6 +612,13 @@ const fixUserSelectedUnitsInFeedView = (schema, view) => {
|
|
|
594
612
|
visitViewUnit: (fromType, unit) => fixViewUnit(schema, fromType, unit)
|
|
595
613
|
});
|
|
596
614
|
};
|
|
615
|
+
const collectGarbage$4 = view => {
|
|
616
|
+
return visitView$2(view, {
|
|
617
|
+
visitExpression: (fromType, expression) => expression,
|
|
618
|
+
visitQueryExpression: query => query,
|
|
619
|
+
visitViewUnit: (fromType, unit) => unit.checked ? unit : REMOVE
|
|
620
|
+
});
|
|
621
|
+
};
|
|
597
622
|
|
|
598
623
|
const visitSmartFolder = (smartFolder, visitor) => immutableUpdate__default["default"](smartFolder, {
|
|
599
624
|
"fibery/meta": {
|
|
@@ -735,6 +760,14 @@ const fixUserSelectedUnitsInSmartFolder = (schema, view) => {
|
|
|
735
760
|
visitViewUnit: (fromType, unit) => fixViewUnit(schema, fromType, unit)
|
|
736
761
|
});
|
|
737
762
|
};
|
|
763
|
+
const collectGarbage$3 = view => {
|
|
764
|
+
return visitSmartFolder(view, {
|
|
765
|
+
visitQueryExpression: query => query,
|
|
766
|
+
visitGroupByExpression: groupBy => groupBy,
|
|
767
|
+
visitExpression: (fromType, expression) => expression,
|
|
768
|
+
visitViewUnit: (fromType, unit) => unit.checked ? unit : REMOVE
|
|
769
|
+
});
|
|
770
|
+
};
|
|
738
771
|
|
|
739
772
|
const visitView$1 = (view, visitor) => immutableUpdate__default["default"](view, {
|
|
740
773
|
"fibery/meta": {
|
|
@@ -787,6 +820,13 @@ const fixUserSelectedUnitsInTableView = (schema, view) => visitView$1(view, {
|
|
|
787
820
|
visitQueryExpression: query => query,
|
|
788
821
|
visitViewUnit: (fromType, unit) => fixViewUnit(schema, fromType, unit)
|
|
789
822
|
});
|
|
823
|
+
const collectGarbage$2 = view => {
|
|
824
|
+
return visitView$1(view, {
|
|
825
|
+
visitExpression: (fromType, expression) => expression,
|
|
826
|
+
visitQueryExpression: query => query,
|
|
827
|
+
visitViewUnit: (fromType, unit) => unit.checked ? unit : REMOVE
|
|
828
|
+
});
|
|
829
|
+
};
|
|
790
830
|
|
|
791
831
|
const visitAxis = (axis, visitor) => {
|
|
792
832
|
if (!axis) {
|
|
@@ -949,6 +989,13 @@ const fixUserSelectedUnitsInTimelineView = (schema, view) => {
|
|
|
949
989
|
visitViewUnit: (fromType, unit) => fixViewUnit(schema, fromType, unit)
|
|
950
990
|
});
|
|
951
991
|
};
|
|
992
|
+
const collectGarbage$1 = view => {
|
|
993
|
+
return visitView(view, {
|
|
994
|
+
visitQueryExpression: query => query,
|
|
995
|
+
visitExpression: (fromType, expression) => expression,
|
|
996
|
+
visitViewUnit: (fromType, unit) => unit.checked ? unit : REMOVE
|
|
997
|
+
});
|
|
998
|
+
};
|
|
952
999
|
|
|
953
1000
|
const deleteExpressionWithNotFoundFieldsOrTypesInView = (schema, view, ensureAxisInvariant = true) => {
|
|
954
1001
|
switch (view["fibery/type"]) {
|
|
@@ -998,6 +1045,49 @@ const fixUserSelectedUnits = (schema, view) => {
|
|
|
998
1045
|
return view;
|
|
999
1046
|
}
|
|
1000
1047
|
};
|
|
1048
|
+
/**
|
|
1049
|
+
* Removes garbage from view's meta to reduce the size.
|
|
1050
|
+
*/
|
|
1051
|
+
|
|
1052
|
+
const collectGarbage = (schema, view) => {
|
|
1053
|
+
const deleteRemoved = x => {
|
|
1054
|
+
if (Array.isArray(x)) {
|
|
1055
|
+
return x.map(deleteRemoved).filter(y => y !== REMOVE);
|
|
1056
|
+
}
|
|
1057
|
+
|
|
1058
|
+
if (typeof x === "object" && x !== null) {
|
|
1059
|
+
let tmp = Object.entries(x);
|
|
1060
|
+
tmp = tmp.map(e => [e[0], deleteRemoved(e[1])]);
|
|
1061
|
+
tmp = tmp.filter(e => e[1] !== REMOVE);
|
|
1062
|
+
return Object.fromEntries(tmp);
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
return x;
|
|
1066
|
+
};
|
|
1067
|
+
|
|
1068
|
+
switch (view["fibery/type"]) {
|
|
1069
|
+
case "board":
|
|
1070
|
+
return deleteRemoved(collectGarbage$6(view));
|
|
1071
|
+
|
|
1072
|
+
case "list":
|
|
1073
|
+
return deleteRemoved(collectGarbage$3(view));
|
|
1074
|
+
|
|
1075
|
+
case "table":
|
|
1076
|
+
return deleteRemoved(collectGarbage$2(view));
|
|
1077
|
+
|
|
1078
|
+
case "timeline":
|
|
1079
|
+
return deleteRemoved(collectGarbage$1(view));
|
|
1080
|
+
|
|
1081
|
+
case "calendar":
|
|
1082
|
+
return deleteRemoved(collectGarbage$5(view));
|
|
1083
|
+
|
|
1084
|
+
case "feed":
|
|
1085
|
+
return deleteRemoved(collectGarbage$4(view));
|
|
1086
|
+
|
|
1087
|
+
default:
|
|
1088
|
+
return view;
|
|
1089
|
+
}
|
|
1090
|
+
};
|
|
1001
1091
|
const replaceNamesWithIdsInView = (schema, view) => {
|
|
1002
1092
|
switch (view["fibery/type"]) {
|
|
1003
1093
|
case "board":
|
|
@@ -1056,6 +1146,7 @@ const getViewCardTypes = ({
|
|
|
1056
1146
|
}
|
|
1057
1147
|
}) => type);
|
|
1058
1148
|
|
|
1149
|
+
exports.collectGarbage = collectGarbage;
|
|
1059
1150
|
exports.deleteExpressionWithNotFoundFieldsOrTypesInSmartFolder = deleteExpressionWithNotFoundFieldsOrTypesInSmartFolder;
|
|
1060
1151
|
exports.deleteExpressionWithNotFoundFieldsOrTypesInView = deleteExpressionWithNotFoundFieldsOrTypesInView;
|
|
1061
1152
|
exports.fixUserSelectedUnits = fixUserSelectedUnits;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fibery/views",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.8",
|
|
4
4
|
"description": "Operations on view objects",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Fibery",
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
"@fibery/eslint-config": "7.1.0",
|
|
20
20
|
"jest": "27.5.1",
|
|
21
21
|
"jest-junit": "13.0.0",
|
|
22
|
-
"microbundle": "0.
|
|
22
|
+
"microbundle": "0.15.0"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@fibery/expression-utils": "^1.1.4",
|
|
26
|
-
"fibery
|
|
26
|
+
"@fibery/schema": "^8.0.6",
|
|
27
27
|
"immutability-helper": "^2.4.0",
|
|
28
28
|
"lodash": "^4.17.21"
|
|
29
29
|
},
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"<rootDir>[/\\\\](build|docs|node_modules|scripts)[/\\\\]"
|
|
51
51
|
],
|
|
52
52
|
"transform": {
|
|
53
|
-
"^.+\\.(js|jsx|ts|tsx)$": "
|
|
53
|
+
"^.+\\.(js|jsx|ts|tsx)$": "../../fibery-ui/config/jest/babel.js"
|
|
54
54
|
},
|
|
55
55
|
"testURL": "http://localhost"
|
|
56
56
|
}
|