UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

131 lines 13.2 kB
/** * @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