Server's events [v2] - OpenMarshal/npm-WebDAV-Server GitHub Wiki
Events are triggered when a resource is accessed or modified. The server handles the events, but, it is possible to attach an event directly to a file system, but it is just an easier way to filter the event by the selected file system.
An event listener function must match this signature :
type EventCallback = (ctx : RequestContext, fs : FileSystem, path : Path, data ?: any) => void;
Here is the list of the events :
Event name | Description | details argument |
---|---|---|
'create' |
Triggered after resource is created. | { type: ResourceType, createIntermediates: boolean } |
'before-create' |
Triggered before a resource is created. | { type: ResourceType, createIntermediates: boolean } |
'delete' |
Triggered after a resource is deleted. | { depth: number } |
'before-delete' |
Triggered before a resource is deleted. | { depth: number } |
'copy' |
Triggered after a resource is copied. | { pathTo: Path, overwrite: boolean, overrided: boolean, depth: number } |
'before-copy' |
Triggered before a resource is copied. | { pathTo: Path, overwrite: boolean, depth: number } |
'move' |
Triggered after a resource is moved. | { pathFrom: Path, pathTo: Path, overwrite: boolean, overrided: boolean } |
'before-move' |
Triggered before a resource is moved. | { pathFrom: Path, pathTo: Path, overwrite: boolean, overrided: boolean } |
'openWriteStream' |
Triggered after a resource is opened for writing. | { targetSource: boolean, mode: OpenWriteStreamMode, estimatedSize: number, created: : boolean, stream: Writable } |
'before-openWriteStream' |
Triggered before a resource is opened for writing. | { targetSource: boolean, mode: OpenWriteStreamMode, estimatedSize: number, created: : boolean } |
'openReadStream' |
Triggered after a resource is opened for reading. | { targetSource: boolean, estimatedSize: number, stream: Readable } |
'before-openReadStream' |
Triggered before a resource is opened for reading. | { targetSource: boolean, estimatedSize: number } |
'rename' |
Triggered after a resource is renamed. | { newName: string, overrided: boolean } |
'before-rename' |
Triggered before a resource is renamed. | { newName: string } |
'lock-set' |
Triggered after a lock is added. | { lock: Lock } |
'before-lock-set' |
Triggered before a lock is added. | { lock: Lock } |
'lock-remove' |
Triggered after a lock is removed. | { uuid: string, removed: boolean } |
'before-lock-remove' |
Triggered before a lock is removed. | { uuid: string } |
'lock-refresh' |
Triggered after a lock is refreshed. | { uuid: string, timeout: number, lock: Lock } |
'before-lock-refresh' |
Triggered before a lock is refreshed. | { uuid: string, timeout: number } |
'property-set' |
Triggered after a property is added. | { name: string, value: ResourcePropertyValue, attributes: PropertyAttributes } |
'before-property-set' |
Triggered before a property is added. | { name: string, value: ResourcePropertyValue, attributes: PropertyAttributes } |
'property-remove' |
Triggered after a property is removed. | { name: string } |
'before-property-remove' |
Triggered before a property is removed. | { name: string } |
You can add a listener to the server with:
server.on('create', (ctx, fs, path, data) => {
console.log('Resource created; createIntermediates=', data.createIntermediates);
});
fileSystem.on(server, 'create', (ctx, fs, path, data) => {
console.log('Resource created; createIntermediates=', data.createIntermediates);
});
Then, you can remove a listener with:
server.removeEvent('create', myListener);
You can clear all the listeners of an event with:
server.removeEvent('create');