@datorama/akita
Version:
State Management Tailored-Made for JS Applications
131 lines • 13.2 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { __stores__ } from './stores';
import { isNil } from './isNil';
import { AkitaError } from './errors';
/** @enum {number} */
const StoreActions = {
Update: 0,
AddEntities: 1,
SetEntities: 2,
UpdateEntities: 3,
RemoveEntities: 4,
UpsertEntities: 5,
};
export { StoreActions };
StoreActions[StoreActions.Update] = 'Update';
StoreActions[StoreActions.AddEntities] = 'AddEntities';
StoreActions[StoreActions.SetEntities] = 'SetEntities';
StoreActions[StoreActions.UpdateEntities] = 'UpdateEntities';
StoreActions[StoreActions.RemoveEntities] = 'RemoveEntities';
StoreActions[StoreActions.UpsertEntities] = 'UpsertEntities';
/**
* @record
* @template Entity
*/
function RunStoreActionSetEntities() { }
if (false) {
/** @type {?} */
RunStoreActionSetEntities.prototype.payload;
}
/**
* @record
* @template Entity
*/
function RunStoreActionAddEntities() { }
if (false) {
/** @type {?} */
RunStoreActionAddEntities.prototype.payload;
}
/**
* @record
* @template Entity
*/
function RunStoreActionUpdateEntities() { }
if (false) {
/** @type {?} */
RunStoreActionUpdateEntities.prototype.payload;
}
/**
* @record
* @template Entity
*/
function RunStoreActionRemoveEntities() { }
if (false) {
/** @type {?} */
RunStoreActionRemoveEntities.prototype.payload;
}
/**
* @record
* @template Entity
*/
function RunStoreActionUpsertEntities() { }
if (false) {
/** @type {?} */
RunStoreActionUpsertEntities.prototype.payload;
}
/**
* @record
* @template State
*/
function RunStoreActionUpdate() { }
if (false) {
/** @type {?} */
RunStoreActionUpdate.prototype.payload;
}
/**
* @template EntityOrState
* @param {?} storeName
* @param {?} action
* @param {?} params
* @return {?}
*/
export function runStoreAction(storeName, action, params) {
/** @type {?} */
const store = __stores__[storeName];
if (isNil(store)) {
throw new AkitaError(`${storeName} doesn't exist`);
}
switch (action) {
case StoreActions.SetEntities: {
const { payload } = (/** @type {?} */ (params));
((/** @type {?} */ (store))).set(payload.data);
return;
}
case StoreActions.AddEntities: {
const { payload } = (/** @type {?} */ (params));
((/** @type {?} */ (store))).add(payload.data, payload.params);
return;
}
case StoreActions.UpdateEntities: {
const { payload } = (/** @type {?} */ (params));
((/** @type {?} */ (store))).update(payload.entityIds, payload.data);
return;
}
case StoreActions.RemoveEntities: {
const { payload } = (/** @type {?} */ (params));
((/** @type {?} */ (store))).remove(payload.entityIds);
return;
}
case StoreActions.UpsertEntities: {
const { payload } = (/** @type {?} */ (params));
if (payload.entityIds) {
((/** @type {?} */ (store))).upsert(payload.entityIds, payload.data);
}
else if (Array.isArray(payload.data)) {
((/** @type {?} */ (store))).upsertMany(payload.data);
}
else {
((/** @type {?} */ (store))).upsertMany([payload.data]);
}
}
case StoreActions.Update: {
const { payload } = (/** @type {?} */ (params));
((/** @type {?} */ (store))).update(payload.data);
return;
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuU3RvcmVBY3Rpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvYWtpdGEvIiwic291cmNlcyI6WyJzcmMvcnVuU3RvcmVBY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFLdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7SUFHcEMsU0FBTTtJQUNOLGNBQVc7SUFDWCxjQUFXO0lBQ1gsaUJBQWM7SUFDZCxpQkFBYztJQUNkLGlCQUFjOzs7Ozs7Ozs7Ozs7O0FBR2hCLHdDQUlDOzs7SUFIQyw0Q0FFRTs7Ozs7O0FBR0osd0NBS0M7OztJQUpDLDRDQUdFOzs7Ozs7QUFHSiwyQ0FLQzs7O0lBSkMsK0NBR0U7Ozs7OztBQUdKLDJDQUlDOzs7SUFIQywrQ0FFRTs7Ozs7O0FBR0osMkNBS0M7OztJQUpDLCtDQUdFOzs7Ozs7QUFHSixtQ0FJQzs7O0lBSEMsdUNBRUU7Ozs7Ozs7OztBQXNFSixNQUFNLFVBQVUsY0FBYyxDQUM1QixTQUFpQixFQUNqQixNQUFvQixFQUNwQixNQUsrQzs7VUFFekMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFFbkMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDaEIsTUFBTSxJQUFJLFVBQVUsQ0FBQyxHQUFHLFNBQVMsZ0JBQWdCLENBQUMsQ0FBQztLQUNwRDtJQUVELFFBQVEsTUFBTSxFQUFFO1FBQ2QsS0FBSyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7a0JBQ3ZCLEVBQUUsT0FBTyxFQUFFLEdBQUcsbUJBQUEsTUFBTSxFQUE2QjtZQUN2RCxDQUFDLG1CQUFBLEtBQUssRUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxPQUFPO1NBQ1I7UUFDRCxLQUFLLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztrQkFDdkIsRUFBRSxPQUFPLEVBQUUsR0FBRyxtQkFBQSxNQUFNLEVBQTZCO1lBQ3ZELENBQUMsbUJBQUEsS0FBSyxFQUFlLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekQsT0FBTztTQUNSO1FBRUQsS0FBSyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7a0JBQzFCLEVBQUUsT0FBTyxFQUFFLEdBQUcsbUJBQUEsTUFBTSxFQUFnQztZQUMxRCxDQUFDLG1CQUFBLEtBQUssRUFBZSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9ELE9BQU87U0FDUjtRQUVELEtBQUssWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2tCQUMxQixFQUFFLE9BQU8sRUFBRSxHQUFHLG1CQUFBLE1BQU0sRUFBZ0M7WUFDMUQsQ0FBQyxtQkFBQSxLQUFLLEVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakQsT0FBTztTQUNSO1FBRUQsS0FBSyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7a0JBQzFCLEVBQUUsT0FBTyxFQUFFLEdBQUcsbUJBQUEsTUFBTSxFQUFnQztZQUMxRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQ3JCLENBQUMsbUJBQUEsS0FBSyxFQUFlLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDaEU7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdEMsQ0FBQyxtQkFBQSxLQUFLLEVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakQ7aUJBQU07Z0JBQ0wsQ0FBQyxtQkFBQSxLQUFLLEVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ25EO1NBQ0Y7UUFFRCxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztrQkFDbEIsRUFBRSxPQUFPLEVBQUUsR0FBRyxtQkFBQSxNQUFNLEVBQXdCO1lBQ2xELENBQUMsbUJBQUEsS0FBSyxFQUFlLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVDLE9BQU87U0FDUjtLQUNGO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fc3RvcmVzX18gfSBmcm9tICcuL3N0b3Jlcyc7XG5pbXBvcnQgeyBJRFMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFkZEVudGl0aWVzT3B0aW9ucyB9IGZyb20gJy4vYWRkRW50aXRpZXMnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICcuL2VudGl0eVN0b3JlJztcbmltcG9ydCB7IFNldEVudGl0aWVzIH0gZnJvbSAnLi9zZXRFbnRpdGllcyc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4vaXNOaWwnO1xuaW1wb3J0IHsgQWtpdGFFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuZXhwb3J0IGVudW0gU3RvcmVBY3Rpb25zIHtcbiAgVXBkYXRlLFxuICBBZGRFbnRpdGllcyxcbiAgU2V0RW50aXRpZXMsXG4gIFVwZGF0ZUVudGl0aWVzLFxuICBSZW1vdmVFbnRpdGllcyxcbiAgVXBzZXJ0RW50aXRpZXNcbn1cblxuaW50ZXJmYWNlIFJ1blN0b3JlQWN0aW9uU2V0RW50aXRpZXM8RW50aXR5ID0gYW55PiB7XG4gIHBheWxvYWQ6IHtcbiAgICBkYXRhOiBTZXRFbnRpdGllczxFbnRpdHk+O1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUnVuU3RvcmVBY3Rpb25BZGRFbnRpdGllczxFbnRpdHkgPSBhbnk+IHtcbiAgcGF5bG9hZDoge1xuICAgIGRhdGE6IEVudGl0eVtdIHwgRW50aXR5O1xuICAgIHBhcmFtcz86IEFkZEVudGl0aWVzT3B0aW9ucztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFJ1blN0b3JlQWN0aW9uVXBkYXRlRW50aXRpZXM8RW50aXR5ID0gYW55PiB7XG4gIHBheWxvYWQ6IHtcbiAgICBkYXRhOiBQYXJ0aWFsPEVudGl0eT47XG4gICAgZW50aXR5SWRzOiBJRFM7XG4gIH07XG59XG5cbmludGVyZmFjZSBSdW5TdG9yZUFjdGlvblJlbW92ZUVudGl0aWVzPEVudGl0eSA9IGFueT4ge1xuICBwYXlsb2FkOiB7XG4gICAgZW50aXR5SWRzOiBJRFM7XG4gIH07XG59XG5cbmludGVyZmFjZSBSdW5TdG9yZUFjdGlvblVwc2VydEVudGl0aWVzPEVudGl0eSA9IGFueT4ge1xuICBwYXlsb2FkOiB7XG4gICAgZGF0YTogUGFydGlhbDxFbnRpdHk+W10gfCBQYXJ0aWFsPEVudGl0eT47XG4gICAgZW50aXR5SWRzPzogSURTO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgUnVuU3RvcmVBY3Rpb25VcGRhdGU8U3RhdGUgPSBhbnk+IHtcbiAgcGF5bG9hZDoge1xuICAgIGRhdGE6IFBhcnRpYWw8U3RhdGU+O1xuICB9O1xufVxuXG4vKipcbiAqIEBleGFtcGxlXG4gKlxuICogcnVuU3RvcmVBY3Rpb24oJ2Jvb2tzJywgU3RvcmVBY3Rpb25zLlVwZGF0ZSwge1xuICogICBwYXlsb2FkOiB7XG4gKiAgICBkYXRhOiB7IGZpbHRlcjogJ05ldyBmaWx0ZXInIH1cbiAqICAgfVxuICogfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5TdG9yZUFjdGlvbjxTdGF0ZSA9IGFueT4oc3RvcmVOYW1lOiBzdHJpbmcsIGFjdGlvbjogU3RvcmVBY3Rpb25zLlVwZGF0ZSwgcGFyYW1zOiBSdW5TdG9yZUFjdGlvblVwZGF0ZTxTdGF0ZT4pO1xuLyoqXG4gKiBAZXhhbXBsZVxuICpcbiAqIHJ1blN0b3JlQWN0aW9uKCdib29rcycsIFN0b3JlQWN0aW9ucy5SZW1vdmVFbnRpdGllcywge1xuICogICBwYXlsb2FkOiB7XG4gKiAgICBlbnRpdHlJZHM6IDJcbiAqICAgfVxuICogfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5TdG9yZUFjdGlvbjxFbnRpdHkgPSBhbnk+KHN0b3JlTmFtZTogc3RyaW5nLCBhY3Rpb246IFN0b3JlQWN0aW9ucy5SZW1vdmVFbnRpdGllcywgcGFyYW1zOiBSdW5TdG9yZUFjdGlvblJlbW92ZUVudGl0aWVzPEVudGl0eT4pO1xuLyoqXG4gKiBAZXhhbXBsZVxuICpcbiAqIHJ1blN0b3JlQWN0aW9uKCdib29rcycsIFN0b3JlQWN0aW9ucy5VcGRhdGVFbnRpdGllcywge1xuICogICBwYXlsb2FkOiB7XG4gKiAgICBkYXRhOiB7IHRpdGxlOiAnTmV3IHRpdGxlJyB9LFxuICogICAgZW50aXR5SWRzOiAyXG4gKiAgIH1cbiAqIH0pO1xuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuU3RvcmVBY3Rpb248RW50aXR5ID0gYW55PihzdG9yZU5hbWU6IHN0cmluZywgYWN0aW9uOiBTdG9yZUFjdGlvbnMuVXBkYXRlRW50aXRpZXMsIHBhcmFtczogUnVuU3RvcmVBY3Rpb25VcGRhdGVFbnRpdGllczxFbnRpdHk+KTtcbi8qKlxuICogQGV4YW1wbGVcbiAqXG4gKiBydW5TdG9yZUFjdGlvbignYm9va3MnLCBTdG9yZUFjdGlvbnMuU2V0RW50aXRpZXMsIHtcbiAqICAgcGF5bG9hZDoge1xuICogICAgZGF0YTogW3sgaWQ6IDEgfSwgeyBpZDogMiB9XVxuICogICB9XG4gKiB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blN0b3JlQWN0aW9uPEVudGl0eSA9IGFueT4oc3RvcmVOYW1lOiBzdHJpbmcsIGFjdGlvbjogU3RvcmVBY3Rpb25zLlNldEVudGl0aWVzLCBwYXJhbXM6IFJ1blN0b3JlQWN0aW9uU2V0RW50aXRpZXM8RW50aXR5Pik7XG4vKipcbiAqIEBleGFtcGxlXG4gKlxuICogcnVuU3RvcmVBY3Rpb24oJ2Jvb2tzJywgU3RvcmVBY3Rpb25zLkFkZEVudGl0aWVzLCB7XG4gKiAgIHBheWxvYWQ6IHtcbiAqICAgIGRhdGE6IHsgaWQ6IDEgfVxuICogICB9XG4gKiB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blN0b3JlQWN0aW9uPEVudGl0eSA9IGFueT4oc3RvcmVOYW1lOiBzdHJpbmcsIGFjdGlvbjogU3RvcmVBY3Rpb25zLkFkZEVudGl0aWVzLCBwYXJhbXM6IFJ1blN0b3JlQWN0aW9uQWRkRW50aXRpZXM8RW50aXR5Pik7XG4vKipcbiAqIEBleGFtcGxlXG4gKlxuICogcnVuU3RvcmVBY3Rpb24oJ2Jvb2tzJywgU3RvcmVBY3Rpb25zLlVwc2VydEVudGl0aWVzLCB7XG4gKiAgIHBheWxvYWQ6IHtcbiAqICAgIGRhdGE6IHsgdGl0bGU6ICdOZXcgVGl0bGUnIH0sXG4gKiAgICBlbnRpdHlJZHM6IFsxLCAyXVxuICogICB9XG4gKiB9KTtcbiAqIHJ1blN0b3JlQWN0aW9uKCdib29rcycsIFN0b3JlQWN0aW9ucy5VcHNlcnRFbnRpdGllcywge1xuICogICBwYXlsb2FkOiB7XG4gKiAgICBkYXRhOiBbeyBpZDogMiwgdGl0bGU6ICdOZXcgVGl0bGUnIH0sIHsgaWQ6IDMsIHRpdGxlOiAnQW5vdGhlciB0aXRsZSd9XSxcbiAqICAgfVxuICogfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5TdG9yZUFjdGlvbjxFbnRpdHkgPSBhbnk+KHN0b3JlTmFtZTogc3RyaW5nLCBhY3Rpb246IFN0b3JlQWN0aW9ucy5VcHNlcnRFbnRpdGllcywgcGFyYW1zOiBSdW5TdG9yZUFjdGlvblVwc2VydEVudGl0aWVzPEVudGl0eT4pO1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blN0b3JlQWN0aW9uPEVudGl0eU9yU3RhdGUgPSBhbnk+KFxuICBzdG9yZU5hbWU6IHN0cmluZyxcbiAgYWN0aW9uOiBTdG9yZUFjdGlvbnMsXG4gIHBhcmFtczpcbiAgICB8IFJ1blN0b3JlQWN0aW9uU2V0RW50aXRpZXM8RW50aXR5T3JTdGF0ZT5cbiAgICB8IFJ1blN0b3JlQWN0aW9uQWRkRW50aXRpZXM8RW50aXR5T3JTdGF0ZT5cbiAgICB8IFJ1blN0b3JlQWN0aW9uUmVtb3ZlRW50aXRpZXM8RW50aXR5T3JTdGF0ZT5cbiAgICB8IFJ1blN0b3JlQWN0aW9uVXBkYXRlRW50aXRpZXM8RW50aXR5T3JTdGF0ZT5cbiAgICB8IFJ1blN0b3JlQWN0aW9uVXBzZXJ0RW50aXRpZXM8RW50aXR5T3JTdGF0ZT5cbikge1xuICBjb25zdCBzdG9yZSA9IF9fc3RvcmVzX19bc3RvcmVOYW1lXTtcblxuICBpZiAoaXNOaWwoc3RvcmUpKSB7XG4gICAgdGhyb3cgbmV3IEFraXRhRXJyb3IoYCR7c3RvcmVOYW1lfSBkb2Vzbid0IGV4aXN0YCk7XG4gIH1cblxuICBzd2l0Y2ggKGFjdGlvbikge1xuICAgIGNhc2UgU3RvcmVBY3Rpb25zLlNldEVudGl0aWVzOiB7XG4gICAgICBjb25zdCB7IHBheWxvYWQgfSA9IHBhcmFtcyBhcyBSdW5TdG9yZUFjdGlvblNldEVudGl0aWVzO1xuICAgICAgKHN0b3JlIGFzIEVudGl0eVN0b3JlKS5zZXQocGF5bG9hZC5kYXRhKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2FzZSBTdG9yZUFjdGlvbnMuQWRkRW50aXRpZXM6IHtcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gcGFyYW1zIGFzIFJ1blN0b3JlQWN0aW9uQWRkRW50aXRpZXM7XG4gICAgICAoc3RvcmUgYXMgRW50aXR5U3RvcmUpLmFkZChwYXlsb2FkLmRhdGEsIHBheWxvYWQucGFyYW1zKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjYXNlIFN0b3JlQWN0aW9ucy5VcGRhdGVFbnRpdGllczoge1xuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBwYXJhbXMgYXMgUnVuU3RvcmVBY3Rpb25VcGRhdGVFbnRpdGllcztcbiAgICAgIChzdG9yZSBhcyBFbnRpdHlTdG9yZSkudXBkYXRlKHBheWxvYWQuZW50aXR5SWRzLCBwYXlsb2FkLmRhdGEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNhc2UgU3RvcmVBY3Rpb25zLlJlbW92ZUVudGl0aWVzOiB7XG4gICAgICBjb25zdCB7IHBheWxvYWQgfSA9IHBhcmFtcyBhcyBSdW5TdG9yZUFjdGlvblJlbW92ZUVudGl0aWVzO1xuICAgICAgKHN0b3JlIGFzIEVudGl0eVN0b3JlKS5yZW1vdmUocGF5bG9hZC5lbnRpdHlJZHMpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNhc2UgU3RvcmVBY3Rpb25zLlVwc2VydEVudGl0aWVzOiB7XG4gICAgICBjb25zdCB7IHBheWxvYWQgfSA9IHBhcmFtcyBhcyBSdW5TdG9yZUFjdGlvblVwc2VydEVudGl0aWVzO1xuICAgICAgaWYgKHBheWxvYWQuZW50aXR5SWRzKSB7XG4gICAgICAgIChzdG9yZSBhcyBFbnRpdHlTdG9yZSkudXBzZXJ0KHBheWxvYWQuZW50aXR5SWRzLCBwYXlsb2FkLmRhdGEpO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHBheWxvYWQuZGF0YSkpIHtcbiAgICAgICAgKHN0b3JlIGFzIEVudGl0eVN0b3JlKS51cHNlcnRNYW55KHBheWxvYWQuZGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAoc3RvcmUgYXMgRW50aXR5U3RvcmUpLnVwc2VydE1hbnkoW3BheWxvYWQuZGF0YV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNhc2UgU3RvcmVBY3Rpb25zLlVwZGF0ZToge1xuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBwYXJhbXMgYXMgUnVuU3RvcmVBY3Rpb25VcGRhdGU7XG4gICAgICAoc3RvcmUgYXMgRW50aXR5U3RvcmUpLnVwZGF0ZShwYXlsb2FkLmRhdGEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuIl19