Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
| import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises"; | |
| import { tmpdir } from "node:os"; | |
| import { dirname, join, resolve } from "node:path"; | |
| import { fileURLToPath } from "node:url"; | |
| import openapiTS, { astToString, type OpenAPI3 } from "openapi-typescript"; | |
| import { buildApp } from "./app.js"; | |
| import type { AppConfig } from "./config.js"; | |
| import { createRuntime } from "./runtime.js"; | |
| const repository = resolve(dirname(fileURLToPath(import.meta.url)), "../../.."); | |
| const scratch = await mkdtemp(join(tmpdir(), "harbor-hf-openapi-")); | |
| const bucket = join(scratch, "bucket"); | |
| await mkdir(bucket, { recursive: true }); | |
| const config: AppConfig = { | |
| node_env: "test", | |
| port: 7860, | |
| namespace: "example", | |
| bucket_id: "example/artifacts", | |
| bucket_root: bucket, | |
| store_mode: "filesystem", | |
| projection_path: join(scratch, "projection.sqlite"), | |
| auth_path: join(scratch, "auth.sqlite"), | |
| profiles_root: join(repository, "profiles"), | |
| capacity_profile_alias: null, | |
| max_active_jobs: 16, | |
| task_image_mirror_repository: "mirror.example/harbor-hf/tasks", | |
| web_root: join(scratch, "web"), | |
| auth_mode: "development", | |
| write_mode: "disabled", | |
| public_origin: "http://127.0.0.1:7860", | |
| oauth: null, | |
| hf_token: null, | |
| hf_inference_token: null, | |
| reconcile_interval_ms: 1000, | |
| sync_interval_ms: 30000, | |
| observe_interval_ms: 1000, | |
| worker_receipt_grace_ms: 0, | |
| source_revision: "development", | |
| bootstrap_operator_subjects: [], | |
| }; | |
| const runtime = await createRuntime(config); | |
| const app = await buildApp(runtime); | |
| try { | |
| await runtime.initialize(); | |
| await app.ready(); | |
| const document = app.swagger(); | |
| const documentPath = join(repository, "docs", "control-api-v1.openapi.json"); | |
| await writeFile(documentPath, `${JSON.stringify(document, null, 2)}\n`, "utf8"); | |
| const generated = astToString(await openapiTS(document as unknown as OpenAPI3)); | |
| const outputPath = join( | |
| repository, | |
| "apps", | |
| "control-web", | |
| "src", | |
| "generated", | |
| "api.ts", | |
| ); | |
| await mkdir(dirname(outputPath), { recursive: true }); | |
| await writeFile(outputPath, generated, "utf8"); | |
| } finally { | |
| await app.close(); | |
| await runtime.close(); | |
| await rm(scratch, { recursive: true, force: true }); | |
| } | |