Spaces:
Running
Running
File size: 2,838 Bytes
c144f47 06a4efd 0fe50fd 06a4efd 0fe50fd 06a4efd f575c9e 06a4efd 687447e 06a4efd 1ce79db 06a4efd 1ce79db 06a4efd 124aade 06a4efd 124aade 06a4efd f575c9e 06a4efd 55949e2 c144f47 06a4efd 1ce79db 06a4efd 55949e2 c144f47 06a4efd 1ce79db 06a4efd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
import { fetchEventSource } from '@microsoft/fetch-event-source';
// On loaded, add event listeners
window.document.addEventListener("DOMContentLoaded", () => {
const form = window.document.querySelector("form");
form.addEventListener("submit", async (event) => {
const spaceName = window.document.querySelector("#space-name");
const buildCommand = window.document.querySelector("#build-command");
const hfToken = window.document.querySelector("#hf-token");
const outputPath = window.document.querySelector("#output-path");
const output = window.document.querySelector("#output");
const logOuput = window.document.querySelector("#log-output");
const eventOutput = window.document.querySelector("#event-output");
event.preventDefault();
output.textContent = "";
logOuput.textContent = "";
eventOutput.textContent = "";
const data = {
environment: {
HF_SPACE_NAME: spaceName.value,
BUILD_COMMAND: buildCommand.value,
// Remove filename
OUTPUT_PATH: outputPath.value.replace(/\/[^/]*$/, ""),
},
secrets: {
HF_TOKEN: hfToken.value,
},
arguments: [],
command: ["/app/build.sh"],
flavor: "cpu-basic",
spaceId: "huggingface/space-build",
};
const tokenOwnerResp = await fetch("https://huggingface.co/api/whoami-v2", {
method: "GET",
headers: {
Authorization: `Bearer ${hfToken.value}`,
},
});
if (!tokenOwnerResp.ok) {
output.textContent = "Invalid token";
return;
}
const tokenOwer = (await tokenOwnerResp.json())["name"];
if (!tokenOwer) {
output.textContent = "Invalid token";
return;
}
output.textContent += `Token owner: ${tokenOwer}\n`;
const jobResponse = await fetch(`https://huggingface.co/api/jobs/${tokenOwer}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${hfToken.value}`,
},
body: JSON.stringify(data),
});
const result = await jobResponse.json();
if (!jobResponse.ok) {
output.textContent += `Error: ${result.error}`;
return;
}
output.textContent += JSON.stringify(result, null, 2);
const jobId = result["metadata"]["jobId"];
fetchEventSource(`https://huggingface.co/api/jobs/${tokenOwer}/${jobId}/sse`, {
onmessage: (event) => {
eventOutput.textContent += `${event.data}\n`;
},
headers: {
Authorization: `Bearer ${hfToken.value}`,
},
});
fetchEventSource(`https://huggingface.co/api/jobs/${tokenOwer}/${jobId}/logs-stream`, {
onmessage: (event) => {
logOuput.textContent += `${event.data}\n`;
},
headers: {
Authorization: `Bearer ${hfToken.value}`,
},
});
});
});
|