@salesforce/b2c-tooling-sdk / clients / WebDavClient
Class: WebDavClient
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:52
WebDAV client for B2C Commerce instance file operations.
Handles WebDAV requests with proper authentication and provides typed methods for common operations.
Note: This client is typically accessed via B2CInstance.webdav rather than instantiated directly. The B2CInstance class handles authentication setup.
Examples
// Via B2CInstance (recommended)
const instance = B2CInstance.fromEnvironment();
await instance.webdav.mkcol('Cartridges/v1');
await instance.webdav.put('Cartridges/v1/app.zip', zipBuffer);// Direct instantiation (advanced)
const client = new WebDavClient('sandbox.demandware.net', authStrategy);
await client.mkcol('Cartridges/v1');
await client.put('Cartridges/v1/app_storefront/cartridge.zip', zipBuffer);Constructors
Constructor
new WebDavClient(
hostname,auth):WebDavClient
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:61
Creates a new WebDAV client.
Parameters
hostname
string
WebDAV hostname (may differ from API hostname)
auth
Authentication strategy to use for requests
Returns
WebDavClient
Methods
buildUrl()
buildUrl(
path):string
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:74
Builds the full URL for a WebDAV path.
Parameters
path
string
Path relative to /webdav/Sites/
Returns
string
Full URL
delete()
delete(
path):Promise<void>
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:229
Deletes a file or directory.
Parameters
path
string
Path to delete
Returns
Promise<void>
Throws
Error if the path doesn't exist (404) or deletion fails
Example
await client.delete('Cartridges/v1/old-cartridge');exists()
exists(
path):Promise<boolean>
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:283
Checks if a path exists.
Parameters
path
string
Path to check
Returns
Promise<boolean>
true if exists, false otherwise
get()
get(
path):Promise<ArrayBuffer>
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:210
Downloads a file.
Parameters
path
string
Path to download
Returns
Promise<ArrayBuffer>
File content as ArrayBuffer
Example
const content = await client.get('Cartridges/v1/app.zip');mkcol()
mkcol(
path):Promise<void>
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:169
Creates a directory (collection).
Parameters
path
string
Path to create
Returns
Promise<void>
Throws
Error if creation fails (except 405 which means already exists)
Example
await client.mkcol('Cartridges/v1');propfind()
propfind(
path,depth):Promise<PropfindEntry[]>
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:250
Lists directory contents.
Parameters
path
string
Directory path
depth
PROPFIND depth (0, 1, or 'infinity')
"0" | "1" | "infinity"
Returns
Promise<PropfindEntry[]>
Array of entries in the directory
Example
const entries = await client.propfind('Cartridges');
for (const entry of entries) {
console.log(entry.displayName, entry.isCollection);
}put()
put(
path,content,contentType?):Promise<void>
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:188
Uploads a file.
Parameters
path
string
Destination path
content
File content as Buffer, Blob, or string
string | Buffer<ArrayBufferLike> | Blob
contentType?
string
Optional content type header
Returns
Promise<void>
Example
await client.put('Cartridges/v1/app.zip', zipBuffer, 'application/zip');request()
request(
path,init?):Promise<Response>
Defined in: packages/b2c-tooling-sdk/src/clients/webdav.ts:86
Makes a raw WebDAV request.
Parameters
path
string
Path relative to /webdav/Sites/
init?
RequestInit
Fetch init options
Returns
Promise<Response>
Response from the server