Closed
Description
- Version: 14.5.0+
- Platform: Windows 10 x64
- Subsystem: fs
What steps will reproduce the bug?
On Windows:
const fs = require('fs');
fs.symlinkSync(Buffer.from('target'), 'link');
How often does it reproduce? Is there a required condition?
Always happens on Windows since 14.5.0, it may be necessary to enable symlink support on Windows (I'm not 100% sure how that all works). Does not happen on Linux or macOS.
What is the expected behavior?
No error, and the symlink should be created. Buffer is listed as a valid target type.
What do you see instead?
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Buffer
internal/validators.js:121
throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Buffer
at validateString (internal/validators.js:121:11)
at Object.isAbsolute (path.js:353:5)
at preprocessSymlinkDestination (internal/fs/utils.js:345:18)
at Object.symlinkSync (fs.js:1118:19)
at Object.<anonymous> (C:\Users\travis\build\AlexanderOMara\issue-node-symlink-buffer-windows\main.js:5:4)
at Module._compile (internal/modules/cjs/loader.js:1236:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1257:10)
at Module.load (internal/modules/cjs/loader.js:1085:32)
at Function.Module._load (internal/modules/cjs/loader.js:950:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) {
code: 'ERR_INVALID_ARG_TYPE'
}
Additional information
I created a test repo which is tested via Travis CI.
On a side-note, the path
argument can be a Buffer, it's just the target
argument with the issue.