UNPKG

kotori-bot

Version:

Cross-platform chatbot framework base on Node.js and TypeScript

68 lines (67 loc) 2.76 kB
/** * @Package kotori-bot * @Version 1.7.0 * @Author Arimura Sena <me@hotaru.icu> * @Copyright 2024-2025 Hotaru. All rights reserved. * @License BAN-ZHINESE-USING * @Link https://github.com/kotorijs/kotori * @Date 17:26:14 */ "use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var daemon_exports = {}; __export(daemon_exports, { default: () => daemon_default }); module.exports = __toCommonJS(daemon_exports); var import_node_path = require("node:path"); var import_loader = require("@kotori-bot/loader"); var import_node_fs = require("node:fs"); var import_core = require("@kotori-bot/core"); function daemon(virtualEnv) { const startTime = (/* @__PURE__ */ new Date()).getTime(); const isDev = virtualEnv.ROMI_MODE === import_loader.DEV_MODE; import_loader.Logger.info("[Daemon] Starting..."); const isSource = (0, import_node_fs.existsSync)((0, import_node_path.resolve)(__dirname, "cli.ts")); const child = (0, import_core.executeCommand)( isDev || isSource ? `tsx "${(0, import_node_path.resolve)(__dirname, isSource ? "cli.ts" : "cli.js")}"` : `node "${(0, import_node_path.resolve)(__dirname, "cli.js")}"`, { cwd: process.cwd(), env: virtualEnv }, (err, stdout, stderr) => { if (err && isDev) import_loader.Logger.error("[Daemon] Child process error: ", err); if (stdout) process.stdout.write(stdout); if (stderr) process.stderr.write(stderr); } ); child.on("exit", (code) => { if (code === 0) { import_loader.Logger.info("[Daemon] Exited with code 0."); process.exit(0); } if (code !== 233) { const endTime = (/* @__PURE__ */ new Date()).getTime(); const timeTaken = (endTime - startTime) / 1e3; import_loader.Logger.error(`[Daemon] Exited with code ${code} in ${timeTaken} seconds.`); if (timeTaken <= 5) return; } import_loader.Logger.warn("[Daemon] Restarting..."); daemon(virtualEnv); }); process.stdin.on("data", (data) => child.stdin?.write(data)); } var daemon_default = daemon;