dtable-statistic 5.0.48-alpha.14 → 5.0.48-alpha.16

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.
@@ -9,9 +9,9 @@ exports.calcFormulaResultsWithWorker = calcFormulaResultsWithWorker;
9
9
  exports.calcViewRowsWithWorker = calcViewRowsWithWorker;
10
10
  var Comlink = _interopRequireWildcard(require("comlink"));
11
11
  var _calc = _interopRequireDefault(require("./calc.worker"));
12
- var _dtableStore = require("dtable-store");
13
12
  var _resultCacheManager = require("./result-cache-manager");
14
13
  var _threadManager = _interopRequireDefault(require("./thread-manager"));
14
+ var _lodashEs = require("lodash-es");
15
15
  function uuid() {
16
16
  return Math.random().toString(36).slice(2, 9);
17
17
  }
@@ -21,6 +21,13 @@ async function calcViewRowsWithWorker(view, table, value, username, userId, user
21
21
  if (cachedRows) {
22
22
  return cachedRows;
23
23
  }
24
+ const clonedTable = (0, _lodashEs.cloneDeep)(table);
25
+ // Symbol can't passed to workers
26
+ clonedTable.columns = clonedTable.columns.map(c => {
27
+ delete c.editor;
28
+ delete c.formatter;
29
+ return c;
30
+ });
24
31
  const workerId = uuid();
25
32
  let worker;
26
33
  try {
@@ -29,9 +36,7 @@ async function calcViewRowsWithWorker(view, table, value, username, userId, user
29
36
  return [];
30
37
  }
31
38
  const calcWorker = Comlink.wrap(worker);
32
- // const cb = () => Views.getViewRows(view, table, value, username, userId, userDepartmentIdsMap);
33
- // const rows = await calcWorker(Comlink.proxy(cb));
34
- const rows = await calcWorker.getViewRows(view, table, value, username, userId, userDepartmentIdsMap);
39
+ const rows = await calcWorker.getViewRows(view, clonedTable, value, username, userId, userDepartmentIdsMap);
35
40
  _resultCacheManager.viewRowsCacheManager.set(key, rows);
36
41
  _threadManager.default.removeThread(workerId);
37
42
  return rows;
@@ -42,6 +47,13 @@ async function calcFormulaResultsWithWorker(table, rows, value, formulaColumns,
42
47
  if (cachedResults) {
43
48
  return cachedResults;
44
49
  }
50
+ const clonedTable = (0, _lodashEs.cloneDeep)(table);
51
+ // Symbol can't passed to workers
52
+ clonedTable.columns = clonedTable.columns.map(c => {
53
+ delete c.editor;
54
+ delete c.formatter;
55
+ return c;
56
+ });
45
57
  const workerId = uuid();
46
58
  let worker;
47
59
  try {
@@ -50,9 +62,7 @@ async function calcFormulaResultsWithWorker(table, rows, value, formulaColumns,
50
62
  return [];
51
63
  }
52
64
  const calcWorker = Comlink.wrap(worker);
53
- // const cb = () => Views.getTableFormulaResults(table, rows, value, formulaColumns, { username, userId, userDepartmentIdsMap });
54
- // const results = await calcWorker(Comlink.proxy(cb));
55
- const results = await calcWorker.getTableFormulaResults(table, rows, value, formulaColumns, username, userId, userDepartmentIdsMap);
65
+ const results = await calcWorker.getTableFormulaResults(clonedTable, rows, value, formulaColumns, username, userId, userDepartmentIdsMap);
56
66
  _resultCacheManager.formulaResultsCacheManager.set(key, results);
57
67
  _threadManager.default.removeThread(workerId);
58
68
  return results;
@@ -4,8 +4,10 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
4
4
  var Comlink = _interopRequireWildcard(require("comlink"));
5
5
  var _dtableStore = require("dtable-store");
6
6
  // async function calc(callback) {
7
- // return callback();
7
+ // const res = await callback();
8
+ // return res;
8
9
  // }
10
+ // Comlink.expose(calc);
9
11
  const workerFunctions = {
10
12
  async getViewRows(view, table, value, username, userId, userDepartmentIdsMap) {
11
13
  return _dtableStore.Views.getViewRows(view, table, value, username, userId, userDepartmentIdsMap);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dtable-statistic",
3
- "version": "5.0.48-alpha.14",
3
+ "version": "5.0.48-alpha.16",
4
4
  "description": "statistics",
5
5
  "main": "dist/dtable-statistic.js",
6
6
  "author": "seafile",