reactiveCache.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
  1. import { DataCache } from 'meteor-reactive-cache';
  2. import { Jsons } from './jsons';
  3. // Server isn't reactive, so search for the data always.
  4. ReactiveCacheServer = {
  5. getBoard(idOrFirstObjectSelector, options) {
  6. const ret = Boards.findOne(idOrFirstObjectSelector, options);
  7. return ret;
  8. },
  9. getBoards(selector, options) {
  10. const ret = Boards.find(selector, options).fetch();
  11. return ret;
  12. },
  13. getList(idOrFirstObjectSelector, options) {
  14. const ret = Lists.findOne(idOrFirstObjectSelector, options);
  15. return ret;
  16. },
  17. getLists(selector, options) {
  18. const ret = Lists.find(selector, options).fetch();
  19. return ret;
  20. },
  21. getSwimlane(idOrFirstObjectSelector, options) {
  22. const ret = Swimlanes.findOne(idOrFirstObjectSelector, options);
  23. return ret;
  24. },
  25. getSwimlanes(selector, options) {
  26. const ret = Swimlanes.find(selector, options).fetch();
  27. return ret;
  28. },
  29. getChecklist(idOrFirstObjectSelector, options) {
  30. const ret = Checklists.findOne(idOrFirstObjectSelector, options);
  31. return ret;
  32. },
  33. getChecklists(selector, options) {
  34. const ret = Checklists.find(selector, options).fetch();
  35. return ret;
  36. },
  37. getChecklistItem(idOrFirstObjectSelector, options) {
  38. const ret = ChecklistItems.findOne(idOrFirstObjectSelector, options);
  39. return ret;
  40. },
  41. getChecklistItems(selector, options) {
  42. const ret = ChecklistItems.find(selector, options).fetch();
  43. return ret;
  44. },
  45. getCard(idOrFirstObjectSelector, options) {
  46. const ret = Cards.findOne(idOrFirstObjectSelector, options);
  47. return ret;
  48. },
  49. getCards(selector, options) {
  50. const ret = Cards.find(selector, options).fetch();
  51. return ret;
  52. },
  53. getCardComment(idOrFirstObjectSelector, options) {
  54. const ret = CardComments.findOne(idOrFirstObjectSelector, options);
  55. return ret;
  56. },
  57. getCardComments(selector, options) {
  58. const ret = CardComments.find(selector, options).fetch();
  59. return ret;
  60. },
  61. getCustomField(idOrFirstObjectSelector, options) {
  62. const ret = CustomFields.findOne(idOrFirstObjectSelector, options);
  63. return ret;
  64. },
  65. getCustomFields(selector, options) {
  66. const ret = CustomFields.find(selector, options).fetch();
  67. return ret;
  68. },
  69. getAttachment(idOrFirstObjectSelector, options) {
  70. const ret = Attachments.findOne(idOrFirstObjectSelector, options);
  71. return ret;
  72. },
  73. getAttachments(selector, options) {
  74. const ret = Attachments.find(selector, options).fetch();
  75. return ret;
  76. },
  77. getUser(idOrFirstObjectSelector, options) {
  78. const ret = Users.findOne(idOrFirstObjectSelector, options);
  79. return ret;
  80. },
  81. getUsers(selector, options) {
  82. const ret = Users.find(selector, options).fetch();
  83. return ret;
  84. },
  85. getOrg(idOrFirstObjectSelector, options) {
  86. const ret = Org.findOne(idOrFirstObjectSelector, options);
  87. return ret;
  88. },
  89. getOrgs(selector, options) {
  90. const ret = Org.find(selector, options).fetch();
  91. return ret;
  92. },
  93. getTeam(idOrFirstObjectSelector, options) {
  94. const ret = Team.findOne(idOrFirstObjectSelector, options);
  95. return ret;
  96. },
  97. getTeams(selector, options) {
  98. const ret = Team.find(selector, options).fetch();
  99. return ret;
  100. },
  101. getActivity(idOrFirstObjectSelector, options) {
  102. const ret = Activities.findOne(idOrFirstObjectSelector, options);
  103. return ret;
  104. },
  105. getActivities(selector, options) {
  106. const ret = Activities.find(selector, options).fetch();
  107. return ret;
  108. },
  109. getRule(idOrFirstObjectSelector, options) {
  110. const ret = Rules.findOne(idOrFirstObjectSelector, options);
  111. return ret;
  112. },
  113. getRules(selector, options) {
  114. const ret = Rules.find(selector, options).fetch();
  115. return ret;
  116. },
  117. getAction(idOrFirstObjectSelector, options) {
  118. const ret = Actions.findOne(idOrFirstObjectSelector, options);
  119. return ret;
  120. },
  121. getActions(selector, options) {
  122. const ret = Actions.find(selector, options).fetch();
  123. return ret;
  124. },
  125. getTrigger(idOrFirstObjectSelector, options) {
  126. const ret = Triggers.findOne(idOrFirstObjectSelector, options);
  127. return ret;
  128. },
  129. getTriggers(selector, options) {
  130. const ret = Triggers.find(selector, options).fetch();
  131. return ret;
  132. },
  133. getCurrentSetting() {
  134. const ret = Settings.findOne();
  135. return ret;
  136. },
  137. getCurrentUser() {
  138. const ret = Meteor.user();
  139. return ret;
  140. },
  141. }
  142. // only the Client is reactive
  143. // saving the result has a big advantage if the query is big and often searched for the same data again and again
  144. // if the data is changed in the client, the data is saved to the server and depending code is reactive called again
  145. ReactiveCacheClient = {
  146. getBoard(idOrFirstObjectSelector, options) {
  147. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  148. if (!this.__board) {
  149. this.__board = new DataCache(_idOrFirstObjectSelect => {
  150. const __select = Jsons.parse(_idOrFirstObjectSelect);
  151. const _ret = Boards.findOne(__select.idOrFirstObjectSelector, __select.options);
  152. return _ret;
  153. });
  154. }
  155. const ret = this.__board.get(Jsons.stringify(idOrFirstObjectSelect));
  156. return ret;
  157. },
  158. getBoards(selector, options) {
  159. const select = {selector, options}
  160. if (!this.__boards) {
  161. this.__boards = new DataCache(_select => {
  162. const __select = Jsons.parse(_select);
  163. const _ret = Boards.find(__select.selector, __select.options).fetch();
  164. return _ret;
  165. });
  166. }
  167. const ret = this.__boards.get(Jsons.stringify(select));
  168. return ret;
  169. },
  170. getList(idOrFirstObjectSelector, options) {
  171. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  172. if (!this.__list) {
  173. this.__list = new DataCache(_idOrFirstObjectSelect => {
  174. const __select = Jsons.parse(_idOrFirstObjectSelect);
  175. const _ret = Lists.findOne(__select.idOrFirstObjectSelector, __select.options);
  176. return _ret;
  177. });
  178. }
  179. const ret = this.__list.get(Jsons.stringify(idOrFirstObjectSelect));
  180. return ret;
  181. },
  182. getLists(selector, options) {
  183. const select = {selector, options}
  184. if (!this.__lists) {
  185. this.__lists = new DataCache(_select => {
  186. const __select = Jsons.parse(_select);
  187. const _ret = Lists.find(__select.selector, __select.options).fetch();
  188. return _ret;
  189. });
  190. }
  191. const ret = this.__lists.get(Jsons.stringify(select));
  192. return ret;
  193. },
  194. getSwimlane(idOrFirstObjectSelector, options) {
  195. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  196. if (!this.__swimlane) {
  197. this.__swimlane = new DataCache(_idOrFirstObjectSelect => {
  198. const __select = Jsons.parse(_idOrFirstObjectSelect);
  199. const _ret = Swimlanes.findOne(__select.idOrFirstObjectSelector, __select.options);
  200. return _ret;
  201. });
  202. }
  203. const ret = this.__swimlane.get(Jsons.stringify(idOrFirstObjectSelect));
  204. return ret;
  205. },
  206. getSwimlanes(selector, options) {
  207. const select = {selector, options}
  208. if (!this.__swimlanes) {
  209. this.__swimlanes = new DataCache(_select => {
  210. const __select = Jsons.parse(_select);
  211. const _ret = Swimlanes.find(__select.selector, __select.options).fetch();
  212. return _ret;
  213. });
  214. }
  215. const ret = this.__swimlanes.get(Jsons.stringify(select));
  216. return ret;
  217. },
  218. getChecklist(idOrFirstObjectSelector, options) {
  219. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  220. if (!this.__checklist) {
  221. this.__checklist = new DataCache(_idOrFirstObjectSelect => {
  222. const __select = Jsons.parse(_idOrFirstObjectSelect);
  223. const _ret = Checklists.findOne(__select.idOrFirstObjectSelector, __select.options);
  224. return _ret;
  225. });
  226. }
  227. const ret = this.__checklist.get(Jsons.stringify(idOrFirstObjectSelect));
  228. return ret;
  229. },
  230. getChecklists(selector, options) {
  231. const select = {selector, options}
  232. if (!this.__checklists) {
  233. this.__checklists = new DataCache(_select => {
  234. const __select = Jsons.parse(_select);
  235. const _ret = Checklists.find(__select.selector, __select.options).fetch();
  236. return _ret;
  237. });
  238. }
  239. const ret = this.__checklists.get(Jsons.stringify(select));
  240. return ret;
  241. },
  242. getChecklistItem(idOrFirstObjectSelector, options) {
  243. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  244. if (!this.__checklistItem) {
  245. this.__checklistItem = new DataCache(_idOrFirstObjectSelect => {
  246. const __select = Jsons.parse(_idOrFirstObjectSelect);
  247. const _ret = ChecklistItems.findOne(__select.idOrFirstObjectSelector, __select.options);
  248. return _ret;
  249. });
  250. }
  251. const ret = this.__checklistItem.get(Jsons.stringify(idOrFirstObjectSelect));
  252. return ret;
  253. },
  254. getChecklistItems(selector, options) {
  255. const select = {selector, options}
  256. if (!this.__checklistItems) {
  257. this.__checklistItems = new DataCache(_select => {
  258. const __select = Jsons.parse(_select);
  259. const _ret = ChecklistItems.find(__select.selector, __select.options).fetch();
  260. return _ret;
  261. });
  262. }
  263. const ret = this.__checklistItems.get(Jsons.stringify(select));
  264. return ret;
  265. },
  266. getCard(idOrFirstObjectSelector, options) {
  267. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  268. if (!this.__card) {
  269. this.__card = new DataCache(_idOrFirstObjectSelect => {
  270. const __select = Jsons.parse(_idOrFirstObjectSelect);
  271. const _ret = Cards.findOne(__select.idOrFirstObjectSelector, __select.options);
  272. return _ret;
  273. });
  274. }
  275. const ret = this.__card.get(Jsons.stringify(idOrFirstObjectSelect));
  276. return ret;
  277. },
  278. getCards(selector, options) {
  279. const select = {selector, options}
  280. if (!this.__cards) {
  281. this.__cards = new DataCache(_select => {
  282. const __select = Jsons.parse(_select);
  283. const _ret = Cards.find(__select.selector, __select.options).fetch();
  284. return _ret;
  285. });
  286. }
  287. const ret = this.__cards.get(Jsons.stringify(select));
  288. return ret;
  289. },
  290. getCardComment(idOrFirstObjectSelector, options) {
  291. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  292. if (!this.__cardComment) {
  293. this.__cardComment = new DataCache(_idOrFirstObjectSelect => {
  294. const __select = Jsons.parse(_idOrFirstObjectSelect);
  295. const _ret = CardComments.findOne(__select.idOrFirstObjectSelector, __select.options);
  296. return _ret;
  297. });
  298. }
  299. const ret = this.__cardComment.get(Jsons.stringify(idOrFirstObjectSelect));
  300. return ret;
  301. },
  302. getCardComments(selector, options) {
  303. const select = {selector, options}
  304. if (!this.__cardComments) {
  305. this.__cardComments = new DataCache(_select => {
  306. const __select = Jsons.parse(_select);
  307. const _ret = CardComments.find(__select.selector, __select.options).fetch();
  308. return _ret;
  309. });
  310. }
  311. const ret = this.__cardComments.get(Jsons.stringify(select));
  312. return ret;
  313. },
  314. getCustomField(idOrFirstObjectSelector, options) {
  315. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  316. if (!this.__customField) {
  317. this.__customField = new DataCache(_idOrFirstObjectSelect => {
  318. const __select = Jsons.parse(_idOrFirstObjectSelect);
  319. const _ret = CustomFields.findOne(__select.idOrFirstObjectSelector, __select.options);
  320. return _ret;
  321. });
  322. }
  323. const ret = this.__customField.get(Jsons.stringify(idOrFirstObjectSelect));
  324. return ret;
  325. },
  326. getCustomFields(selector, options) {
  327. const select = {selector, options}
  328. if (!this.__customFields) {
  329. this.__customFields = new DataCache(_select => {
  330. const __select = Jsons.parse(_select);
  331. const _ret = CustomFields.find(__select.selector, __select.options).fetch();
  332. return _ret;
  333. });
  334. }
  335. const ret = this.__customFields.get(Jsons.stringify(select));
  336. return ret;
  337. },
  338. getAttachment(idOrFirstObjectSelector, options) {
  339. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  340. if (!this.__attachment) {
  341. this.__attachment = new DataCache(_idOrFirstObjectSelect => {
  342. const __select = Jsons.parse(_idOrFirstObjectSelect);
  343. const _ret = Attachments.findOne(__select.idOrFirstObjectSelector, __select.options);
  344. return _ret;
  345. });
  346. }
  347. const ret = this.__attachment.get(Jsons.stringify(idOrFirstObjectSelect));
  348. return ret;
  349. },
  350. getAttachments(selector, options) {
  351. const select = {selector, options}
  352. if (!this.__attachments) {
  353. this.__attachments = new DataCache(_select => {
  354. const __select = Jsons.parse(_select);
  355. const _ret = Attachments.find(__select.selector, __select.options).fetch();
  356. return _ret;
  357. });
  358. }
  359. const ret = this.__attachments.get(Jsons.stringify(select));
  360. return ret;
  361. },
  362. getUser(idOrFirstObjectSelector, options) {
  363. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  364. if (!this.__user) {
  365. this.__user = new DataCache(_idOrFirstObjectSelect => {
  366. const __select = Jsons.parse(_idOrFirstObjectSelect);
  367. const _ret = Users.findOne(__select.idOrFirstObjectSelector, __select.options);
  368. return _ret;
  369. });
  370. }
  371. const ret = this.__user.get(Jsons.stringify(idOrFirstObjectSelect));
  372. return ret;
  373. },
  374. getUsers(selector, options) {
  375. const select = {selector, options}
  376. if (!this.__users) {
  377. this.__users = new DataCache(_select => {
  378. const __select = Jsons.parse(_select);
  379. const _ret = Users.find(__select.selector, __select.options).fetch();
  380. return _ret;
  381. });
  382. }
  383. const ret = this.__users.get(Jsons.stringify(select));
  384. return ret;
  385. },
  386. getOrg(idOrFirstObjectSelector, options) {
  387. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  388. if (!this.__org) {
  389. this.__org = new DataCache(_idOrFirstObjectSelect => {
  390. const __select = Jsons.parse(_idOrFirstObjectSelect);
  391. const _ret = Org.findOne(__select.idOrFirstObjectSelector, __select.options);
  392. return _ret;
  393. });
  394. }
  395. const ret = this.__org.get(Jsons.stringify(idOrFirstObjectSelect));
  396. return ret;
  397. },
  398. getOrgs(selector, options) {
  399. const select = {selector, options}
  400. if (!this.__orgs) {
  401. this.__orgs = new DataCache(_select => {
  402. const __select = Jsons.parse(_select);
  403. const _ret = Org.find(__select.selector, __select.options).fetch();
  404. return _ret;
  405. });
  406. }
  407. const ret = this.__orgs.get(Jsons.stringify(select));
  408. return ret;
  409. },
  410. getTeam(idOrFirstObjectSelector, options) {
  411. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  412. if (!this.__team) {
  413. this.__team = new DataCache(_idOrFirstObjectSelect => {
  414. const __select = Jsons.parse(_idOrFirstObjectSelect);
  415. const _ret = Team.findOne(__select.idOrFirstObjectSelector, __select.options);
  416. return _ret;
  417. });
  418. }
  419. const ret = this.__team.get(Jsons.stringify(idOrFirstObjectSelect));
  420. return ret;
  421. },
  422. getTeams(selector, options) {
  423. const select = {selector, options}
  424. if (!this.__teams) {
  425. this.__teams = new DataCache(_select => {
  426. const __select = Jsons.parse(_select);
  427. const _ret = Team.find(__select.selector, __select.options).fetch();
  428. return _ret;
  429. });
  430. }
  431. const ret = this.__teams.get(Jsons.stringify(select));
  432. return ret;
  433. },
  434. getActivity(idOrFirstObjectSelector, options) {
  435. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  436. if (!this.__activity) {
  437. this.__activity = new DataCache(_idOrFirstObjectSelect => {
  438. const __select = Jsons.parse(_idOrFirstObjectSelect);
  439. const _ret = Activities.findOne(__select.idOrFirstObjectSelector, __select.options);
  440. return _ret;
  441. });
  442. }
  443. const ret = this.__activity.get(Jsons.stringify(idOrFirstObjectSelect));
  444. return ret;
  445. },
  446. getActivities(selector, options) {
  447. const select = {selector, options}
  448. if (!this.__activities) {
  449. this.__activities = new DataCache(_select => {
  450. const __select = Jsons.parse(_select);
  451. const _ret = Activities.find(__select.selector, __select.options).fetch();
  452. return _ret;
  453. });
  454. }
  455. const ret = this.__activities.get(Jsons.stringify(select));
  456. return ret;
  457. },
  458. getRule(idOrFirstObjectSelector, options) {
  459. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  460. if (!this.__rule) {
  461. this.__rule = new DataCache(_idOrFirstObjectSelect => {
  462. const __select = Jsons.parse(_idOrFirstObjectSelect);
  463. const _ret = Rules.findOne(__select.idOrFirstObjectSelector, __select.options);
  464. return _ret;
  465. });
  466. }
  467. const ret = this.__rule.get(Jsons.stringify(idOrFirstObjectSelect));
  468. return ret;
  469. },
  470. getRules(selector, options) {
  471. const select = {selector, options}
  472. if (!this.__rules) {
  473. this.__rules = new DataCache(_select => {
  474. const __select = Jsons.parse(_select);
  475. const _ret = Rules.find(__select.selector, __select.options).fetch();
  476. return _ret;
  477. });
  478. }
  479. const ret = this.__rules.get(Jsons.stringify(select));
  480. return ret;
  481. },
  482. getAction(idOrFirstObjectSelector, options) {
  483. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  484. if (!this.__action) {
  485. this.__action = new DataCache(_idOrFirstObjectSelect => {
  486. const __select = Jsons.parse(_idOrFirstObjectSelect);
  487. const _ret = Actions.findOne(__select.idOrFirstObjectSelector, __select.options);
  488. return _ret;
  489. });
  490. }
  491. const ret = this.__action.get(Jsons.stringify(idOrFirstObjectSelect));
  492. return ret;
  493. },
  494. getActions(selector, options) {
  495. const select = {selector, options}
  496. if (!this.__actions) {
  497. this.__actions = new DataCache(_select => {
  498. const __select = Jsons.parse(_select);
  499. const _ret = Actions.find(__select.selector, __select.options).fetch();
  500. return _ret;
  501. });
  502. }
  503. const ret = this.__actions.get(Jsons.stringify(select));
  504. return ret;
  505. },
  506. getTrigger(idOrFirstObjectSelector, options) {
  507. const idOrFirstObjectSelect = {idOrFirstObjectSelector, options}
  508. if (!this.__trigger) {
  509. this.__trigger = new DataCache(_idOrFirstObjectSelect => {
  510. const __select = Jsons.parse(_idOrFirstObjectSelect);
  511. const _ret = Triggers.findOne(__select.idOrFirstObjectSelector, __select.options);
  512. return _ret;
  513. });
  514. }
  515. const ret = this.__trigger.get(Jsons.stringify(idOrFirstObjectSelect));
  516. return ret;
  517. },
  518. getTriggers(selector, options) {
  519. const select = {selector, options}
  520. if (!this.__triggers) {
  521. this.__triggers = new DataCache(_select => {
  522. const __select = Jsons.parse(_select);
  523. const _ret = Triggers.find(__select.selector, __select.options).fetch();
  524. return _ret;
  525. });
  526. }
  527. const ret = this.__triggers.get(Jsons.stringify(select));
  528. return ret;
  529. },
  530. getCurrentSetting() {
  531. if (!this.__currentSetting || !this.__currentSetting.get()) {
  532. this.__currentSetting = new DataCache(() => {
  533. const _ret = Settings.findOne();
  534. return _ret;
  535. });
  536. }
  537. const ret = this.__currentSetting.get();
  538. return ret;
  539. },
  540. getCurrentUser() {
  541. if (!this.__currentUser || !this.__currentUser.get()) {
  542. this.__currentUser = new DataCache(() => {
  543. const _ret = Meteor.user();
  544. return _ret;
  545. });
  546. }
  547. const ret = this.__currentUser.get();
  548. return ret;
  549. }
  550. }
  551. // global Reactive Cache class to avoid big overhead while searching for the same data often again
  552. // This class calls 2 implementation, for server and client code
  553. //
  554. // having this class here has several advantages:
  555. // - The Programmer hasn't to care about in which context he call's this class
  556. // - having all queries together in 1 class to make it possible to see which queries in Wekan happens, e.g. with console.log
  557. ReactiveCache = {
  558. getBoard(idOrFirstObjectSelector, options) {
  559. let ret;
  560. if (Meteor.isServer) {
  561. ret = ReactiveCacheServer.getBoard(idOrFirstObjectSelector, options);
  562. } else {
  563. ret = ReactiveCacheClient.getBoard(idOrFirstObjectSelector, options);
  564. }
  565. return ret;
  566. },
  567. getBoards(selector, options) {
  568. let ret;
  569. if (Meteor.isServer) {
  570. ret = ReactiveCacheServer.getBoards(selector, options);
  571. } else {
  572. ret = ReactiveCacheClient.getBoards(selector, options);
  573. }
  574. return ret;
  575. },
  576. getList(idOrFirstObjectSelector, options) {
  577. let ret;
  578. if (Meteor.isServer) {
  579. ret = ReactiveCacheServer.getList(idOrFirstObjectSelector, options);
  580. } else {
  581. ret = ReactiveCacheClient.getList(idOrFirstObjectSelector, options);
  582. }
  583. return ret;
  584. },
  585. getLists(selector, options) {
  586. let ret;
  587. if (Meteor.isServer) {
  588. ret = ReactiveCacheServer.getLists(selector, options);
  589. } else {
  590. ret = ReactiveCacheClient.getLists(selector, options);
  591. }
  592. return ret;
  593. },
  594. getSwimlane(idOrFirstObjectSelector, options) {
  595. let ret;
  596. if (Meteor.isServer) {
  597. ret = ReactiveCacheServer.getSwimlane(idOrFirstObjectSelector, options);
  598. } else {
  599. ret = ReactiveCacheClient.getSwimlane(idOrFirstObjectSelector, options);
  600. }
  601. return ret;
  602. },
  603. getSwimlanes(selector, options) {
  604. let ret;
  605. if (Meteor.isServer) {
  606. ret = ReactiveCacheServer.getSwimlanes(selector, options);
  607. } else {
  608. ret = ReactiveCacheClient.getSwimlanes(selector, options);
  609. }
  610. return ret;
  611. },
  612. getChecklist(idOrFirstObjectSelector, options) {
  613. let ret;
  614. if (Meteor.isServer) {
  615. ret = ReactiveCacheServer.getChecklist(idOrFirstObjectSelector, options);
  616. } else {
  617. ret = ReactiveCacheClient.getChecklist(idOrFirstObjectSelector, options);
  618. }
  619. return ret;
  620. },
  621. getChecklists(selector, options) {
  622. let ret;
  623. if (Meteor.isServer) {
  624. ret = ReactiveCacheServer.getChecklists(selector, options);
  625. } else {
  626. ret = ReactiveCacheClient.getChecklists(selector, options);
  627. }
  628. return ret;
  629. },
  630. getChecklistItem(idOrFirstObjectSelector, options) {
  631. let ret;
  632. if (Meteor.isServer) {
  633. ret = ReactiveCacheServer.getChecklistItem(idOrFirstObjectSelector, options);
  634. } else {
  635. ret = ReactiveCacheClient.getChecklistItem(idOrFirstObjectSelector, options);
  636. }
  637. return ret;
  638. },
  639. getChecklistItems(selector, options) {
  640. let ret;
  641. if (Meteor.isServer) {
  642. ret = ReactiveCacheServer.getChecklistItems(selector, options);
  643. } else {
  644. ret = ReactiveCacheClient.getChecklistItems(selector, options);
  645. }
  646. return ret;
  647. },
  648. getCard(idOrFirstObjectSelector, options, noCache = false) {
  649. let ret;
  650. if (Meteor.isServer || noCache === true) {
  651. ret = ReactiveCacheServer.getCard(idOrFirstObjectSelector, options);
  652. } else {
  653. ret = ReactiveCacheClient.getCard(idOrFirstObjectSelector, options);
  654. }
  655. return ret;
  656. },
  657. getCards(selector, options) {
  658. let ret;
  659. if (Meteor.isServer) {
  660. ret = ReactiveCacheServer.getCards(selector, options);
  661. } else {
  662. ret = ReactiveCacheClient.getCards(selector, options);
  663. }
  664. return ret;
  665. },
  666. getCardComment(idOrFirstObjectSelector, options) {
  667. let ret;
  668. if (Meteor.isServer) {
  669. ret = ReactiveCacheServer.getCardComment(idOrFirstObjectSelector, options);
  670. } else {
  671. ret = ReactiveCacheClient.getCardComment(idOrFirstObjectSelector, options);
  672. }
  673. return ret;
  674. },
  675. getCardComments(selector, options) {
  676. let ret;
  677. if (Meteor.isServer) {
  678. ret = ReactiveCacheServer.getCardComments(selector, options);
  679. } else {
  680. ret = ReactiveCacheClient.getCardComments(selector, options);
  681. }
  682. return ret;
  683. },
  684. getCustomField(idOrFirstObjectSelector, options) {
  685. let ret;
  686. if (Meteor.isServer) {
  687. ret = ReactiveCacheServer.getCustomField(idOrFirstObjectSelector, options);
  688. } else {
  689. ret = ReactiveCacheClient.getCustomField(idOrFirstObjectSelector, options);
  690. }
  691. return ret;
  692. },
  693. getCustomFields(selector, options) {
  694. let ret;
  695. if (Meteor.isServer) {
  696. ret = ReactiveCacheServer.getCustomFields(selector, options);
  697. } else {
  698. ret = ReactiveCacheClient.getCustomFields(selector, options);
  699. }
  700. return ret;
  701. },
  702. getAttachment(idOrFirstObjectSelector, options) {
  703. let ret;
  704. if (Meteor.isServer) {
  705. ret = ReactiveCacheServer.getAttachment(idOrFirstObjectSelector, options);
  706. } else {
  707. ret = ReactiveCacheClient.getAttachment(idOrFirstObjectSelector, options);
  708. }
  709. return ret;
  710. },
  711. getAttachments(selector, options) {
  712. let ret;
  713. if (Meteor.isServer) {
  714. ret = ReactiveCacheServer.getAttachments(selector, options);
  715. } else {
  716. ret = ReactiveCacheClient.getAttachments(selector, options);
  717. }
  718. return ret;
  719. },
  720. getUser(idOrFirstObjectSelector, options) {
  721. let ret;
  722. if (Meteor.isServer) {
  723. ret = ReactiveCacheServer.getUser(idOrFirstObjectSelector, options);
  724. } else {
  725. ret = ReactiveCacheClient.getUser(idOrFirstObjectSelector, options);
  726. }
  727. return ret;
  728. },
  729. getUsers(selector, options) {
  730. let ret;
  731. if (Meteor.isServer) {
  732. ret = ReactiveCacheServer.getUsers(selector, options);
  733. } else {
  734. ret = ReactiveCacheClient.getUsers(selector, options);
  735. }
  736. return ret;
  737. },
  738. getOrg(idOrFirstObjectSelector, options) {
  739. let ret;
  740. if (Meteor.isServer) {
  741. ret = ReactiveCacheServer.getOrg(idOrFirstObjectSelector, options);
  742. } else {
  743. ret = ReactiveCacheClient.getOrg(idOrFirstObjectSelector, options);
  744. }
  745. return ret;
  746. },
  747. getOrgs(selector, options) {
  748. let ret;
  749. if (Meteor.isServer) {
  750. ret = ReactiveCacheServer.getOrgs(selector, options);
  751. } else {
  752. ret = ReactiveCacheClient.getOrgs(selector, options);
  753. }
  754. return ret;
  755. },
  756. getTeam(idOrFirstObjectSelector, options) {
  757. let ret;
  758. if (Meteor.isServer) {
  759. ret = ReactiveCacheServer.getTeam(idOrFirstObjectSelector, options);
  760. } else {
  761. ret = ReactiveCacheClient.getTeam(idOrFirstObjectSelector, options);
  762. }
  763. return ret;
  764. },
  765. getTeams(selector, options) {
  766. let ret;
  767. if (Meteor.isServer) {
  768. ret = ReactiveCacheServer.getTeams(selector, options);
  769. } else {
  770. ret = ReactiveCacheClient.getTeams(selector, options);
  771. }
  772. return ret;
  773. },
  774. getActivity(idOrFirstObjectSelector, options) {
  775. let ret;
  776. if (Meteor.isServer) {
  777. ret = ReactiveCacheServer.getActivity(idOrFirstObjectSelector, options);
  778. } else {
  779. ret = ReactiveCacheClient.getActivity(idOrFirstObjectSelector, options);
  780. }
  781. return ret;
  782. },
  783. getActivities(selector, options) {
  784. let ret;
  785. if (Meteor.isServer) {
  786. ret = ReactiveCacheServer.getActivities(selector, options);
  787. } else {
  788. ret = ReactiveCacheClient.getActivities(selector, options);
  789. }
  790. return ret;
  791. },
  792. getRule(idOrFirstObjectSelector, options) {
  793. let ret;
  794. if (Meteor.isServer) {
  795. ret = ReactiveCacheServer.getRule(idOrFirstObjectSelector, options);
  796. } else {
  797. ret = ReactiveCacheClient.getRule(idOrFirstObjectSelector, options);
  798. }
  799. return ret;
  800. },
  801. getRules(selector, options) {
  802. let ret;
  803. if (Meteor.isServer) {
  804. ret = ReactiveCacheServer.getRules(selector, options);
  805. } else {
  806. ret = ReactiveCacheClient.getRules(selector, options);
  807. }
  808. return ret;
  809. },
  810. getAction(idOrFirstObjectSelector, options) {
  811. let ret;
  812. if (Meteor.isServer) {
  813. ret = ReactiveCacheServer.getAction(idOrFirstObjectSelector, options);
  814. } else {
  815. ret = ReactiveCacheClient.getAction(idOrFirstObjectSelector, options);
  816. }
  817. return ret;
  818. },
  819. getActions(selector, options) {
  820. let ret;
  821. if (Meteor.isServer) {
  822. ret = ReactiveCacheServer.getActions(selector, options);
  823. } else {
  824. ret = ReactiveCacheClient.getActions(selector, options);
  825. }
  826. return ret;
  827. },
  828. getTrigger(idOrFirstObjectSelector, options) {
  829. let ret;
  830. if (Meteor.isServer) {
  831. ret = ReactiveCacheServer.getTrigger(idOrFirstObjectSelector, options);
  832. } else {
  833. ret = ReactiveCacheClient.getTrigger(idOrFirstObjectSelector, options);
  834. }
  835. return ret;
  836. },
  837. getTriggers(selector, options) {
  838. let ret;
  839. if (Meteor.isServer) {
  840. ret = ReactiveCacheServer.getTriggers(selector, options);
  841. } else {
  842. ret = ReactiveCacheClient.getTriggers(selector, options);
  843. }
  844. return ret;
  845. },
  846. getCurrentSetting() {
  847. let ret;
  848. if (Meteor.isServer) {
  849. ret = ReactiveCacheServer.getCurrentSetting();
  850. } else {
  851. ret = ReactiveCacheClient.getCurrentSetting();
  852. }
  853. return ret;
  854. },
  855. getCurrentUser() {
  856. let ret;
  857. if (Meteor.isServer) {
  858. ret = ReactiveCacheServer.getCurrentUser();
  859. } else {
  860. ret = ReactiveCacheClient.getCurrentUser();
  861. }
  862. return ret;
  863. },
  864. }
  865. export { ReactiveCache };