UNPKG

@twreporter/redux

Version:

redux actions and reducers for twreporter website

42 lines (41 loc) 1.55 kB
"use strict"; 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; };