@datorama/akita
Version:
State Management Tailored-Made for JS Applications
28 lines • 2.08 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
// @internal
/**
* @template E
* @param {?} entities
* @param {?} idKey
* @param {?} preAddEntity
* @return {?}
*/
export function toEntitiesObject(entities, idKey, preAddEntity) {
/** @type {?} */
const acc = {
entities: {},
ids: []
};
for (const entity of entities) {
// evaluate the middleware first to support dynamic ids
/** @type {?} */
const current = preAddEntity(entity);
acc.entities[current[idKey]] = current;
acc.ids.push(current[idKey]);
}
return acc;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9FbnRpdGllc09iamVjdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9ha2l0YS8iLCJzb3VyY2VzIjpbInNyYy90b0VudGl0aWVzT2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBSSxRQUFhLEVBQUUsS0FBYSxFQUFFLFlBQTZCOztVQUN2RixHQUFHLEdBQUc7UUFDVixRQUFRLEVBQUUsRUFBRTtRQUNaLEdBQUcsRUFBRSxFQUFFO0tBQ1I7SUFFRCxLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRTs7O2NBRXZCLE9BQU8sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQzlCO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJlQWRkRW50aXR5IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGZ1bmN0aW9uIHRvRW50aXRpZXNPYmplY3Q8RT4oZW50aXRpZXM6IEVbXSwgaWRLZXk6IHN0cmluZywgcHJlQWRkRW50aXR5OiBQcmVBZGRFbnRpdHk8RT4pIHtcbiAgY29uc3QgYWNjID0ge1xuICAgIGVudGl0aWVzOiB7fSxcbiAgICBpZHM6IFtdXG4gIH07XG5cbiAgZm9yIChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXMpIHtcbiAgICAvLyBldmFsdWF0ZSB0aGUgbWlkZGxld2FyZSBmaXJzdCB0byBzdXBwb3J0IGR5bmFtaWMgaWRzXG4gICAgY29uc3QgY3VycmVudCA9IHByZUFkZEVudGl0eShlbnRpdHkpO1xuICAgIGFjYy5lbnRpdGllc1tjdXJyZW50W2lkS2V5XV0gPSBjdXJyZW50O1xuICAgIGFjYy5pZHMucHVzaChjdXJyZW50W2lkS2V5XSk7XG4gIH1cblxuICByZXR1cm4gYWNjO1xufVxuIl19