import env_var from "./src/core/env_var.ts";
import doc_blocks_to_json from "./src/compilers/doc_blocks_to_json.ts";
import * as log_levels from "./src/dictionaries/log_levels.ts";import mime_db from "https://raw.githubusercontent.com/jshttp/mime-db/v1.39.0/db.json";
import http_exception from "./src/exceptions/http_exception.ts";import http_middleware_exception from "./src/exceptions/http_middleware_exception.ts";
import middleware from "./src/http/middleware.ts";import resource from "./src/http/resource.ts";import response from "./src/http/response.ts";import server from "./src/http/server.ts";
import base_logger from "./src/loggers/logger.ts";import console_logger from "./src/loggers/console_logger.ts";import file_logger from "./src/loggers/file_logger.ts";
import http_service from "./src/services/http_service.ts";
import util_object_parser from "./src/util/object_parser.ts";import * as util_members from "./src/util/members.ts";
namespace Drash { export namespace Core { export type EnvVar = env_var; export const EnvVar = env_var; }
export namespace Compilers { export type DocBlocksToJson = doc_blocks_to_json; export const DocBlocksToJson = doc_blocks_to_json; }
export namespace Dictionaries { export const LogLevels = log_levels.LogLevels; export const MimeDb = mime_db; }
export namespace Exceptions { export type HttpException = http_exception; export const HttpException = http_exception; export type HttpMiddlewareException = http_middleware_exception; export const HttpMiddlewareException = http_middleware_exception; }
export namespace Loggers { export type ConsoleLogger = console_logger; export const ConsoleLogger = console_logger; export type FileLogger = file_logger; export const FileLogger = file_logger; export type Logger = base_logger; export const Logger = base_logger; }
export namespace Http { export type Middleware = middleware; export let Middleware = middleware; export type Resource = resource; export const Resource = resource; export type Response = response; export let Response = response; export type Server = server; export const Server = server; }
export namespace Services { export type HttpService = http_service; export const HttpService = new http_service(); }
export namespace Util { export type ObjectParser = util_object_parser; export const ObjectParser = util_object_parser; export const Exports = util_members; }
export const Members: any = {};
export function addMember(name: string, app: any) { this.Members[name] = app; }
export function getEnvVar(variableName: string): Drash.Core.EnvVar { let exists = Deno.env().hasOwnProperty(variableName); let value;
value = exists ? Deno.env()[variableName] : undefined;
return new Drash.Core.EnvVar(variableName, value); }
export function setEnvVar(variableName: string, value: string) { if (!Deno.env()[variableName]) { Deno.env()[variableName] = value; } }}
export default Drash;