feat(dojobay): add DojoBay app (manifest, image, catalog, ports)
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
// Launcher for the backend, which lives in index.ts.
|
||||
//
|
||||
// This file stays plain JavaScript on purpose, for three reasons:
|
||||
//
|
||||
// 1. It can be parsed by ANY Node version, so an operator on an older runtime
|
||||
// gets the message below instead of a syntax error from a .ts file they
|
||||
// cannot execute. The check must run before the import, hence the dynamic
|
||||
// import rather than a static one.
|
||||
// 2. systemd, `npm start` and the README all name index.mjs, so nothing about
|
||||
// deployment changes.
|
||||
// 3. self-update.mjs sanity-checks that an update archive contains
|
||||
// server/index.mjs before accepting it. Renaming this file outright would
|
||||
// make every legitimate update look malformed.
|
||||
const major = Number(process.versions.node.split(".")[0]);
|
||||
if (Number.isNaN(major) || major < 24) {
|
||||
console.error(
|
||||
`The Dojo Bay backend needs Node 24 or newer (found ${process.versions.node}).\n` +
|
||||
"It runs TypeScript directly, which relies on type stripping added in Node 24,\n" +
|
||||
"and its BIP47 libraries require it too. Upgrade Node, then restart the service.");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const mod = await import("./index.ts");
|
||||
export const server = mod.server;
|
||||
export const routes = mod.routes;
|
||||
Reference in New Issue
Block a user