UNPKG

2.15 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.manageEntity = exports.manipulateItems = exports.manipulateDataItems = exports.manageDataEntity = undefined;
7
8var _immutable = require("immutable");
9
10var Immutable = _interopRequireWildcard(_immutable);
11
12var _reselect = require("reselect");
13
14function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
15
16// simple item
17
18/* eslint-disable no-duplicate-imports */
19
20var manageEntity = function manageEntity(normalizrEntity) {
21 return function (item, state, keyID) {
22 // prevent rewrite
23 var old = state.get(String(item[keyID]));
24
25 if (typeof old === "undefined") {
26 return Immutable.Map(normalizrEntity(item));
27 }
28
29 return old;
30 };
31},
32 manipulateItems = function manipulateItems() {
33 var sortKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "ID";
34 return (0, _reselect.createSelector)(function (data) {
35 return data;
36 }, function (data) {
37 return data.sortBy(function (current) {
38 return -current.get(sortKey);
39 });
40 });
41};
42
43// data item
44
45var manageDataEntity = function manageDataEntity(normalizrEntity) {
46 return function (item, state, keyID) {
47 // prevent rewrite
48 var old = state.get(String(item[keyID]));
49
50 if (typeof old === "undefined") {
51 return Immutable.Map({
52 Data: normalizrEntity(item)
53 });
54 }
55
56 return old;
57 };
58},
59 manipulateDataItems = function manipulateDataItems() {
60 var sortKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "ID";
61 return (0, _reselect.createSelector)(function (data) {
62 return data;
63 }, function (data) {
64 return data.sortBy(function (current) {
65 return -current.getIn(["Data", sortKey]);
66 });
67 });
68};
69
70exports.manageDataEntity = manageDataEntity;
71exports.manipulateDataItems = manipulateDataItems;
72exports.manipulateItems = manipulateItems;
73exports.manageEntity = manageEntity;
\No newline at end of file