---
editLink: false
lastUpdated: false
---

[@salesforce/b2c-tooling-sdk](../../modules.md) / [clients](../index.md) / MiddlewareRegistry

# Class: MiddlewareRegistry

Defined in: [packages/b2c-tooling-sdk/src/clients/middleware-registry.ts:147](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L147)

Registry for HTTP middleware providers.

The registry collects middleware from multiple providers and returns
them in registration order when requested by client factories.

## Usage Modes

**SDK Mode**: Register providers directly via `register()`:
```typescript
globalMiddlewareRegistry.register(myProvider);
```

**CLI Mode**: Providers are collected via the `b2c:http-middleware` hook
and registered during command initialization.

## Constructors

### Constructor

> **new MiddlewareRegistry**(): `MiddlewareRegistry`

#### Returns

`MiddlewareRegistry`

## Accessors

### size

#### Get Signature

> **get** **size**(): `number`

Defined in: [packages/b2c-tooling-sdk/src/clients/middleware-registry.ts:207](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L207)

Returns the number of registered providers.

##### Returns

`number`

## Methods

### clear()

> **clear**(): `void`

Defined in: [packages/b2c-tooling-sdk/src/clients/middleware-registry.ts:200](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L200)

Clears all registered providers.

Primarily useful for testing.

#### Returns

`void`

***

### getMiddleware()

> **getMiddleware**(`clientType`): `Middleware`[]

Defined in: [packages/b2c-tooling-sdk/src/clients/middleware-registry.ts:182](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L182)

Collects middleware from all providers for a specific client type.

#### Parameters

##### clientType

[`HttpClientType`](../type-aliases/HttpClientType.md)

The type of client requesting middleware

#### Returns

`Middleware`[]

Array of middleware in registration order

***

### getProviderNames()

> **getProviderNames**(): `string`[]

Defined in: [packages/b2c-tooling-sdk/src/clients/middleware-registry.ts:214](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L214)

Returns the names of all registered providers.

#### Returns

`string`[]

***

### register()

> **register**(`provider`): `void`

Defined in: [packages/b2c-tooling-sdk/src/clients/middleware-registry.ts:157](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L157)

Registers a middleware provider.

Providers are called in registration order when middleware is requested.

#### Parameters

##### provider

[`HttpMiddlewareProvider`](../interfaces/HttpMiddlewareProvider.md)

The provider to register

#### Returns

`void`

***

### unregister()

> **unregister**(`name`): `boolean`

Defined in: [packages/b2c-tooling-sdk/src/clients/middleware-registry.ts:167](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L167)

Unregisters a middleware provider by name.

#### Parameters

##### name

`string`

The name of the provider to remove

#### Returns

`boolean`

true if a provider was removed, false if not found
