@datorama/akita
Version:
State Management Tailored-Made for JS Applications
40 lines • 2.63 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
// @internal
/**
* @template E
* @param {?} entities
* @param {?} idKey
* @param {?} preAddEntity
* @return {?}
*/
export function toEntitiesObject(entities, idKey, preAddEntity) {
var e_1, _a;
/** @type {?} */
var acc = {
entities: {},
ids: []
};
try {
for (var entities_1 = tslib_1.__values(entities), entities_1_1 = entities_1.next(); !entities_1_1.done; entities_1_1 = entities_1.next()) {
var entity = entities_1_1.value;
// evaluate the middleware first to support dynamic ids
/** @type {?} */
var current = preAddEntity(entity);
acc.entities[current[idKey]] = current;
acc.ids.push(current[idKey]);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
}
finally { if (e_1) throw e_1.error; }
}
return acc;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9FbnRpdGllc09iamVjdC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9ha2l0YS8iLCJzb3VyY2VzIjpbInNyYy90b0VudGl0aWVzT2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUksUUFBYSxFQUFFLEtBQWEsRUFBRSxZQUE2Qjs7O1FBQ3ZGLEdBQUcsR0FBRztRQUNWLFFBQVEsRUFBRSxFQUFFO1FBQ1osR0FBRyxFQUFFLEVBQUU7S0FDUjs7UUFFRCxLQUFxQixJQUFBLGFBQUEsaUJBQUEsUUFBUSxDQUFBLGtDQUFBLHdEQUFFO1lBQTFCLElBQU0sTUFBTSxxQkFBQTs7O2dCQUVULE9BQU8sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBQ3BDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ3ZDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzlCOzs7Ozs7Ozs7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVBZGRFbnRpdHkgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gQGludGVybmFsXG5leHBvcnQgZnVuY3Rpb24gdG9FbnRpdGllc09iamVjdDxFPihlbnRpdGllczogRVtdLCBpZEtleTogc3RyaW5nLCBwcmVBZGRFbnRpdHk6IFByZUFkZEVudGl0eTxFPikge1xuICBjb25zdCBhY2MgPSB7XG4gICAgZW50aXRpZXM6IHt9LFxuICAgIGlkczogW11cbiAgfTtcblxuICBmb3IgKGNvbnN0IGVudGl0eSBvZiBlbnRpdGllcykge1xuICAgIC8vIGV2YWx1YXRlIHRoZSBtaWRkbGV3YXJlIGZpcnN0IHRvIHN1cHBvcnQgZHluYW1pYyBpZHNcbiAgICBjb25zdCBjdXJyZW50ID0gcHJlQWRkRW50aXR5KGVudGl0eSk7XG4gICAgYWNjLmVudGl0aWVzW2N1cnJlbnRbaWRLZXldXSA9IGN1cnJlbnQ7XG4gICAgYWNjLmlkcy5wdXNoKGN1cnJlbnRbaWRLZXldKTtcbiAgfVxuXG4gIHJldHVybiBhY2M7XG59XG4iXX0=