mirror of
https://github.com/n8n-io/n8n.git
synced 2025-01-11 12:57:29 -08:00
feat(Local File Trigger Node): Add polling option typically good to watch network files/folders (#7942)
Adding more chokidar options to watch files/folders especially usePolling typically good to watch network volumes. Inspired by [https://github.com/n8n-io/n8n/pull/4914/files](https://github.com/n8n-io/n8n/pull/4914/files)
This commit is contained in:
parent
69c2254742
commit
2fbdfec0c0
|
@ -125,6 +125,13 @@ export class LocalFileTrigger implements INodeType {
|
||||||
placeholder: 'Add Option',
|
placeholder: 'Add Option',
|
||||||
default: {},
|
default: {},
|
||||||
options: [
|
options: [
|
||||||
|
{
|
||||||
|
displayName: 'Await Write Finish',
|
||||||
|
name: 'awaitWriteFinish',
|
||||||
|
type: 'boolean',
|
||||||
|
default: false,
|
||||||
|
description: 'Whether to wait until files finished writing to avoid partially read',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Include Linked Files/Folders',
|
displayName: 'Include Linked Files/Folders',
|
||||||
name: 'followSymlinks',
|
name: 'followSymlinks',
|
||||||
|
@ -142,7 +149,13 @@ export class LocalFileTrigger implements INodeType {
|
||||||
description:
|
description:
|
||||||
'Files or paths to ignore. The whole path is tested, not just the filename. Supports <a href="https://github.com/micromatch/anymatch">Anymatch</a>- syntax.',
|
'Files or paths to ignore. The whole path is tested, not just the filename. Supports <a href="https://github.com/micromatch/anymatch">Anymatch</a>- syntax.',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Ignore Existing Files/Folders',
|
||||||
|
name: 'ignoreInitial',
|
||||||
|
type: 'boolean',
|
||||||
|
default: true,
|
||||||
|
description: 'Whether to ignore existing files/folders to not trigger an event',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Max Folder Depth',
|
displayName: 'Max Folder Depth',
|
||||||
name: 'depth',
|
name: 'depth',
|
||||||
|
@ -180,6 +193,14 @@ export class LocalFileTrigger implements INodeType {
|
||||||
default: -1,
|
default: -1,
|
||||||
description: 'How deep into the folder structure to watch for changes',
|
description: 'How deep into the folder structure to watch for changes',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Use Polling',
|
||||||
|
name: 'usePolling',
|
||||||
|
type: 'boolean',
|
||||||
|
default: false,
|
||||||
|
description:
|
||||||
|
'Whether to use polling for watching. Typically necessary to successfully watch files over a network.',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -200,12 +221,15 @@ export class LocalFileTrigger implements INodeType {
|
||||||
const watcher = watch(path, {
|
const watcher = watch(path, {
|
||||||
ignored: options.ignored === '' ? undefined : options.ignored,
|
ignored: options.ignored === '' ? undefined : options.ignored,
|
||||||
persistent: true,
|
persistent: true,
|
||||||
ignoreInitial: true,
|
ignoreInitial:
|
||||||
|
options.ignoreInitial === undefined ? true : (options.ignoreInitial as boolean),
|
||||||
followSymlinks:
|
followSymlinks:
|
||||||
options.followSymlinks === undefined ? true : (options.followSymlinks as boolean),
|
options.followSymlinks === undefined ? true : (options.followSymlinks as boolean),
|
||||||
depth: [-1, undefined].includes(options.depth as number)
|
depth: [-1, undefined].includes(options.depth as number)
|
||||||
? undefined
|
? undefined
|
||||||
: (options.depth as number),
|
: (options.depth as number),
|
||||||
|
usePolling: options.usePolling as boolean,
|
||||||
|
awaitWriteFinish: options.awaitWriteFinish as boolean,
|
||||||
});
|
});
|
||||||
|
|
||||||
const executeTrigger = (event: string, pathString: string) => {
|
const executeTrigger = (event: string, pathString: string) => {
|
||||||
|
|
Loading…
Reference in a new issue