Loading files
c44ec7454This file is pinned to the selected release. Download the original to open it in your design tool.
Files from this revision, including CAD and LFS contents. Git history is not included.
Or in GitHub Desktop, choose File → Clone repository → URL and paste this address.
Public repositories can be cloned without signing in. For pushing, use your ThingAtlas username and a Git access token as the password.
git lfs install git clone https://thingatlas.com/git/-unclaimed/stack-chan-374381865.git
Includes Git history, branches, and Git LFS files. Clones the repository’s default branch, regardless of the version shown here.
import { loadModCatalog, type ModArtifact, type ModDefinition } from '../../../mod-gallery/mod-definition.mjs'
export type { ModArtifact, ModDefinition } from '../../../mod-gallery/mod-definition.mjs'
const catalogUrl = new URL('./catalog.json', document.baseURI)
const ARCHIVE_FETCH_TIMEOUT_MS = 30_000
export const loadGalleryCatalog = () => loadModCatalog(catalogUrl)
export const fetchModArchive = async (
artifact: ModArtifact,
{
fetcher = globalThis.fetch,
timeoutMs = ARCHIVE_FETCH_TIMEOUT_MS,
}: {
fetcher?: typeof globalThis.fetch
timeoutMs?: number
} = {}
) => {
const controller = new AbortController()
const timeout = globalThis.setTimeout(
() => controller.abort(new DOMException('MOD archive request timed out', 'TimeoutError')),
timeoutMs
)
try {
const response = await fetcher(artifact.url, { signal: controller.signal })
if (!response.ok) throw new Error(`MODを取得できませんでした (HTTP ${response.status})`)
return new Uint8Array(await response.arrayBuffer())
} finally {
globalThis.clearTimeout(timeout)
}
}
c44ec7454This file is pinned to the selected release. Download the original to open it in your design tool.