@esmx/core
Version:
A high-performance microfrontend framework supporting Vue, React, Preact, Solid, and Svelte with SSR and Module Federation capabilities.
58 lines (57 loc) • 1.89 kB
TypeScript
import type { IncomingMessage, ServerResponse } from 'node:http';
import type { Esmx } from '../core';
/**
* Middleware function type definition
*
* @description
* Middleware is a function used to handle HTTP requests. It receives the request object, response object, and the next middleware function as parameters.
* Middleware can perform the following operations:
* - Modify request and response objects
* - End the request-response cycle
* - Call the next middleware
*
* @example
* ```ts
* // Create a simple logging middleware
* const loggerMiddleware: Middleware = (req, res, next) => {
* console.log(`${req.method} ${req.url}`);
* next();
* };
* ```
*/
export type Middleware = (req: IncomingMessage, res: ServerResponse, next: Function) => void;
/**
* Determine if a file path is an immutable file that complies with esmx specifications
* @param path File path
*/
export declare function isImmutableFile(filename: string): boolean;
/**
* Create middleware for Esmx application
*
* @param esmx - Esmx instance
* @returns Returns a middleware that handles static resources
*
* @description
* This function creates a middleware to handle static resource requests for modules. It will:
* - Create corresponding static resource middleware based on module configuration
* - Handle cache control for resources
* - Support long-term caching for immutable files
*
* @example
* ```ts
* import { Esmx, createMiddleware } from '@esmx/core';
*
* const esmx = new Esmx();
* const middleware = createMiddleware(esmx);
*
* // Use in HTTP server
* server.use(middleware);
* ```
*/
export declare function createMiddleware(esmx: Esmx): Middleware;
/**
* Merge multiple middlewares into one middleware execution
* @param middlewares List of middlewares
* @returns
*/
export declare function mergeMiddlewares(middlewares: Middleware[]): Middleware;