Skip to content

@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

ts
// Via B2CInstance (recommended)
const instance = B2CInstance.fromEnvironment();
await instance.webdav.mkcol('Cartridges/v1');
await instance.webdav.put('Cartridges/v1/app.zip', zipBuffer);
ts
// 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

AuthStrategy

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

ts
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

ts
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

ts
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

ts
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

ts
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

All rights reserved.