/** * This file is part of the @egodigital/egoose distribution. * Copyright (c) e.GO Digital GmbH, Aachen, Germany (https://www.e-go-digital.com/) * * @egodigital/egoose is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, version 3. * * @egodigital/egoose is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . */ /// import { Response } from 'express'; /** * An entry for an API error. */ export interface ApiError { /** * German (de) */ de?: string; /** * English (en) */ en: string; } /** * An entry for an API error with a key. */ export interface ApiErrorWithKey extends ApiError { key: string; } /** * An api result. */ export interface ApiResult { /** * The (optional) data. */ data?: any; /** * A list of one or more error keys. */ errors?: string | string[]; /** * A value, which indicates if the operation was successfull or not. */ success: boolean; } /** * Options for 'createMonitoringApiResult()' function. */ export interface CreateMonitoringApiResultOptions { /** * The custom working directory. */ cwd?: string; /** * An optional function, which checks a database connection. */ databaseConnectionChecker?: () => boolean | PromiseLike; /** * Use 'MemAvailable' from 'meminfo' for detecting free ram. */ useMemAvailable?: boolean; /** * Also return version information about the app. */ withAppVersion?: boolean; } /** * A possible value for 'importApiErrors()' and 'importApiErrorsSync()' functions. * * If STRING: The path to the JSON file to import. * If BUFFER: The binary content as UTF-8 JSON data. * If OBJECT or ARRAY: One or more items to import. */ export declare type ImportApiErrorsArgument = string | Buffer | ApiErrorWithKey | ApiErrorWithKey[]; /** * A result of a 'createMonitoringApiResult()' function call. */ export interface MonitoringApiResult { /** * The CPU usage in percentage. */ cpu_load: number; /** * Indicates if a database connection is established or available. */ database_connected?: boolean; /** * The total disk space, in bytes. */ disk_space: number; /** * The total disk space in use, in bytes. */ disk_space_used: number; /** * The total ram, in bytes. */ ram: number; /** * The ram in use, in bytes. */ ram_used: number; /** * Information about the version of the app. */ version?: MonitoringApiAppVersion; } /** * Stores version information about the app for a monitoring API result. */ export interface MonitoringApiAppVersion { /** * The last commit date. Contains (false), if failed. */ date?: string | false; /** * The last commit hash. Contains (false), if failed. */ hash?: string | false; } /** * Additional options for 'sendResponse()' function. */ export interface SendResponseOptions { /** * A custom status code. */ code?: number; /** * Returns error keys only or ApiError objects. */ errorKeysOnly?: boolean; } /** * Global list of API errors. */ export declare const API_ERRORS: { [name: string]: ApiError; }; /** * Creates an object for an result of a monitoring API endpoint. * * @param {CreateMonitoringApiResultOptions} [opts] Custom options. * * @return {Promise} The promise with the result (object). */ export declare function createMonitoringApiResult(opts?: CreateMonitoringApiResultOptions): Promise; /** * Imports the data for 'API_ERRORS' constant. * * @param {ImportApiErrorsArgument} errors The items to import. */ export declare function importApiErrors(errors: ImportApiErrorsArgument): Promise; /** * Imports the data for 'API_ERRORS' constant (sync). * * @param {ImportApiErrorsArgument} errors The items to import. */ export declare function importApiErrorsSync(errors: ImportApiErrorsArgument): void; /** * Sends an API response. * * @param {Response} res The response context. * @param {ApiResult} result The result context. * @param {SendResponseOptions} [opts] Custom options. * * @return {Response} The current response context. */ export declare function sendResponse(res: Response, result: ApiResult, opts?: SendResponseOptions): Response;