44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
/**
|
|
* Initd marker for swarm chat (`bare-os-chat-v1`): transport stays in the booter/swarm-disk;
|
|
* this unit records that chat is intended to be active when env allows.
|
|
*/
|
|
import { registerBareService } from './bare-initd.js'
|
|
import { bareOsChatMuxEnabled } from './bare-os-chat-service.js'
|
|
|
|
/** @type {boolean} */
|
|
let bareOsChatInitdRegistered = false
|
|
|
|
/** @param {Record<string, string | undefined>} env */
|
|
export function bareOsChatInitdEnabled(env) {
|
|
if (!bareOsChatMuxEnabled(env)) return false
|
|
const v = env.BARE_OS_CHAT_INITD
|
|
if (v === '0' || v === 'false') return false
|
|
return true
|
|
}
|
|
|
|
/**
|
|
* @param {Record<string, unknown>} ctx
|
|
*/
|
|
async function startBareOsChatInitd(ctx) {
|
|
if (!bareOsChatMuxEnabled(globalThis.process?.env)) return
|
|
ctx.console?.log?.(
|
|
'[bare-os-chat] Protomux bare-os-chat-v1 enabled (join general on peer connect)'
|
|
)
|
|
}
|
|
|
|
async function stopBareOsChatInitd(_ctx) {}
|
|
|
|
/** @param {Record<string, string | undefined>} env */
|
|
export function maybeRegisterBareOsChatInitd(env) {
|
|
if (bareOsChatInitdRegistered) return
|
|
if (!bareOsChatInitdEnabled(env || {})) return
|
|
bareOsChatInitdRegistered = true
|
|
registerBareService({
|
|
name: 'bare-os-chat',
|
|
description:
|
|
'Swarm chat (bare-os-chat-v1); stock default on — set BARE_OS_PROTOMUX_CHAT_CHANNEL=0 or BARE_OS_CHAT_INITD=0 to disable',
|
|
start: startBareOsChatInitd,
|
|
stop: stopBareOsChatInitd
|
|
})
|
|
}
|