Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d733b56

Browse filesBrowse files
Ayase-252targos
authored andcommitted
typings: add JSDoc for string_decoder
PR-URL: #38229 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
1 parent f97f6c5 commit d733b56
Copy full SHA for d733b56

File tree

Expand file treeCollapse file tree

1 file changed

+37
-3
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+37
-3
lines changed
Open diff view settings
Collapse file

‎lib/string_decoder.js‎

Copy file name to clipboardExpand all lines: lib/string_decoder.js
+37-3Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,14 @@ const kNativeDecoder = Symbol('kNativeDecoder');
5151

5252
// Do not cache `Buffer.isEncoding` when checking encoding names as some
5353
// modules monkey-patch it to support additional encodings
54+
/**
55+
* Normalize encoding notation
56+
*
57+
* @param {string} enc
58+
* @returns {"utf8" | "utf16le" | "hex" | "ascii"
59+
* | "base64" | "latin1" | "base64url"}
60+
* @throws {TypeError} Throws an error when encoding is invalid
61+
*/
5462
function normalizeEncoding(enc) {
5563
const nenc = internalUtil.normalizeEncoding(enc);
5664
if (nenc === undefined) {
@@ -65,15 +73,27 @@ const encodingsMap = {};
6573
for (let i = 0; i < encodings.length; ++i)
6674
encodingsMap[encodings[i]] = i;
6775

68-
// StringDecoder provides an interface for efficiently splitting a series of
69-
// buffers into a series of JS strings without breaking apart multi-byte
70-
// characters.
76+
/**
77+
* StringDecoder provides an interface for efficiently splitting a series of
78+
* buffers into a series of JS strings without breaking apart multi-byte
79+
* characters.
80+
*
81+
* @param {string} [encoding=utf-8]
82+
*/
7183
function StringDecoder(encoding) {
7284
this.encoding = normalizeEncoding(encoding);
7385
this[kNativeDecoder] = Buffer.alloc(kSize);
7486
this[kNativeDecoder][kEncodingField] = encodingsMap[this.encoding];
7587
}
7688

89+
/**
90+
* Returns a decoded string, omitting any incomplete multi-bytes
91+
* characters at the end of the Buffer, or TypedArray, or DataView
92+
*
93+
* @param {string | Buffer | TypedArray | DataView} buf
94+
* @returns {string}
95+
* @throws {TypeError} Throws when buf is not in one of supported types
96+
*/
7797
StringDecoder.prototype.write = function write(buf) {
7898
if (typeof buf === 'string')
7999
return buf;
@@ -84,6 +104,14 @@ StringDecoder.prototype.write = function write(buf) {
84104
return decode(this[kNativeDecoder], buf);
85105
};
86106

107+
/**
108+
* Returns any remaining input stored in the internal buffer as a string.
109+
* After end() is called, the stringDecoder object can be reused for new
110+
* input.
111+
*
112+
* @param {string | Buffer | TypedArray | DataView} [buf]
113+
* @returns {string}
114+
*/
87115
StringDecoder.prototype.end = function end(buf) {
88116
let ret = '';
89117
if (buf !== undefined)
@@ -94,6 +122,12 @@ StringDecoder.prototype.end = function end(buf) {
94122
};
95123

96124
/* Everything below this line is undocumented legacy stuff. */
125+
/**
126+
*
127+
* @param {string | Buffer | TypedArray | DataView} buf
128+
* @param {number} offset
129+
* @returns {string}
130+
*/
97131
StringDecoder.prototype.text = function text(buf, offset) {
98132
this[kNativeDecoder][kMissingBytes] = 0;
99133
this[kNativeDecoder][kBufferedBytes] = 0;

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.