A time traveler written for ef, written with ef
Import the time traveler and template to be time-traveled
import TimeTraveler from 'ef-time-traveler'
import Template from './template.eft'Create a time traveler instance and a new template instance
const timeTraveler = new TimeTraveler()
const template = new Template()Register the template instance to the time traveler instance. Specify keys to tell the time traveler to record which things needed:
timeTraveler.register(template, ['key1', 'key2.subProp'])Then do some operations on template instance, history will be automatically recorded
Get how many history is recorded. This is a read only value:
const count = timeTraveler.historyCountJump back to history at position X<int>
timeTraveler.currentPos = XRecording is disabled when viewing history. Resume to the last history position in order to continue editing:
timeTraveler.currentPos = timeTraveler.historyCountRevert X<int> history records. Newer history record is then discarded:
timeTraveler.revert(X)Reset to position X<int> and then all newer history is discarded:
timeTraveler.reset(X)This time traveler only records changes, so you may need to be careful when manually setting currentPos. Reverting history would lead to a full history reconstruct, so use carefully to avoid performance issue.