mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-15 06:35:20 -07:00
Replace all in-scope axios callsites with a new helpers/http.js wrapper over native fetch, including JSON/text GET, JSON POST, HEAD checks, and transient 5xx retry behavior; update all browser, build, script, and proxy API clients to use it; add focused unit tests; and remove axios from package dependencies. Constraint: Preserve API/build and deployment behavior while lowering transport surface area. Rejected: inline fetch replacements at each callsite | rejected to avoid inconsistent error/retry semantics. Confidence: high Scope-risk: moderate Directive: Keep helper in place as the transport boundary and update tests when changing request semantics. Tested: pnpm run -s typecheck, pnpm -s run test-prebuild, pnpm -s run test, pnpm -s run test:browser, pnpm -s run netlify-build, smoke GETs on /apple-silicon-app-test and /apple-silicon-app-test/?version=2 Not-tested: branch/netlify deployment health in CI pipeline after merge
29 lines
719 B
JavaScript
29 lines
719 B
JavaScript
import { makeSlug } from './slug.js'
|
|
import { getJson } from './http.js'
|
|
|
|
export function getDeviceEndpoint ( slug ) {
|
|
return `/device/${ slug }`
|
|
}
|
|
|
|
|
|
|
|
export default async function () {
|
|
|
|
const devicesJsonUrl = `${process.env.VFUNCTIONS_URL}/api/devices`
|
|
|
|
const rawDeviceList = await getJson( devicesJsonUrl )
|
|
.catch(function (error) {
|
|
// handle error
|
|
console.warn('Error fetching device list', error)
|
|
})
|
|
|
|
return rawDeviceList.filter( device => ( device.enabled !== 'no' ) ).map( device => {
|
|
const slug = makeSlug( device.name )
|
|
|
|
return {
|
|
...device,
|
|
slug,
|
|
endpoint: getDeviceEndpoint( slug ),
|
|
}
|
|
})
|
|
}
|