import withSetCookie from "ngnjs/dist/middlewares/withSetCookie";
import decryptCookies from "ngnjs/dist/middlewares/decryptCookies";
import Keyable from "ngnjs/dist/types/Keyable";
import {Middleware} from "ngnjs/dist/types/Middleware";
import withRequest from "ngnjs/dist/middlewares/withRequest";
import withValidator from "ngnjs/dist/middlewares/withValidator";
import withIp from "ngnjs/dist/middlewares/withIp";
import withThrottle from "ngnjs/dist/middlewares/withThrottle";
import withSession from "ngnjs/dist/middlewares/withSession";

const middlewares: Keyable<Array<Middleware>> = {
    "/": [
        withRequest,
        withIp,
        withThrottle,
        decryptCookies,
        withSetCookie,
        withValidator,
        withSession
    ]
};

export default middlewares;