Skip to content

Latest commit

 

History

History
804 lines (493 loc) · 16 KB

README.md

File metadata and controls

804 lines (493 loc) · 16 KB

middleware-io

middleware-io

Table of contents

References

Classes

Type Aliases

Functions

References

default

Renames and re-exports compose

Type Aliases

BranchMiddlewareCondition

Ƭ BranchMiddlewareCondition<T>: BranchMiddlewareConditionFunction<T> | boolean

Possible types for branch condition

Type parameters

Name
T

Defined in

types.ts:34


BranchMiddlewareConditionFunction

Ƭ BranchMiddlewareConditionFunction<T>: (context: T) => Promise<boolean> | boolean

Asynchronous function for branch condition

Type parameters

Name
T

Type declaration

▸ (context): Promise<boolean> | boolean

Parameters
Name Type
context T
Returns

Promise<boolean> | boolean

Defined in

types.ts:29


CaughtMiddlewareHandler

Ƭ CaughtMiddlewareHandler<T>: (context: T, error: Error) => MiddlewareReturn

Handler for catching errors in middleware chains

Type parameters

Name
T

Type declaration

▸ (context, error): MiddlewareReturn

Parameters
Name Type
context T
error Error
Returns

MiddlewareReturn

Defined in

types.ts:44


LazyMiddlewareFactory

Ƭ LazyMiddlewareFactory<T>: (context: T) => Promise<Middleware<T>> | Middleware<T>

Asynchronous factory to create middleware

Type parameters

Name
T

Type declaration

▸ (context): Promise<Middleware<T>> | Middleware<T>

Parameters
Name Type
context T
Returns

Promise<Middleware<T>> | Middleware<T>

Defined in

types.ts:39


Middleware

Ƭ Middleware<T>: (context: T, next: NextMiddleware) => MiddlewareReturn

Basic middleware

Type parameters

Name
T

Type declaration

▸ (context, next): MiddlewareReturn

Parameters
Name Type
context T
next NextMiddleware
Returns

MiddlewareReturn

Defined in

types.ts:24


MiddlewareReturn

Ƭ MiddlewareReturn: unknown

Returns the type of response middleware

Defined in

types.ts:14


NextMiddleware

Ƭ NextMiddleware: () => Promise<NextMiddlewareReturn>

Call the next middleware from the chain

Type declaration

▸ (): Promise<NextMiddlewareReturn>

Returns

Promise<NextMiddlewareReturn>

Defined in

types.ts:9


NextMiddlewareReturn

Ƭ NextMiddlewareReturn: unknown

Returns the type of response middleware

Defined in

types.ts:4


UnknownObject

Ƭ UnknownObject: Record<string, unknown>

Instead of object

Defined in

types.ts:19

Functions

compose

compose<T>(middlewares): Middleware<T>

Compose an array of middleware handlers into a single handler

Type parameters

Name
T

Parameters

Name Type Description
middlewares Middleware<T>[] The array of middleware

Returns

Middleware<T>

Composed middleware

Defined in

compose.ts:12


getAfterMiddleware

getAfterMiddleware<T>(middleware, afterMiddleware): Middleware<T>

Runs the second middleware after the main

Example:

getAfterMiddleware(
  sendSecureData,
  clearSecurityData
);

Type parameters

Name
T

Parameters

Name Type
middleware Middleware<T>
afterMiddleware Middleware<T>

Returns

Middleware<T>

Defined in

snippets.ts:192


getBeforeMiddleware

getBeforeMiddleware<T>(beforeMiddleware, middleware): Middleware<T>

Runs the second middleware before the main

Example:

getBeforeMiddleware(
  myMockMiddleware,
  ouputUserData
);

Type parameters

Name
T

Parameters

Name Type
beforeMiddleware Middleware<T>
middleware Middleware<T>

Returns

Middleware<T>

Defined in

snippets.ts:170


getBranchMiddleware

getBranchMiddleware<T>(condition, trueMiddleware, falseMiddleware): Middleware<T>

By condition splits the middleware

Example:

getBranchMiddleware(
  async context => context.is('Content-Type', 'json'),
  myBodyParser.json(),
  myBodyParser.urlencoded()
);

Static condition

getBranchMiddleware(
  process.env.NODE_ENV === 'production',
  logger.loggedContextToFile(),
  logger.loggedContextToConsole()
);

Type parameters

Name
T

Parameters

Name Type
condition BranchMiddlewareCondition<T>
trueMiddleware Middleware<T>
falseMiddleware Middleware<T>

Returns

Middleware<T>

Defined in

snippets.ts:109


getCaughtMiddleware

getCaughtMiddleware<T>(errorHandler): Middleware<T>

Catches errors in the middleware chain

Example:

getCaughtMiddleware((context, error) => {
  if (error instanceof NetworkError) {
    return context.send('Sorry, network issues 😔');
  }

  throw error;
})

Without a snippet, it would look like this:

async (context, next) => {
  try {
    await next();
  } catch (error) {
    if (error instanceof NetworkError) {
      return context.send('Sorry, network issues 😔');
    }

    throw error;
  }
};

Type parameters

Name
T

Parameters

Name Type
errorHandler CaughtMiddlewareHandler<T>

Returns

Middleware<T>

Defined in

snippets.ts:262


getConcurrencyMiddleware

getConcurrencyMiddleware<T>(middlewares): Middleware<T>

Concurrently launches middleware, the chain will continue if next() is called in all middlewares

Warning: Error interrupts all others

Example:

getConcurrencyMiddleware(
  initializeUser,
  initializeSession,
  initializeDatabase
);

Type parameters

Name
T

Parameters

Name Type
middlewares Middleware<T>[]

Returns

Middleware<T>

Defined in

snippets.ts:288


getEnforceMiddleware

getEnforceMiddleware<T>(beforeMiddleware, middleware, afterMiddleware): Middleware<T>

Runs middleware before and after the main

Example:

getEnforceMiddleware(
  prepareData,
  sendData,
  clearData
);

#### Type parameters

| Name |
| :------ |
| `T` |

#### Parameters

| Name | Type |
| :------ | :------ |
| `beforeMiddleware` | [`Middleware`](README.md#middleware)\<`T`\> |
| `middleware` | [`Middleware`](README.md#middleware)\<`T`\> |
| `afterMiddleware` | [`Middleware`](README.md#middleware)\<`T`\> |

#### Returns

[`Middleware`](README.md#middleware)\<`T`\>

#### Defined in

[snippets.ts:214](https://github.com/negezor/middleware-io/blob/cfc102d315382709d9f9d43771812ee5ab488e62/src/snippets.ts#L214)

___

### getFilterMiddleware

 **getFilterMiddleware**\<`T`\>(`condition`, `filterMiddleware`): [`Middleware`](README.md#middleware)\<`T`\>

Conditionally runs middleware or stops the chain

Example:

```ts
getFilterMiddleware(
  context => context.authorized,
  middlewareForAuthorized
);

Type parameters

Name
T

Parameters

Name Type
condition BranchMiddlewareCondition<T>
filterMiddleware Middleware<T>

Returns

Middleware<T>

Defined in

snippets.ts:152


getForkMiddleware

getForkMiddleware<T>(middleware): Middleware<T>

Runs the middleware at the next event loop and force call next()

Example:

getForkMiddleware((context) => {
  statisticsMiddlewares(context).catch(console.error);
});

Type parameters

Name
T

Parameters

Name Type
middleware Middleware<T>

Returns

Middleware<T>

Defined in

snippets.ts:79


getLazyMiddleware

getLazyMiddleware<T>(factory): Middleware<T>

Lazily asynchronously gets middleware

Example:

getLazyMiddleware(async (context) => {
  const route = await getSomeRoute(context.path) // Promise<Function>;

  return route;
});

Type parameters

Name
T

Parameters

Name Type
factory LazyMiddlewareFactory<T>

Returns

Middleware<T>

Defined in

snippets.ts:36


getOptionalMiddleware

getOptionalMiddleware<T>(condition, optionalMiddleware): Middleware<T>

Conditionally runs optional middleware or skips middleware

Example:

getOptionalMiddleware(
  context => context.user.isAdmin,
  addFieldsForAdmin
);

Type parameters

Name
T

Parameters

Name Type
condition BranchMiddlewareCondition<T>
optionalMiddleware Middleware<T>

Returns

Middleware<T>

Defined in

snippets.ts:135


getTapMiddleware

getTapMiddleware<T>(middleware): Middleware<T>

Runs the middleware and force call next()

Example:

getTapMiddleware((context) => {
  console.log('Context', context);
});

Type parameters

Name
T

Parameters

Name Type
middleware Middleware<T>

Returns

Middleware<T>

Defined in

snippets.ts:60


noopNext

noopNext(): Promise<unknown>

Noop for call next() in middleware

Returns

Promise<unknown>

Defined in

helpers.ts:30


skipMiddleware

skipMiddleware<T>(context, next): Promise<unknown>

Call next() in middleware

Type parameters

Name
T

Parameters

Name Type
context T
next NextMiddleware

Returns

Promise<unknown>

Defined in

snippets.ts:16


stopMiddleware

stopMiddleware<T>(context, next): Promise<void>

Does not call next() in middleware

Type parameters

Name
T

Parameters

Name Type
context T
next NextMiddleware

Returns

Promise<void>

Defined in

snippets.ts:21