import EnvVar from "./src/core/env_var.ts";import DocBlocksToJson from "./src/compilers/doc_blocks_to_json.ts";import LogLevels from "./src/dictionaries/log_levels.ts";import MimeDb from "https://raw.githubusercontent.com/jshttp/mime-db/master/db.json";import HttpException from "./src/exceptions/http_exception.ts";import Request from "./src/http/request.ts";import Resource from "./src/http/resource.ts";import Response from "./src/http/response.ts";import Server from "./src/http/server.ts";import Logger from "./src/loggers/logger.ts";import ConsoleLogger from "./src/loggers/console_logger.ts";import CoreLogger from "./src/loggers/core_logger.ts";import FileLogger from "./src/loggers/file_logger.ts";import HttpService from "./src/services/http_service.ts";import * as Util from "./src/util.ts";
function Drash(): any { let Drash = { Compilers: { DocBlocksToJson: DocBlocksToJson }, Dictionaries: { LogLevels: LogLevels, MimeDb: MimeDb }, Exceptions: { HttpException: HttpException }, Http: { Request: Request, Response: Response, Resource: Resource, Server: Server }, Loggers: { Logger: Logger, ConsoleLogger: ConsoleLogger, FileLogger: FileLogger }, Members: {}, Services: { HttpService: HttpService }, Util: Util,
core_logger: new CoreLogger({ enabled: Deno.env().DRASH_CORE_LOGGER_ENABLED === "true", level: Deno.env().DRASH_CORE_LOGGER_LEVEL, tag_string: "{level} |" }),
addMember(name: string, app: any) { this.core_logger.debug(`Add member "${name}" to Drash.Members namespace.`); this.Members[name] = app; },
getEnvVar(variableName: string): EnvVar { let exists = Deno.env().hasOwnProperty(variableName); let value;
value = exists ? Deno.env()[variableName] : undefined;
return new EnvVar(variableName, value); },
setEnvVar(variableName: string, value: string): void { if (!Deno.env()[variableName]) { Deno.env()[variableName] = value; } } };
if (Deno.env().DRASH_CORE_LOGGER_ENABLED === "true") { Drash.core_logger.debug("Drash.core_logger is enabled."); Drash.core_logger.debug(`Drash.core_logger.level is set to: ${Deno.env().DRASH_CORE_LOGGER_LEVEL}.`); }
return Drash;}export default Drash();