@datorama/akita
Version:
State Management Tailored-Made for JS Applications
48 lines • 3.34 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { isUndefined } from './isUndefined';
import { isString } from './isString';
// @internal
/**
* @template E
* @param {?} predicate
* @param {?} entities
* @return {?}
*/
export function findEntityByPredicate(predicate, entities) {
for (const entityId of Object.keys(entities)) {
if (predicate(entities[entityId]) === true) {
return entityId;
}
}
return undefined;
}
// @internal
/**
* @param {?} id
* @param {?} project
* @return {?}
*/
export function getEntity(id, project) {
return (/**
* @param {?} entities
* @return {?}
*/
function (entities) {
/** @type {?} */
const 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RW50aXR5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2FraXRhLyIsInNvdXJjZXMiOlsic3JjL2dldEVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7OztBQUl0QyxNQUFNLFVBQVUscUJBQXFCLENBQUksU0FBMkIsRUFBRSxRQUFRO0lBQzFFLEtBQUksTUFBTSxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMzQyxJQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDekMsT0FBTyxRQUFRLENBQUM7U0FDakI7S0FDRjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7Ozs7Ozs7QUFHRCxNQUFNLFVBQVUsU0FBUyxDQUFFLEVBQUUsRUFBRSxPQUFPO0lBQ3BDOzs7O0lBQU8sVUFBUyxRQUFROztjQUNoQixNQUFNLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUUzQixJQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELElBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDWCxPQUFPLE1BQU0sQ0FBQztTQUNmO1FBRUQsSUFBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEI7UUFFRCxPQUFPLENBQUMsbUJBQUEsT0FBTyxFQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDLEVBQUM7QUFFSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tICcuL2lzVW5kZWZpbmVkJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnLi9pc1N0cmluZyc7XG5pbXBvcnQgeyBJdGVtUHJlZGljYXRlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRFbnRpdHlCeVByZWRpY2F0ZTxFPihwcmVkaWNhdGU6IEl0ZW1QcmVkaWNhdGU8RT4sIGVudGl0aWVzKSB7XG4gICAgZm9yKGNvbnN0IGVudGl0eUlkIG9mIE9iamVjdC5rZXlzKGVudGl0aWVzKSkge1xuICAgICAgaWYocHJlZGljYXRlKGVudGl0aWVzW2VudGl0eUlkXSkgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIGVudGl0eUlkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eSggaWQsIHByb2plY3QgKSB7XG4gIHJldHVybiBmdW5jdGlvbihlbnRpdGllcykge1xuICAgIGNvbnN0IGVudGl0eSA9IGVudGl0aWVzW2lkXTtcblxuICAgIGlmKGlzVW5kZWZpbmVkKGVudGl0eSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYoIXByb2plY3QpIHtcbiAgICAgIHJldHVybiBlbnRpdHk7XG4gICAgfVxuXG4gICAgaWYoaXNTdHJpbmcocHJvamVjdCkpIHtcbiAgICAgIHJldHVybiBlbnRpdHlbcHJvamVjdF07XG4gICAgfVxuXG4gICAgcmV0dXJuIChwcm9qZWN0IGFzIEZ1bmN0aW9uKShlbnRpdHkpO1xuICB9O1xuXG59XG4iXX0=