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

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

Returns the number of registered providers.

##### Returns

`number`

## Methods

### clear()

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

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

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

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

Returns the names of all registered providers.

#### Returns

`string`[]

***

### register()

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

Defined in: [packages/b2c-tooling-sdk/src/clients/middleware-registry.ts:165](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/2feab01f654eec77c6d702777ec2818472f131f1/packages/b2c-tooling-sdk/src/clients/middleware-registry.ts#L165)

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

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
