@salesforce/b2c-tooling-sdk / config / ConfigResolver
Class: ConfigResolver
Defined in: packages/b2c-tooling-sdk/src/config/resolver.ts:122
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):
- Explicit overrides (passed to resolve methods)
- Sources in order (dw.json, ~/.mobify by default)
Usage
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:
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:130
Creates a new ConfigResolver.
Parameters
sources?
Custom configuration sources. If not provided, uses default sources (dw.json, ~/.mobify).
Returns
ConfigResolver
Methods
createAuthCredentials()
createAuthCredentials(
overrides,options):AuthCredentials
Defined in: packages/b2c-tooling-sdk/src/config/resolver.ts:253
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> = {}
Explicit values that take highest priority
options
ResolveConfigOptions = {}
Resolution options
Returns
Auth credentials suitable for resolveAuthStrategy()
Example
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):B2CInstance
Defined in: packages/b2c-tooling-sdk/src/config/resolver.ts:220
Creates a B2CInstance from resolved configuration.
This is a convenience method that combines configuration resolution with B2CInstance creation.
Parameters
overrides
Partial<NormalizedConfig> = {}
Explicit values that take highest priority
options
ResolveConfigOptions = {}
Resolution options
Returns
Configured B2CInstance
Throws
Error if hostname is not available in resolved config
Example
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):ConfigResolutionResult
Defined in: packages/b2c-tooling-sdk/src/config/resolver.ts:153
Resolves configuration from all sources.
Parameters
overrides
Partial<NormalizedConfig> = {}
Explicit values that take highest priority
options
ResolveConfigOptions = {}
Resolution options
Returns
Resolution result with config, warnings, and source info
Example
const { config, warnings, sources } = resolver.resolve(
{ hostname: process.env.SFCC_SERVER },
{ instance: 'staging' }
);
if (warnings.length > 0) {
console.warn('Config warnings:', warnings);
}