From acfd028e8f859a0e8139b7adab5d319e326c2373 Mon Sep 17 00:00:00 2001 From: dave caruso Date: Tue, 5 Sep 2023 17:41:39 -0700 Subject: feat(runtime): Implement `fs.watchFile` (#4467) * really lame prototype * uses threads but badly * it works i guess * unwatchFile but lame * it works * test * a * aomitcs * fix unwatching race condition * use hasPendingActivity and GC stuff better * test * revert this --- src/bun.js/node/node.classes.ts | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'src/bun.js/node/node.classes.ts') diff --git a/src/bun.js/node/node.classes.ts b/src/bun.js/node/node.classes.ts index 695a58d5e..46c25ad06 100644 --- a/src/bun.js/node/node.classes.ts +++ b/src/bun.js/node/node.classes.ts @@ -30,6 +30,31 @@ export default [ }, values: ["listener"], }), + define({ + name: "StatWatcher", + construct: false, + noConstructor: true, + finalize: true, + configurable: false, + hasPendingActivity: true, + klass: {}, + JSType: "0b11101110", + proto: { + ref: { + fn: "doRef", + length: 0, + }, + unref: { + fn: "doUnref", + length: 0, + }, + close: { + fn: "doClose", + length: 0, + }, + }, + values: ["listener"], + }), define({ name: "Timeout", construct: false, @@ -471,15 +496,13 @@ export default [ symlinkSync: { fn: "symlinkSync", length: 3 }, truncate: { fn: "truncate", length: 3 }, truncateSync: { fn: "truncateSync", length: 2 }, - // TODO: - // unwatchFile: { fn: "unwatchFile", length: 2 }, + unwatchFile: { fn: "unwatchFile", length: 2 }, unlink: { fn: "unlink", length: 2 }, unlinkSync: { fn: "unlinkSync", length: 1 }, utimes: { fn: "utimes", length: 4 }, utimesSync: { fn: "utimesSync", length: 3 }, watch: { fn: "watch", length: 3 }, - // TODO: - // watchFile: { fn: "watchFile", length: 3 }, + watchFile: { fn: "watchFile", length: 3 }, writeFile: { fn: "writeFile", length: 4 }, writeFileSync: { fn: "writeFileSync", length: 3 }, write: { fn: "write", length: 6 }, -- cgit v1.2.3