@fibery/views 1.1.5 → 1.1.6

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$5 = 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$4 = 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$3 = 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": {
@@ -787,6 +812,13 @@ const fixUserSelectedUnitsInTableView = (schema, view) => visitView$1(view, {
787
812
  visitQueryExpression: query => query,
788
813
  visitViewUnit: (fromType, unit) => fixViewUnit(schema, fromType, unit)
789
814
  });
815
+ const collectGarbage$2 = view => {
816
+ return visitView$1(view, {
817
+ visitExpression: (fromType, expression) => expression,
818
+ visitQueryExpression: query => query,
819
+ visitViewUnit: (fromType, unit) => unit.checked ? unit : REMOVE
820
+ });
821
+ };
790
822
 
791
823
  const visitAxis = (axis, visitor) => {
792
824
  if (!axis) {
@@ -949,6 +981,13 @@ const fixUserSelectedUnitsInTimelineView = (schema, view) => {
949
981
  visitViewUnit: (fromType, unit) => fixViewUnit(schema, fromType, unit)
950
982
  });
951
983
  };
984
+ const collectGarbage$1 = view => {
985
+ return visitView(view, {
986
+ visitQueryExpression: query => query,
987
+ visitExpression: (fromType, expression) => expression,
988
+ visitViewUnit: (fromType, unit) => unit.checked ? unit : REMOVE
989
+ });
990
+ };
952
991
 
953
992
  const deleteExpressionWithNotFoundFieldsOrTypesInView = (schema, view, ensureAxisInvariant = true) => {
954
993
  switch (view["fibery/type"]) {
@@ -998,6 +1037,49 @@ const fixUserSelectedUnits = (schema, view) => {
998
1037
  return view;
999
1038
  }
1000
1039
  };
1040
+ /**
1041
+ * Removes garbage from view's meta to reduce the size.
1042
+ */
1043
+
1044
+ const collectGarbage = (schema, view) => {
1045
+ const deleteRemoved = x => {
1046
+ if (Array.isArray(x)) {
1047
+ return x.map(deleteRemoved).filter(y => y !== REMOVE);
1048
+ }
1049
+
1050
+ if (typeof x === "object" && x !== null) {
1051
+ let tmp = Object.entries(x);
1052
+ tmp = tmp.map(e => [e[0], deleteRemoved(e[1])]);
1053
+ tmp = tmp.filter(e => e[1] !== REMOVE);
1054
+ return Object.fromEntries(tmp);
1055
+ }
1056
+
1057
+ return x;
1058
+ };
1059
+
1060
+ switch (view["fibery/type"]) {
1061
+ case "board":
1062
+ return deleteRemoved(collectGarbage$5(view));
1063
+
1064
+ case "list":
1065
+ return deleteRemoved(undefined(view));
1066
+
1067
+ case "table":
1068
+ return deleteRemoved(collectGarbage$2(view));
1069
+
1070
+ case "timeline":
1071
+ return deleteRemoved(collectGarbage$1(view));
1072
+
1073
+ case "calendar":
1074
+ return deleteRemoved(collectGarbage$4(view));
1075
+
1076
+ case "feed":
1077
+ return deleteRemoved(collectGarbage$3(view));
1078
+
1079
+ default:
1080
+ return view;
1081
+ }
1082
+ };
1001
1083
  const replaceNamesWithIdsInView = (schema, view) => {
1002
1084
  switch (view["fibery/type"]) {
1003
1085
  case "board":
@@ -1056,6 +1138,7 @@ const getViewCardTypes = ({
1056
1138
  }
1057
1139
  }) => type);
1058
1140
 
1141
+ exports.collectGarbage = collectGarbage;
1059
1142
  exports.deleteExpressionWithNotFoundFieldsOrTypesInSmartFolder = deleteExpressionWithNotFoundFieldsOrTypesInSmartFolder;
1060
1143
  exports.deleteExpressionWithNotFoundFieldsOrTypesInView = deleteExpressionWithNotFoundFieldsOrTypesInView;
1061
1144
  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.6",
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
  }