Files
EllyDiscordBot/crates/shared/mod.ts
2026-05-28 23:46:40 +00:00

107 lines
2.5 KiB
TypeScript

/**
* @elly/shared — Public API barrel.
*
* Both `@elly/core` and `@elly/bot` import from here. This barrel is the only
* sanctioned cross-crate surface. Anything not re-exported is considered
* implementation detail and may change without notice.
*/
// ----- Config --------------------------------------------------------
export {
ApiSchema,
BotSchema,
ChannelsSchema,
ColorsSchema,
ConfigSchema,
DatabaseSchema,
FeaturesSchema,
GuildSchema,
IpcSchema,
KvSchema,
LimitsSchema,
LoggingSchema,
RolesSchema,
} from "./src/config/schema.ts";
export type { Config } from "./src/config/schema.ts";
export type {
ApiConfig,
BotConfig,
ChannelsConfig,
ColorsConfig,
ConfigInput,
DatabaseConfig,
FeaturesConfig,
GuildConfig,
IpcConfig,
KvConfig,
LimitsConfig,
LoggingConfig,
RolesConfig,
} from "./src/config/types.ts";
export { loadConfig, validateConfig } from "./src/config/loader.ts";
export {
BotEnvSchema,
CoreEnvSchema,
loadEnv,
SharedEnvSchema,
} from "./src/config/env.ts";
export type { BotEnv, CoreEnv, SharedEnv } from "./src/config/env.ts";
export {
ConfigError,
ConfigValidationError,
EnvValidationError,
} from "./src/config/errors.ts";
export type { ConfigValidationIssue } from "./src/config/errors.ts";
// ----- Logger --------------------------------------------------------
export { createConsoleLogger, createLogger } from "./src/logger/factory.ts";
export { LOG_LEVEL_ORDER } from "./src/logger/types.ts";
export type {
LogFileOptions,
Logger,
LoggerOptions,
LogLevel,
LogRecord,
} from "./src/logger/types.ts";
// ----- IPC contract --------------------------------------------------
export {
IPC_AUTH_HEADER,
IPC_REQUEST_ID_HEADER,
IpcRoutes,
} from "./src/ipc/routes.ts";
export type { IpcRoute } from "./src/ipc/routes.ts";
export {
IPC_ERROR_STATUS,
IpcError,
IpcErrorBodySchema,
IpcErrorCode,
} from "./src/ipc/errors.ts";
export type { IpcErrorBody } from "./src/ipc/errors.ts";
export {
AnyDomainEventSchema,
HeartbeatEventSchema,
ServerReadyEventSchema,
} from "./src/ipc/events.ts";
export type {
AnyDomainEvent,
BaseDomainEvent,
DomainEventType,
HeartbeatEvent,
ServerReadyEvent,
} from "./src/ipc/events.ts";
// ----- Util ----------------------------------------------------------
export {
err,
isErr,
isOk,
map,
mapErr,
ok,
tryCatch,
tryCatchAsync,
unwrap,
} from "./src/util/result.ts";
export type { Err, Ok, Result } from "./src/util/result.ts";