diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index 1549d49872a4c0..1ee1c40ee882ad 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -509,10 +509,10 @@ The [`util._extend()`][] API has been deprecated. ### DEP0061: fs.SyncWriteStream -Type: Documentation-only +Type: Runtime The `fs.SyncWriteStream` class was never intended to be a publicly accessible -API. +API. No alternative API is available. Please use a userland alternative. ### DEP0062: node --debug diff --git a/lib/fs.js b/lib/fs.js index c05e9e592d0c7c..d45bd82df7036c 100644 --- a/lib/fs.js +++ b/lib/fs.js @@ -17,9 +17,9 @@ const FSReqWrap = binding.FSReqWrap; const FSEvent = process.binding('fs_event_wrap').FSEvent; const internalFS = require('internal/fs'); const internalURL = require('internal/url'); +const internalUtil = require('internal/util'); const assertEncoding = internalFS.assertEncoding; const stringToFlags = internalFS.stringToFlags; -const SyncWriteStream = internalFS.SyncWriteStream; const getPathFromURL = internalURL.getPathFromURL; Object.defineProperty(exports, 'constants', { @@ -2024,12 +2024,14 @@ WriteStream.prototype.close = ReadStream.prototype.close; WriteStream.prototype.destroySoon = WriteStream.prototype.end; // SyncWriteStream is internal. DO NOT USE. -// todo(jasnell): "Docs-only" deprecation for now. This was never documented -// so there's no documentation to modify. In the future, add a runtime -// deprecation. -// Deprecation ID: DEP0061 +// This undocumented API was never intended to be made public. +var SyncWriteStream = internalFS.SyncWriteStream; Object.defineProperty(fs, 'SyncWriteStream', { configurable: true, - writable: true, - value: SyncWriteStream + get: internalUtil.deprecate(() => { + return SyncWriteStream; + }, 'fs.SyncWriteStream is deprecated.', 'DEP0061'), + set: internalUtil.deprecate((val) => { + SyncWriteStream = val; + }, 'fs.SyncWriteStream is deprecated.', 'DEP0061') });