@twreporter/redux
Version:
redux actions and reducers for twreporter website
42 lines (41 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.denormalizeTopics = exports.denormalizePosts = void 0;
var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
var _get = _interopRequireDefault(require("lodash/get"));
var _set = _interopRequireDefault(require("lodash/set"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var _ = {
cloneDeep: _cloneDeep["default"],
get: _get["default"],
set: _set["default"]
};
var denormalizePosts = exports.denormalizePosts = function denormalizePosts(slugs) {
var entities = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _slugs = slugs;
if (!Array.isArray(slugs)) {
_slugs = [slugs];
}
var posts = _slugs.map(function (slug) {
return _.cloneDeep(entities[slug]);
});
return posts;
};
var denormalizeTopics = exports.denormalizeTopics = function denormalizeTopics(topicSlugs) {
var topicEntities = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var postEntities = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var slugs = topicSlugs;
if (!Array.isArray(topicSlugs)) {
slugs = [topicSlugs];
}
var topics = slugs.map(function (slug) {
var topic = _.cloneDeep(topicEntities[slug]);
var relatedSlugs = _.get(topic, 'relateds', []);
var relateds = denormalizePosts(relatedSlugs, postEntities);
_.set(topic, 'relateds', relateds);
return topic;
});
return topics;
};