mirror of
https://github.com/primedigitaltech/azon_seeker.git
synced 2026-10-05 07:13:06 +08:00
* feat: add Amazon collection metadata and reliable sync * fix: route extension sync through configured server * chore: release extension v0.7.13 * fix: handle extension ports across BFCache navigation * fix: classify bottom Sponsored Brands video placements * fix: exclude hidden Amazon ad cards * fix: derive Amazon result page from URL * fix: ignore hidden Amazon sponsored products * fix: preserve base Amazon product collection * fix: bind Amazon results to visible page * fix: classify visible Amazon ad formats * fix: wait for lazy Amazon ad modules * perf: reduce Amazon lazy-load scroll stops * fix: classify Amazon sponsored brand and video search ads Co-authored-by: Cursor <cursoragent@cursor.com> * fix: collect Shop by type thematic SP ads via redirect chains without data-asin Co-authored-by: Cursor <cursoragent@cursor.com> * fix: classify sponsored ads across new Amazon templates --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: PetrichorFun <127877748+PetrichorFun@users.noreply.github.com>
28 lines
610 B
TypeScript
28 lines
610 B
TypeScript
export function useLongTask() {
|
|
const isRunning = ref(false);
|
|
const lastError = shallowRef<unknown>();
|
|
|
|
const startTask = async <T = undefined>(task: () => Promise<T>) => {
|
|
if (isRunning.value) {
|
|
throw Error('Task is still running.');
|
|
}
|
|
isRunning.value = true;
|
|
lastError.value = undefined;
|
|
let result = undefined;
|
|
try {
|
|
result = await task();
|
|
} catch (error) {
|
|
lastError.value = error;
|
|
console.error('Task failed:', error);
|
|
}
|
|
isRunning.value = false;
|
|
return result as T;
|
|
};
|
|
|
|
return {
|
|
isRunning,
|
|
lastError,
|
|
startTask,
|
|
};
|
|
}
|