@brookesia/service
v0.1.3
Published
JavaScript modules for ESP-Brookesia device services (NVS, Wi-Fi, …)
Downloads
438
Readme
@brookesia/service
JavaScript clients for ESP-Brookesia device services.
Runtime (device / PC simulator)
import nvs from '@brookesia/service/nvs';
if (nvs.available()) {
nvs.set('config', 'theme', 'dark');
nvs.close();
}Uses globalThis.brookesia injected by QuickJS runtime or a PC simulator.
- npm
esp-brookesia-toolkitships the system simulator (brookesia simulate --target system→--bpk-path=). - NVS / Wi-Fi PC mocks are in esp-brookesia
brookesia_runtime_simulator; configuresimulator.runtime.binaryand use--target runtimefor lightweight service tests.
Exports
| Subpath | Purpose |
|---------|---------|
| @brookesia/service | Shared RPC helpers |
| @brookesia/service/nvs | NVS app API |
| @brookesia/service/wifi | Wi-Fi app API |
| @brookesia/service/hosts/nvs | In-memory BrookesiaHost for NVS (Node/vitest only) |
| @brookesia/service/hosts/wifi | In-memory host for Wi-Fi (Node/vitest only) |
hosts = memory implementation of service RPC, not the PC brookesia_simulator.
Node tests (apps)
App logic lives in your modules (e.g. runNvsDemo). Tests only inject a memory host:
import { runNvsDemo } from './nvs-demo.js';
import { createNvsHost } from '@brookesia/service/hosts/nvs';
globalThis.brookesia = { print: () => {} };
expect(runNvsDemo({ host: createNvsHost() })).toBe(true);See esp-brookesia-apps/examples/service-tests.
Development
npm run build -w @brookesia/service
npm test -w @brookesia/service