@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 CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  Execute this:
4
4
 
5
- cd fibery-views
6
5
  yarn build
7
6
  npm version patch
8
7
  npm publish --dry-run
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.5",
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.14.1"
22
+ "microbundle": "0.15.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "@fibery/expression-utils": "^1.1.4",
26
- "fibery-schema": "^7.0.6",
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)$": "../fibery-ui/config/jest/babel.js"
53
+ "^.+\\.(js|jsx|ts|tsx)$": "../../fibery-ui/config/jest/babel.js"
54
54
  },
55
55
  "testURL": "http://localhost"
56
56
  }