From 2367714eb9de7f3061606f1f1366bef8ba6cb7a6 Mon Sep 17 00:00:00 2001 From: caglar09 Date: Mon, 12 May 2025 10:24:28 +0000 Subject: [PATCH] ci: merge release v0.5.15 to master --- lib/commonjs/hooks/useQueue.js | 2 +- lib/commonjs/hooks/useQueue.js.map | 2 +- lib/module/hooks/useQueue.js | 2 +- lib/module/hooks/useQueue.js.map | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/commonjs/hooks/useQueue.js b/lib/commonjs/hooks/useQueue.js index f15219d..4455e07 100644 --- a/lib/commonjs/hooks/useQueue.js +++ b/lib/commonjs/hooks/useQueue.js @@ -74,7 +74,7 @@ function useQueue() { _Queue.default.on('jobStarted', onJobStarted); _Queue.default.on('jobFailed', onJobFailed); _Queue.default.on('jobSucceeded', onJobSucceeded); - _Queue.default.on('jobDeleted', onJobSucceeded); + _Queue.default.on('jobDeleted', onJobDeleted); // Cleanup return () => { diff --git a/lib/commonjs/hooks/useQueue.js.map b/lib/commonjs/hooks/useQueue.js.map index 5f9e63e..71ad82f 100644 --- a/lib/commonjs/hooks/useQueue.js.map +++ b/lib/commonjs/hooks/useQueue.js.map @@ -1 +1 @@ -{"version":3,"names":["_react","require","_Queue","_interopRequireDefault","e","__esModule","default","useQueue","activeJobs","setActiveJobs","useState","lastCompletedJobs","setLastCompletedJobs","queuedCount","useMemo","filter","j","status","length","activeCount","failedCount","completedCount","refreshJobs","useCallback","all","queue","getJobs","allWithDeleted","getJobsWithDeleted","completed","isDeleted","useEffect","onJobAdded","job","prev","onJobStarted","map","id","onJobFailed","onJobSucceeded","onJobDeleted","on","off"],"sources":["useQueue.tsx"],"sourcesContent":["// src/hooks/useQueue.tsx\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport queue from '../Queue';\nimport { RawJob } from '../models/Job';\nimport { Job } from '../models/Job';\n\nexport interface UseQueueState {\n queuedCount: number;\n activeCount: number;\n failedCount: number;\n completedCount: number;\n activeJobs: RawJob[];\n lastCompletedJobs: RawJob[];\n refreshJobs: () => Promise;\n}\n\n/**\n * useQueue hook\n *\n * Tracks the queue state:\n * - queuedCount: number of jobs waiting to start (status === 'idle')\n * - activeCount: number of jobs currently processing\n * - failedCount: number of jobs that have failed\n * - completedCount: number of jobs that have completed successfully\n * - activeJobs: list of current non-deleted jobs\n * - lastCompletedJobs: list of jobs marked as deleted (completed)\n */\nexport function useQueue(): UseQueueState {\n const [activeJobs, setActiveJobs] = useState([]);\n const [lastCompletedJobs, setLastCompletedJobs] = useState([]);\n\n // Derive counts from job statuses\n const queuedCount = useMemo(() => activeJobs.filter((j) => j.status === 'idle').length, [activeJobs]);\n const activeCount = useMemo(() => activeJobs.filter((j) => j.status === 'processing').length, [activeJobs]);\n const failedCount = useMemo(() => activeJobs.filter((j) => j.status === 'failed').length, [activeJobs]);\n const completedCount = useMemo(() => lastCompletedJobs.length, [lastCompletedJobs]);\n\n // Yığın içindeki işleri güncelle\n const refreshJobs = useCallback(async () => {\n const all = await queue.getJobs();\n const allWithDeleted = await queue.getJobsWithDeleted();\n const completed = allWithDeleted.filter((j) => j.isDeleted);\n setLastCompletedJobs(completed);\n\n setActiveJobs(all);\n }, []);\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n refreshJobs();\n\n // Event listener tanımları\n const onJobAdded = (job: RawJob) => {\n setActiveJobs((prev) => [...prev, job]);\n };\n const onJobStarted = (job: RawJob) => {\n setActiveJobs((prev) => prev.map((j) => (j.id === job.id ? { ...j, ...job } : j)));\n };\n const onJobFailed = (job: RawJob) => {\n setActiveJobs((prev) => prev.map((j) => (j.id === job.id ? { ...j, ...job } : j)));\n };\n const onJobSucceeded = (job: Job) => {\n setActiveJobs((prev) => prev.filter((j) => j.id !== job.id));\n setLastCompletedJobs((prev) => [...prev, { ...job }]);\n };\n const onJobDeleted = (job: RawJob) => {\n setActiveJobs((prev) => prev.filter((j) => j.id !== job.id));\n setLastCompletedJobs((prev) => prev.filter((j) => j.id !== job.id));\n };\n\n // Subscribe\n queue.on('jobAdded', onJobAdded);\n queue.on('jobStarted', onJobStarted);\n queue.on('jobFailed', onJobFailed);\n queue.on('jobSucceeded', onJobSucceeded);\n queue.on('jobDeleted', onJobSucceeded);\n\n // Cleanup\n return () => {\n queue.off('jobAdded', onJobAdded);\n queue.off('jobStarted', onJobStarted);\n queue.off('jobFailed', onJobFailed);\n queue.off('jobSucceeded', onJobSucceeded);\n queue.off('jobDeleted', onJobDeleted);\n };\n }, [refreshJobs]);\n\n return {\n queuedCount,\n activeCount,\n failedCount,\n completedCount,\n activeJobs,\n lastCompletedJobs,\n refreshJobs,\n };\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["_react","require","_Queue","_interopRequireDefault","e","__esModule","default","useQueue","activeJobs","setActiveJobs","useState","lastCompletedJobs","setLastCompletedJobs","queuedCount","useMemo","filter","j","status","length","activeCount","failedCount","completedCount","refreshJobs","useCallback","all","queue","getJobs","allWithDeleted","getJobsWithDeleted","completed","isDeleted","useEffect","onJobAdded","job","prev","onJobStarted","map","id","onJobFailed","onJobSucceeded","onJobDeleted","on","off"],"sources":["useQueue.tsx"],"sourcesContent":["// src/hooks/useQueue.tsx\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport queue from '../Queue';\nimport { RawJob } from '../models/Job';\nimport { Job } from '../models/Job';\n\nexport interface UseQueueState {\n queuedCount: number;\n activeCount: number;\n failedCount: number;\n completedCount: number;\n activeJobs: RawJob[];\n lastCompletedJobs: RawJob[];\n refreshJobs: () => Promise;\n}\n\n/**\n * useQueue hook\n *\n * Tracks the queue state:\n * - queuedCount: number of jobs waiting to start (status === 'idle')\n * - activeCount: number of jobs currently processing\n * - failedCount: number of jobs that have failed\n * - completedCount: number of jobs that have completed successfully\n * - activeJobs: list of current non-deleted jobs\n * - lastCompletedJobs: list of jobs marked as deleted (completed)\n */\nexport function useQueue(): UseQueueState {\n const [activeJobs, setActiveJobs] = useState([]);\n const [lastCompletedJobs, setLastCompletedJobs] = useState([]);\n\n // Derive counts from job statuses\n const queuedCount = useMemo(() => activeJobs.filter((j) => j.status === 'idle').length, [activeJobs]);\n const activeCount = useMemo(() => activeJobs.filter((j) => j.status === 'processing').length, [activeJobs]);\n const failedCount = useMemo(() => activeJobs.filter((j) => j.status === 'failed').length, [activeJobs]);\n const completedCount = useMemo(() => lastCompletedJobs.length, [lastCompletedJobs]);\n\n // Yığın içindeki işleri güncelle\n const refreshJobs = useCallback(async () => {\n const all = await queue.getJobs();\n const allWithDeleted = await queue.getJobsWithDeleted();\n const completed = allWithDeleted.filter((j) => j.isDeleted);\n setLastCompletedJobs(completed);\n\n setActiveJobs(all);\n }, []);\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n refreshJobs();\n\n // Event listener tanımları\n const onJobAdded = (job: RawJob) => {\n setActiveJobs((prev) => [...prev, job]);\n };\n const onJobStarted = (job: RawJob) => {\n setActiveJobs((prev) => prev.map((j) => (j.id === job.id ? { ...j, ...job } : j)));\n };\n const onJobFailed = (job: RawJob) => {\n setActiveJobs((prev) => prev.map((j) => (j.id === job.id ? { ...j, ...job } : j)));\n };\n const onJobSucceeded = (job: Job) => {\n setActiveJobs((prev) => prev.filter((j) => j.id !== job.id));\n setLastCompletedJobs((prev) => [...prev, { ...job }]);\n };\n const onJobDeleted = (job: RawJob) => {\n setActiveJobs((prev) => prev.filter((j) => j.id !== job.id));\n setLastCompletedJobs((prev) => prev.filter((j) => j.id !== job.id));\n };\n\n // Subscribe\n queue.on('jobAdded', onJobAdded);\n queue.on('jobStarted', onJobStarted);\n queue.on('jobFailed', onJobFailed);\n queue.on('jobSucceeded', onJobSucceeded);\n queue.on('jobDeleted', onJobDeleted);\n\n // Cleanup\n return () => {\n queue.off('jobAdded', onJobAdded);\n queue.off('jobStarted', onJobStarted);\n queue.off('jobFailed', onJobFailed);\n queue.off('jobSucceeded', onJobSucceeded);\n queue.off('jobDeleted', onJobDeleted);\n };\n }, [refreshJobs]);\n\n return {\n queuedCount,\n activeCount,\n failedCount,\n completedCount,\n activeJobs,\n lastCompletedJobs,\n refreshJobs,\n };\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file diff --git a/lib/module/hooks/useQueue.js b/lib/module/hooks/useQueue.js index ebb5380..abd59f5 100644 --- a/lib/module/hooks/useQueue.js +++ b/lib/module/hooks/useQueue.js @@ -66,7 +66,7 @@ export function useQueue() { queue.on('jobStarted', onJobStarted); queue.on('jobFailed', onJobFailed); queue.on('jobSucceeded', onJobSucceeded); - queue.on('jobDeleted', onJobSucceeded); + queue.on('jobDeleted', onJobDeleted); // Cleanup return () => { diff --git a/lib/module/hooks/useQueue.js.map b/lib/module/hooks/useQueue.js.map index 6b9c21b..d57505c 100644 --- a/lib/module/hooks/useQueue.js.map +++ b/lib/module/hooks/useQueue.js.map @@ -1 +1 @@ -{"version":3,"names":["useState","useEffect","useCallback","useMemo","queue","useQueue","activeJobs","setActiveJobs","lastCompletedJobs","setLastCompletedJobs","queuedCount","filter","j","status","length","activeCount","failedCount","completedCount","refreshJobs","all","getJobs","allWithDeleted","getJobsWithDeleted","completed","isDeleted","onJobAdded","job","prev","onJobStarted","map","id","onJobFailed","onJobSucceeded","onJobDeleted","on","off"],"sources":["useQueue.tsx"],"sourcesContent":["// src/hooks/useQueue.tsx\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport queue from '../Queue';\nimport { RawJob } from '../models/Job';\nimport { Job } from '../models/Job';\n\nexport interface UseQueueState {\n queuedCount: number;\n activeCount: number;\n failedCount: number;\n completedCount: number;\n activeJobs: RawJob[];\n lastCompletedJobs: RawJob[];\n refreshJobs: () => Promise;\n}\n\n/**\n * useQueue hook\n *\n * Tracks the queue state:\n * - queuedCount: number of jobs waiting to start (status === 'idle')\n * - activeCount: number of jobs currently processing\n * - failedCount: number of jobs that have failed\n * - completedCount: number of jobs that have completed successfully\n * - activeJobs: list of current non-deleted jobs\n * - lastCompletedJobs: list of jobs marked as deleted (completed)\n */\nexport function useQueue(): UseQueueState {\n const [activeJobs, setActiveJobs] = useState([]);\n const [lastCompletedJobs, setLastCompletedJobs] = useState([]);\n\n // Derive counts from job statuses\n const queuedCount = useMemo(() => activeJobs.filter((j) => j.status === 'idle').length, [activeJobs]);\n const activeCount = useMemo(() => activeJobs.filter((j) => j.status === 'processing').length, [activeJobs]);\n const failedCount = useMemo(() => activeJobs.filter((j) => j.status === 'failed').length, [activeJobs]);\n const completedCount = useMemo(() => lastCompletedJobs.length, [lastCompletedJobs]);\n\n // Yığın içindeki işleri güncelle\n const refreshJobs = useCallback(async () => {\n const all = await queue.getJobs();\n const allWithDeleted = await queue.getJobsWithDeleted();\n const completed = allWithDeleted.filter((j) => j.isDeleted);\n setLastCompletedJobs(completed);\n\n setActiveJobs(all);\n }, []);\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n refreshJobs();\n\n // Event listener tanımları\n const onJobAdded = (job: RawJob) => {\n setActiveJobs((prev) => [...prev, job]);\n };\n const onJobStarted = (job: RawJob) => {\n setActiveJobs((prev) => prev.map((j) => (j.id === job.id ? { ...j, ...job } : j)));\n };\n const onJobFailed = (job: RawJob) => {\n setActiveJobs((prev) => prev.map((j) => (j.id === job.id ? { ...j, ...job } : j)));\n };\n const onJobSucceeded = (job: Job) => {\n setActiveJobs((prev) => prev.filter((j) => j.id !== job.id));\n setLastCompletedJobs((prev) => [...prev, { ...job }]);\n };\n const onJobDeleted = (job: RawJob) => {\n setActiveJobs((prev) => prev.filter((j) => j.id !== job.id));\n setLastCompletedJobs((prev) => prev.filter((j) => j.id !== job.id));\n };\n\n // Subscribe\n queue.on('jobAdded', onJobAdded);\n queue.on('jobStarted', onJobStarted);\n queue.on('jobFailed', onJobFailed);\n queue.on('jobSucceeded', onJobSucceeded);\n queue.on('jobDeleted', onJobSucceeded);\n\n // Cleanup\n return () => {\n queue.off('jobAdded', onJobAdded);\n queue.off('jobStarted', onJobStarted);\n queue.off('jobFailed', onJobFailed);\n queue.off('jobSucceeded', onJobSucceeded);\n queue.off('jobDeleted', onJobDeleted);\n };\n }, [refreshJobs]);\n\n return {\n queuedCount,\n activeCount,\n failedCount,\n completedCount,\n activeJobs,\n lastCompletedJobs,\n refreshJobs,\n };\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file +{"version":3,"names":["useState","useEffect","useCallback","useMemo","queue","useQueue","activeJobs","setActiveJobs","lastCompletedJobs","setLastCompletedJobs","queuedCount","filter","j","status","length","activeCount","failedCount","completedCount","refreshJobs","all","getJobs","allWithDeleted","getJobsWithDeleted","completed","isDeleted","onJobAdded","job","prev","onJobStarted","map","id","onJobFailed","onJobSucceeded","onJobDeleted","on","off"],"sources":["useQueue.tsx"],"sourcesContent":["// src/hooks/useQueue.tsx\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport queue from '../Queue';\nimport { RawJob } from '../models/Job';\nimport { Job } from '../models/Job';\n\nexport interface UseQueueState {\n queuedCount: number;\n activeCount: number;\n failedCount: number;\n completedCount: number;\n activeJobs: RawJob[];\n lastCompletedJobs: RawJob[];\n refreshJobs: () => Promise;\n}\n\n/**\n * useQueue hook\n *\n * Tracks the queue state:\n * - queuedCount: number of jobs waiting to start (status === 'idle')\n * - activeCount: number of jobs currently processing\n * - failedCount: number of jobs that have failed\n * - completedCount: number of jobs that have completed successfully\n * - activeJobs: list of current non-deleted jobs\n * - lastCompletedJobs: list of jobs marked as deleted (completed)\n */\nexport function useQueue(): UseQueueState {\n const [activeJobs, setActiveJobs] = useState([]);\n const [lastCompletedJobs, setLastCompletedJobs] = useState([]);\n\n // Derive counts from job statuses\n const queuedCount = useMemo(() => activeJobs.filter((j) => j.status === 'idle').length, [activeJobs]);\n const activeCount = useMemo(() => activeJobs.filter((j) => j.status === 'processing').length, [activeJobs]);\n const failedCount = useMemo(() => activeJobs.filter((j) => j.status === 'failed').length, [activeJobs]);\n const completedCount = useMemo(() => lastCompletedJobs.length, [lastCompletedJobs]);\n\n // Yığın içindeki işleri güncelle\n const refreshJobs = useCallback(async () => {\n const all = await queue.getJobs();\n const allWithDeleted = await queue.getJobsWithDeleted();\n const completed = allWithDeleted.filter((j) => j.isDeleted);\n setLastCompletedJobs(completed);\n\n setActiveJobs(all);\n }, []);\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n refreshJobs();\n\n // Event listener tanımları\n const onJobAdded = (job: RawJob) => {\n setActiveJobs((prev) => [...prev, job]);\n };\n const onJobStarted = (job: RawJob) => {\n setActiveJobs((prev) => prev.map((j) => (j.id === job.id ? { ...j, ...job } : j)));\n };\n const onJobFailed = (job: RawJob) => {\n setActiveJobs((prev) => prev.map((j) => (j.id === job.id ? { ...j, ...job } : j)));\n };\n const onJobSucceeded = (job: Job) => {\n setActiveJobs((prev) => prev.filter((j) => j.id !== job.id));\n setLastCompletedJobs((prev) => [...prev, { ...job }]);\n };\n const onJobDeleted = (job: RawJob) => {\n setActiveJobs((prev) => prev.filter((j) => j.id !== job.id));\n setLastCompletedJobs((prev) => prev.filter((j) => j.id !== job.id));\n };\n\n // Subscribe\n queue.on('jobAdded', onJobAdded);\n queue.on('jobStarted', onJobStarted);\n queue.on('jobFailed', onJobFailed);\n queue.on('jobSucceeded', onJobSucceeded);\n queue.on('jobDeleted', onJobDeleted);\n\n // Cleanup\n return () => {\n queue.off('jobAdded', onJobAdded);\n queue.off('jobStarted', onJobStarted);\n queue.off('jobFailed', onJobFailed);\n queue.off('jobSucceeded', onJobSucceeded);\n queue.off('jobDeleted', onJobDeleted);\n };\n }, [refreshJobs]);\n\n return {\n queuedCount,\n activeCount,\n failedCount,\n completedCount,\n activeJobs,\n lastCompletedJobs,\n refreshJobs,\n };\n}\n"],"mappings":"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","ignoreList":[]} \ No newline at end of file