@datorama/akita
Version:
State Management Tailored-Made for JS Applications
60 lines • 3.77 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { isUndefined } from './isUndefined';
import { isString } from './isString';
// @internal
/**
* @template E
* @param {?} predicate
* @param {?} entities
* @return {?}
*/
export function findEntityByPredicate(predicate, entities) {
var e_1, _a;
try {
for (var _b = tslib_1.__values(Object.keys(entities)), _c = _b.next(); !_c.done; _c = _b.next()) {
var entityId = _c.value;
if (predicate(entities[entityId]) === true) {
return entityId;
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return undefined;
}
// @internal
/**
* @param {?} id
* @param {?} project
* @return {?}
*/
export function getEntity(id, project) {
return (/**
* @param {?} entities
* @return {?}
*/
function (entities) {
/** @type {?} */
var entity = entities[id];
if (isUndefined(entity)) {
return undefined;
}
if (!project) {
return entity;
}
if (isString(project)) {
return entity[project];
}
return ((/** @type {?} */ (project)))(entity);
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RW50aXR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2FraXRhLyIsInNvdXJjZXMiOlsic3JjL2dldEVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7Ozs7QUFJdEMsTUFBTSxVQUFVLHFCQUFxQixDQUFJLFNBQTJCLEVBQUUsUUFBUTs7O1FBQzFFLEtBQXNCLElBQUEsS0FBQSxpQkFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQXpDLElBQU0sUUFBUSxXQUFBO1lBQ2hCLElBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDekMsT0FBTyxRQUFRLENBQUM7YUFDakI7U0FDRjs7Ozs7Ozs7O0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQzs7Ozs7OztBQUdELE1BQU0sVUFBVSxTQUFTLENBQUUsRUFBRSxFQUFFLE9BQU87SUFDcEM7Ozs7SUFBTyxVQUFTLFFBQVE7O1lBQ2hCLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBRTNCLElBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsSUFBRyxDQUFDLE9BQU8sRUFBRTtZQUNYLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFFRCxJQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNwQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4QjtRQUVELE9BQU8sQ0FBQyxtQkFBQSxPQUFPLEVBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsRUFBQztBQUVKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gJy4vaXNVbmRlZmluZWQnO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuL2lzU3RyaW5nJztcbmltcG9ydCB7IEl0ZW1QcmVkaWNhdGUgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gQGludGVybmFsXG5leHBvcnQgZnVuY3Rpb24gZmluZEVudGl0eUJ5UHJlZGljYXRlPEU+KHByZWRpY2F0ZTogSXRlbVByZWRpY2F0ZTxFPiwgZW50aXRpZXMpIHtcbiAgICBmb3IoY29uc3QgZW50aXR5SWQgb2YgT2JqZWN0LmtleXMoZW50aXRpZXMpKSB7XG4gICAgICBpZihwcmVkaWNhdGUoZW50aXRpZXNbZW50aXR5SWRdKSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gZW50aXR5SWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8gQGludGVybmFsXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50aXR5KCBpZCwgcHJvamVjdCApIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGVudGl0aWVzKSB7XG4gICAgY29uc3QgZW50aXR5ID0gZW50aXRpZXNbaWRdO1xuXG4gICAgaWYoaXNVbmRlZmluZWQoZW50aXR5KSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZighcHJvamVjdCkge1xuICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICB9XG5cbiAgICBpZihpc1N0cmluZyhwcm9qZWN0KSkge1xuICAgICAgcmV0dXJuIGVudGl0eVtwcm9qZWN0XTtcbiAgICB9XG5cbiAgICByZXR1cm4gKHByb2plY3QgYXMgRnVuY3Rpb24pKGVudGl0eSk7XG4gIH07XG5cbn1cbiJdfQ==