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

[@salesforce/b2c-tooling-sdk](../../../modules.md) / [operations/code](../index.md) / watchCartridges

# Function: watchCartridges()

> **watchCartridges**(`instance`, `directory`, `options`): `Promise`\<[`WatchResult`](../interfaces/WatchResult.md)\>

Defined in: [packages/b2c-tooling-sdk/src/operations/code/watch.ts:91](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling/blob/e7c16f1ae423da0aa47b3e10be88f9770b53619b/packages/b2c-tooling-sdk/src/operations/code/watch.ts#L91)

Watches cartridge directories and syncs changes to an instance.

This function:
1. Finds cartridges in the specified directory
2. Sets up file watchers on those directories
3. Batches file changes and uploads them via WebDAV
4. Handles file deletions

The watcher uses debouncing to batch rapid changes into single uploads.

## Parameters

### instance

[`B2CInstance`](../../../instance/classes/B2CInstance.md)

B2C instance to sync to

### directory

`string`

Directory containing cartridges

### options

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

Watch options (filters, callbacks, debounce)

## Returns

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

Watch result with control methods

## Throws

Error if no cartridges found or watch setup fails

## Example

```typescript
const result = await watchCartridges(instance, './cartridges', {
  onUpload: (files) => console.log('Uploaded:', files),
  onError: (error) => console.error('Error:', error),
});

// Later, to stop watching:
await result.stop();
```
