A small web app for watching movies and shows easily
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

49 lines
1.1 KiB

import { useProgressStore } from "@/stores/progress";
import { OldData, migrateV2Videos } from "./migrations/v2";
import { migrateV3Videos } from "./migrations/v3";
import { migrateV4Videos } from "./migrations/v4";
import { WatchedStoreData } from "./types";
import { createVersionedStore } from "../migrations";
export const VideoProgressStore = createVersionedStore<WatchedStoreData>()
.setKey("video-progress")
.addVersion({
version: 0,
migrate() {
return {
items: [], // dont migrate from version 0 to version 1, unmigratable
};
},
})
.addVersion({
version: 1,
async migrate(old: OldData) {
return migrateV2Videos(old);
},
})
.addVersion({
version: 2,
migrate(old: WatchedStoreData) {
return migrateV3Videos(old);
},
})
.addVersion({
version: 3,
migrate(old: WatchedStoreData): WatchedStoreData {
useProgressStore.getState().replaceItems(migrateV4Videos(old));
return {
items: [],
};
},
})
.addVersion({
version: 4,
create() {
return {
items: [],
};
},
})
.build();