mirror of
https://iceshrimp.dev/crimekillz/iceshrimp-161sh.git
synced 2024-11-24 21:19:07 +01:00
52 lines
1.3 KiB
TypeScript
52 lines
1.3 KiB
TypeScript
|
import * as SonicChannel from "sonic-channel";
|
||
|
import { dbLogger } from "./logger.js";
|
||
|
|
||
|
import config from "@/config/index.js";
|
||
|
|
||
|
const logger = dbLogger.createSubLogger("sonic", "gray", false);
|
||
|
|
||
|
logger.info("Connecting to Sonic");
|
||
|
|
||
|
const handlers = (type: string): SonicChannel.Handlers => (
|
||
|
{
|
||
|
connected: () => {
|
||
|
logger.succ(`Connected to Sonic ${type}`);
|
||
|
},
|
||
|
disconnected: (error) => {
|
||
|
logger.warn(`Disconnected from Sonic ${type}, error: ${error}`);
|
||
|
},
|
||
|
error: (error) => {
|
||
|
logger.warn(`Sonic ${type} error: ${error}`);
|
||
|
},
|
||
|
retrying: () => {
|
||
|
logger.info(`Sonic ${type} retrying`);
|
||
|
},
|
||
|
timeout: () => {
|
||
|
logger.warn(`Sonic ${type} timeout`);
|
||
|
},
|
||
|
}
|
||
|
)
|
||
|
|
||
|
const hasConfig =
|
||
|
config.sonic
|
||
|
&& ( config.sonic.host
|
||
|
|| config.sonic.port
|
||
|
|| config.sonic.auth
|
||
|
)
|
||
|
|
||
|
const host = hasConfig ? config.sonic.host ?? "localhost" : "";
|
||
|
const port = hasConfig ? config.sonic.port ?? 1491 : 0;
|
||
|
const auth = hasConfig ? config.sonic.auth ?? "SecretPassword" : "";
|
||
|
const collection = hasConfig ? config.sonic.collection ?? "main" : "";
|
||
|
const bucket = hasConfig ? config.sonic.bucket ?? "default" : "";
|
||
|
|
||
|
export default hasConfig
|
||
|
? {
|
||
|
search: new SonicChannel.Search({host, port, auth}).connect(handlers("search")),
|
||
|
ingest: new SonicChannel.Ingest({host, port, auth}).connect(handlers("ingest")),
|
||
|
|
||
|
collection,
|
||
|
bucket,
|
||
|
}
|
||
|
: null;
|