---
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:160](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/b099fb909260c5c00c90ca9da612a7f50c1328d4/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L160)

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:239](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/b099fb909260c5c00c90ca9da612a7f50c1328d4/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L239)

Returns the number of registered providers.

##### Returns

`number`

## Methods

### clear()

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

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

Clears all registered providers.

Primarily useful for testing.

#### Returns

`void`

***

### getMiddleware()

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

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

Collects middleware from all providers for a specific client type.

#### Parameters

##### clientType

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

The type of client requesting middleware

##### options

###### exclude?

`string`[]

#### Returns

`Middleware`[]

Array of middleware in registration order

***

### getProviderNames()

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

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

Returns the names of all registered providers.

#### Returns

`string`[]

***

### register()

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

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

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`

***

### runWithOverrides()

> **runWithOverrides**\<`T`\>(`providers`, `callback`): `T`

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

Replace named providers for one execution and its asynchronous descendants.
Other providers remain installed. Nested scopes inherit overrides, while
concurrent executions and callers outside the scope keep their own policy.
Clients that capture middleware should be created inside the callback.

#### Type Parameters

##### T

`T`

#### Parameters

##### providers

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

##### callback

() => `T`

#### Returns

`T`

***

### unregister()

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

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

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
