From 060e5f0c0064e578c2150f13e3f91ac15fdeed92 Mon Sep 17 00:00:00 2001 From: James M Snell Date: Tue, 8 Mar 2016 20:58:45 -0800 Subject: fs: Buffer and encoding enhancements to fs API This makes several changes: 1. Allow path/filename to be passed in as a Buffer on fs methods 2. Add `options.encoding` to fs.readdir, fs.readdirSync, fs.readlink, fs.readlinkSync and fs.watch. 3. Documentation updates For 1... it's now possible to do: ```js fs.open(Buffer('/fs/foo/bar'), 'w+', (err, fd) => { }); ``` For 2... ```js fs.readdir('/fs/foo/bar', {encoding:'hex'}, (err,list) => { }); fs.readdir('/fs/foo/bar', {encoding:'buffer'}, (err, list) => { }); ``` encoding can also be passed as a string ```js fs.readdir('/fs/foo/bar', 'hex', (err,list) => { }); ``` The default encoding is set to UTF8 so this addresses the discrepency that existed previously between fs.readdir and fs.watch handling filenames differently. Fixes: https://github.com/nodejs/node/issues/2088 Refs: https://github.com/nodejs/node/issues/3519 PR-URL: https://github.com/nodejs/node/pull/5616 Reviewed-By: Ben Noordhuis Reviewed-By: Trevor Norris --- src/string_bytes.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/string_bytes.h') diff --git a/src/string_bytes.h b/src/string_bytes.h index 79520d2470..7108862139 100644 --- a/src/string_bytes.h +++ b/src/string_bytes.h @@ -106,6 +106,10 @@ class StringBytes { const uint16_t* buf, size_t buflen); + static v8::Local Encode(v8::Isolate* isolate, + const char* buf, + enum encoding encoding); + // Deprecated legacy interface NODE_DEPRECATED("Use IsValidString(isolate, ...)", -- cgit v1.2.3