[lib] Create a migration function
Summary:
This function should be used during migrations. An example is described in the test plan.
Depends on D14457
Test Plan:
Tested the whole stack on both native and web:
- Run the app on Redux version 86 with a modification to processDMOperation making all the INBOUND messages unsupported
- On one platform created a thread and sent a text message. These were visible on the sender, and invisible on the recipient
- Closed the recipient and added a migration that unshimms the thread creation operations, e.g.
unshimDMOperations( state, dmOperationTypes.CREATE_THREAD, handleReduxMigrationFailure, ): MigrationFunction<WebNavInfo, AppState>),
- Run the recipient and noticed the thread appearing
- Added another migration, this time unshimming text messages
- Run the recipient and noticed messages appearing
Reviewers: kamil, bartek
Reviewed By: kamil
Subscribers: ashoat
Differential Revision: https://phab.comm.dev/D14458