@osmoweb/frontend-core
v0.6.6
Published
This is the core frontend package for OsmoWeb
Readme
@osmoweb/frontend-core
Front-end HTTP, WebSocket, WebUSB, worker, and WebAssembly helpers for OsmoWeb applications.
Install
npm install @osmoweb/frontend-coreImports (entrypoints)
@osmoweb/frontend-core— re-exports./servicesand./osmo@osmoweb/frontend-core/services— API client helpers@osmoweb/frontend-core/osmo— browser BTS/TRX runtime helpers
import { getBts, releaseBts, updateBts } from '@osmoweb/frontend-core/services';Services
BTS service
Endpoints:
GET /api/v1/osmo/bts→getBts()GET /api/v1/osmo/bts?instanceId=...→getBts(instanceId)PUT /api/v1/osmo/bts→updateBts(cfg?)DELETE /api/v1/osmo/bts→releaseBts(instanceId?)
import { getBts, releaseBts, updateBts } from '@osmoweb/frontend-core/services';
import { GSMBand } from '@osmoweb/core';
import type { BtsUpdateInput } from '@osmoweb/frontend-core/services';
// Read BTS info for the current user/session
const bts = await getBts();
// Update BTS config
const cfg: BtsUpdateInput = {
instanceId: 'browser-tab-1',
band: GSMBand.GSM_900,
arfcn: 0,
};
await updateBts(cfg);
await getBts('browser-tab-1');
await releaseBts('browser-tab-1');Notes
- These helpers assume an OsmoWeb backend that exposes
/api/v1/osmo/*routes. - Request mechanics (base URL, auth headers/cookies, error handling) are delegated to
apiFetchfrom@websdr/frontend-core.
API overview
From @osmoweb/frontend-core/services:
getBts(instanceId?: string): Promise<BtsConfig>updateBts(cfg?: BtsUpdateInput): Promise<BtsConfig>releaseBts(instanceId?: string): Promise<{ released: boolean }>
From @osmoweb/frontend-core/osmo:
- Runtime:
Osmo,initOsmo(), and Emscripten callback exports - Worker API:
OsmoTrxWorker,OsmoTrxManager,OsmoTrxManagerWorker,getOsmoTrxManagerInstance() - Transport helpers:
endpointToOsmoWsUrl(),OsmoWSUrls - Runtime types and constants:
BtsStatsGroup,OsmoBands,IPAccessProto
Compatibility notes
- TypeScript: ships
*.d.tstypings.
Development (monorepo)
From the repository root:
npm install
npm run build
npm test --workspace=packages/frontend-coreFrom this package folder:
Build
npm run buildTest
npm testSource links
This package publishes dist/ to npm. Source is available in the GitHub repository:
- Entry point: https://github.com/wavelet-lab/osmoweb/blob/main/packages/frontend-core/src/index.ts
- Osmo services exports: https://github.com/wavelet-lab/osmoweb/blob/main/packages/frontend-core/src/services/index.ts
Package folder (GitHub): https://github.com/wavelet-lab/osmoweb/tree/main/packages/frontend-core
License
OsmoWeb is MIT licensed
