Skip to content

Commit d657bc0

Browse files
authored
Merge branch 'main' into feat/support-novita-async-t2v
2 parents fa7ca44 + 47c3ccb commit d657bc0

File tree

19 files changed

+283
-202
lines changed

19 files changed

+283
-202
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ You can run our packages with vanilla JS, without any bundler, by using a CDN or
9797

9898
```html
9999
<script type="module">
100-
import { InferenceClient } from 'https://cdn.jsdelivr.net/npm/@huggingface/[email protected].0/+esm';
101-
import { createRepo, commit, deleteRepo, listFiles } from "https://cdn.jsdelivr.net/npm/@huggingface/[email protected].1/+esm";
100+
import { InferenceClient } from 'https://cdn.jsdelivr.net/npm/@huggingface/[email protected].1/+esm';
101+
import { createRepo, commit, deleteRepo, listFiles } from "https://cdn.jsdelivr.net/npm/@huggingface/[email protected].2/+esm";
102102
</script>
103103
```
104104

packages/gguf/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@huggingface/gguf",
33
"packageManager": "[email protected]",
4-
"version": "0.1.16",
4+
"version": "0.1.17",
55
"description": "a GGUF parser that works on remotely hosted files",
66
"repository": "https://github.com/huggingface/huggingface.js.git",
77
"publishConfig": {

packages/hub/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@huggingface/hub",
33
"packageManager": "[email protected]",
4-
"version": "2.0.1",
4+
"version": "2.0.2",
55
"description": "Utilities to interact with the Hugging Face hub",
66
"repository": "https://github.com/huggingface/huggingface.js.git",
77
"publishConfig": {

packages/hub/src/utils/sha256.ts

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,20 @@ export async function* sha256(
9696
try {
9797
const poolSize = typeof opts?.useWebWorker === "object" ? opts.useWebWorker.poolSize : undefined;
9898
const worker = await getWorker(poolSize);
99-
return yield* eventToGenerator<number, string>((yieldCallback, returnCallback, rejectCallack) => {
100-
worker.addEventListener("message", (event) => {
99+
100+
// Define handlers to allow removal
101+
let messageHandler: (event: MessageEvent) => void;
102+
let errorHandler: (event: ErrorEvent) => void;
103+
104+
const cleanup = () => {
105+
worker.removeEventListener("message", messageHandler);
106+
worker.removeEventListener("error", errorHandler);
107+
};
108+
109+
return yield* eventToGenerator<number, string>((yieldCallback, returnCallback, rejectCallback) => {
110+
messageHandler = (event: MessageEvent) => {
101111
if (event.data.sha256) {
112+
cleanup();
102113
freeWorker(worker, poolSize);
103114
returnCallback(event.data.sha256);
104115
} else if (event.data.progress) {
@@ -107,18 +118,47 @@ export async function* sha256(
107118
try {
108119
opts.abortSignal?.throwIfAborted();
109120
} catch (err) {
121+
cleanup();
110122
destroyWorker(worker);
111-
rejectCallack(err);
123+
rejectCallback(err);
112124
}
113125
} else {
126+
cleanup();
114127
destroyWorker(worker);
115-
rejectCallack(event);
128+
rejectCallback(event);
116129
}
117-
});
118-
worker.addEventListener("error", (event) => {
130+
};
131+
132+
errorHandler = (event: ErrorEvent) => {
133+
cleanup();
119134
destroyWorker(worker);
120-
rejectCallack(event.error);
121-
});
135+
rejectCallback(event.error);
136+
};
137+
138+
// Handle external abort signal if it aborts before any worker message
139+
if (opts?.abortSignal) {
140+
try {
141+
opts.abortSignal?.throwIfAborted();
142+
} catch (err) {
143+
cleanup();
144+
destroyWorker(worker);
145+
rejectCallback(opts.abortSignal.reason ?? new DOMException("Aborted", "AbortError"));
146+
return;
147+
}
148+
149+
const abortListener = () => {
150+
cleanup();
151+
destroyWorker(worker);
152+
153+
rejectCallback(opts.abortSignal?.reason ?? new DOMException("Aborted", "AbortError"));
154+
opts.abortSignal?.removeEventListener("abort", abortListener);
155+
};
156+
157+
opts.abortSignal.addEventListener("abort", abortListener);
158+
}
159+
160+
worker.addEventListener("message", messageHandler);
161+
worker.addEventListener("error", errorHandler);
122162
worker.postMessage({ file: buffer });
123163
});
124164
} catch (err) {

0 commit comments

Comments
 (0)