companion-module-hello
v0.3.3
Published
A minimal out-of-tree Companion module: one permission, one route, one table, one page.
Maintainers
Readme
companion-module-hello
A minimal out-of-tree module for Companion.
It declares one permission (hello:greet), runs one migration (the
hello_greetings table), serves one authenticated route
(POST /api/hello/greetings) and renders one page at #/hello. It exists to be
read, copied, and installed into a running daemon as a working reference for the
external module guide.
Layout
src/module.ts the manifest: pure data, imported eagerly at boot
src/contract/ the registry augmentation and shared DTOs
src/api/ acl, migrations, store, routes: the server slice
src/client/ nav, routes, page: the browser slice
build.mjs esbuild, with the ABI marked externalThe module depends on exactly two packages, both as devDependencies plus
peerDependencies and never as runtime dependencies: @moxxy/companion-sdk (the
authoring surface) and @moxxy/companion-contracts (the one specifier registry
augmentation must target). The build marks both external, so at load time every
import resolves to the host's single copy.
Build and check
npm install
npm run build # emits dist/module.js, dist/api.js, dist/client.js
companion module verify . # static ABI check, no daemon neededInstall into a Companion instance
companion module add companion-module-hello # or: companion module add .
# restart Companion so it rescans the modules directory
companion module install helloThe page appears in the tool catalog for any signed-in role, and the route
answers under the hello:greet permission.
Start your own module from this one
companion module scaffold my-modulecopies this package with the name, module id and title substituted.
