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

[@salesforce/b2c-tooling-sdk](../../modules.md) / [config](../index.md) / ConfigResolver

# Class: ConfigResolver

Defined in: [packages/b2c-tooling-sdk/src/config/resolver.ts:132](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/resolver.ts#L132)

Resolves configuration from multiple sources with consistent behavior.

ConfigResolver is the preferred high-level API for loading B2C configuration.
It provides:
- Consistent hostname mismatch protection across SDK and CLI
- Extensibility via the ConfigSource interface
- Convenience methods for creating B2CInstance and auth credentials

## Resolution Priority

Configuration is resolved with the following precedence (highest to lowest):
1. Explicit overrides (passed to resolve methods)
2. Sources in order (dw.json, ~/.mobify by default)

## Usage

```typescript
import { createConfigResolver } from '@salesforce/b2c-tooling-sdk/config';

const resolver = createConfigResolver();

// Simple resolution
const { config, warnings } = resolver.resolve({
  hostname: process.env.SFCC_SERVER,
  clientId: process.env.SFCC_CLIENT_ID,
});

// Create B2CInstance directly
const instance = resolver.createInstance({ hostname: '...' });

// Get auth credentials for use with resolveAuthStrategy
const credentials = resolver.createAuthCredentials({ clientId: '...' });
```

## Custom Sources

You can provide custom configuration sources:

```typescript
import { ConfigResolver } from '@salesforce/b2c-tooling-sdk/config';

class MySource implements ConfigSource {
  name = 'my-source';
  load(options) { return { hostname: 'custom.example.com' }; }
}

const resolver = new ConfigResolver([new MySource()]);
```

## Constructors

### Constructor

> **new ConfigResolver**(`sources?`): `ConfigResolver`

Defined in: [packages/b2c-tooling-sdk/src/config/resolver.ts:141](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/resolver.ts#L141)

Creates a new ConfigResolver.

#### Parameters

##### sources?

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

Custom configuration sources. If not provided, uses default sources (dw.json, ~/.mobify, package.json).
                 Sources are automatically sorted by priority (lower number = higher priority).

#### Returns

`ConfigResolver`

## Methods

### createAuthCredentials()

> **createAuthCredentials**(`overrides`, `options`): `Promise`\<[`AuthCredentials`](../../auth/interfaces/AuthCredentials.md)\>

Defined in: [packages/b2c-tooling-sdk/src/config/resolver.ts:381](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/resolver.ts#L381)

Creates auth credentials from resolved configuration.

The returned credentials can be used with `resolveAuthStrategy()`
to automatically select the best authentication method.

#### Parameters

##### overrides

`Partial`\<[`NormalizedConfig`](../interfaces/NormalizedConfig.md)\> = `{}`

Explicit values that take highest priority

##### options

[`ResolveConfigOptions`](../interfaces/ResolveConfigOptions.md) = `{}`

Resolution options

#### Returns

`Promise`\<[`AuthCredentials`](../../auth/interfaces/AuthCredentials.md)\>

Auth credentials suitable for resolveAuthStrategy()

#### Example

```typescript
import { resolveAuthStrategy } from '@salesforce/b2c-tooling-sdk';

const credentials = resolver.createAuthCredentials({
  clientId: process.env.SFCC_CLIENT_ID,
});

const strategy = resolveAuthStrategy(credentials);
```

***

### createInstance()

> **createInstance**(`overrides`, `options`): `Promise`\<[`B2CInstance`](../../instance/classes/B2CInstance.md)\>

Defined in: [packages/b2c-tooling-sdk/src/config/resolver.ts:345](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/resolver.ts#L345)

Creates a B2CInstance from resolved configuration.

This is a convenience method that combines configuration resolution
with B2CInstance creation.

#### Parameters

##### overrides

`Partial`\<[`NormalizedConfig`](../interfaces/NormalizedConfig.md)\> = `{}`

Explicit values that take highest priority

##### options

[`ResolveConfigOptions`](../interfaces/ResolveConfigOptions.md) = `{}`

Resolution options

#### Returns

`Promise`\<[`B2CInstance`](../../instance/classes/B2CInstance.md)\>

Configured B2CInstance

#### Throws

Error if hostname is not available in resolved config

#### Example

```typescript
const instance = resolver.createInstance({
  clientId: process.env.SFCC_CLIENT_ID,
  clientSecret: process.env.SFCC_CLIENT_SECRET,
});

await instance.webdav.put('path/file.txt', content);
```

***

### resolve()

> **resolve**(`overrides`, `options`): `Promise`\<[`ConfigResolutionResult`](../interfaces/ConfigResolutionResult.md)\>

Defined in: [packages/b2c-tooling-sdk/src/config/resolver.ts:166](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/config/resolver.ts#L166)

Resolves configuration from all sources.

#### Parameters

##### overrides

`Partial`\<[`NormalizedConfig`](../interfaces/NormalizedConfig.md)\> = `{}`

Explicit values that take highest priority

##### options

[`ResolveConfigOptions`](../interfaces/ResolveConfigOptions.md) = `{}`

Resolution options

#### Returns

`Promise`\<[`ConfigResolutionResult`](../interfaces/ConfigResolutionResult.md)\>

Resolution result with config, warnings, and source info

#### Example

```typescript
const { config, warnings, sources } = resolver.resolve(
  { hostname: process.env.SFCC_SERVER },
  { instance: 'staging' }
);

if (warnings.length > 0) {
  console.warn('Config warnings:', warnings);
}
```
