@omicronenergy/oscd-background-plugin-config
v0.0.1
Published
OpenSCD background plugin that handles oscd-configure-plugin events for oscd-shell.
Readme
<oscd-background-plugin-config>
A background plugin to support oscd-configure-plugin events
What is this?
A background plugin that listens for oscd-configure-plugin events and applies the requested add / change / remove to the oscd-shell it is nested under. Plugin configuration is also persisted to localStorage['plugins'] (the same key and flat, kind-tagged shape used by compas-open-scd), and is merged back onto shell.plugins whenever this element connects, so plugin configuration survives a page reload.
The core logic is deliberately split out of the custom element:
src/plugin-configuration.ts— pure, DOM-free add/change/remove logic for aPluginSet.src/plugin-local-storage.ts— pure,Storage-injectable read/write/merge logic for thelocalStorage['plugins']bridge.src/oscd-background-plugin-config.ts— the thinHTMLElementadapter that wires the two modules above tooscd-shellvia DOM events.
Both plugin-configuration.js and plugin-local-storage.js are published as standalone entry points (see exports in package.json), so this package can be imported as a plain npm module by any host - not only as an OpenSCD background plugin - to get the same add/change/remove and localStorage-persistence semantics.
Linting and formatting
To scan the project for linting and formatting errors, run
npm run lintTo automatically fix linting and formatting errors, run
npm run formatTesting with Web Test Runner
Full unit test coverage of plugin-configuration.ts, plugin-local-storage.ts, and the oscd-background-plugin-config adapter lives in the co-located *.spec.ts files.
To execute a single test run:
npm run testTo run the tests in interactive watch mode run:
npm run test:watchTooling configs
This package uses @omicronenergy/oscd-tooling for linting, building, bundling, testing, and git hooks. The oscd CLI it provides resolves its own shared configs (ESLint, TypeScript, Rollup, Web Test Runner, Web Dev Server), so this repo only keeps the minimal config it actually overrides:
package.jsonscriptscalloscd <command>(see above) instead of invoking each tool directly.tsconfig.jsonandeslint.config.jsare thin wrappers that extend@omicronenergy/oscd-tooling's shared configs.npm run prepare(oscd install-hooks) installs Git hooks into.githooks/and pointscore.hooksPathat them.
If you need to diverge from the shared defaults for a specific tool, override just that piece in the relevant config file - see the @omicronenergy/oscd-tooling README for what's overridable.
Local Demo with web-dev-server
npm run startTo run a local development server that serves the basic demo located in demo/index.html
© 2026 OMICRON electronics GmbH
