From b461a1b1259b0b12f6fdbc45851e8b0546ddde84 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sat, 6 Feb 2021 05:36:58 -0800 Subject: [PATCH 1/2] doc,lib: prepare for stricter multi-line array linting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're about to turn on a requirement for dangling commas. PR-URL: https://github.com/nodejs/node/pull/37088 Reviewed-By: Michaël Zasso Reviewed-By: Antoine du Hamel --- doc/api/child_process.md | 4 ++-- doc/api/dns.md | 8 ++++---- doc/api/os.md | 2 +- doc/api/url.md | 6 +++--- doc/api/webcrypto.md | 4 ++-- lib/assert.js | 4 ++-- lib/internal/bootstrap/loaders.js | 2 +- lib/internal/bootstrap/pre_execution.js | 2 +- lib/internal/child_process/serialization.js | 2 +- lib/internal/console/constructor.js | 2 +- lib/internal/crypto/hkdf.js | 2 +- lib/internal/crypto/keygen.js | 2 +- lib/internal/crypto/keys.js | 2 +- lib/internal/crypto/random.js | 2 +- lib/internal/crypto/util.js | 6 +++--- lib/internal/encoding.js | 2 +- lib/internal/errors.js | 2 +- lib/internal/freeze_intrinsics.js | 4 ++-- lib/internal/http2/util.js | 6 +++--- lib/internal/main/print_help.js | 8 ++++---- lib/internal/modules/cjs/loader.js | 2 +- lib/internal/per_context/primordials.js | 2 +- lib/internal/process/per_thread.js | 2 +- lib/internal/querystring.js | 2 +- lib/internal/streams/pipeline.js | 2 +- lib/internal/tty.js | 2 +- lib/internal/url.js | 2 +- lib/internal/util/inspect.js | 8 ++++---- lib/internal/v8_prof_processor.js | 2 +- lib/os.js | 2 +- lib/perf_hooks.js | 2 +- lib/querystring.js | 4 ++-- lib/readline.js | 2 +- lib/repl.js | 2 +- lib/url.js | 10 +++++----- 35 files changed, 59 insertions(+), 59 deletions(-) diff --git a/doc/api/child_process.md b/doc/api/child_process.md index 87a62ddbbc864e..8d3186cbc4090d 100644 --- a/doc/api/child_process.md +++ b/doc/api/child_process.md @@ -1225,7 +1225,7 @@ const subprocess = spawn( '-c', `node -e "setInterval(() => { console.log(process.pid, 'is alive') - }, 500);"` + }, 500);"`, ], { stdio: ['inherit', 'inherit', 'inherit'] } @@ -1558,7 +1558,7 @@ const subprocess = child_process.spawn('ls', { stdio: [ 0, // Use parent's stdin for child. 'pipe', // Pipe child's stdout to parent. - fs.openSync('err.out', 'w') // Direct child's stderr to a file. + fs.openSync('err.out', 'w'), // Direct child's stderr to a file. ] }); diff --git a/doc/api/dns.md b/doc/api/dns.md index c85bf7124292f9..cdb948309f173f 100644 --- a/doc/api/dns.md +++ b/doc/api/dns.md @@ -155,7 +155,7 @@ section if a custom port is used. '4.4.4.4', '2001:4860:4860::8888', '4.4.4.4:1053', - '[2001:4860:4860::8888]:1053' + '[2001:4860:4860::8888]:1053', ] ``` @@ -645,7 +645,7 @@ dns.setServers([ '4.4.4.4', '[2001:4860:4860::8888]', '4.4.4.4:1053', - '[2001:4860:4860::8888]:1053' + '[2001:4860:4860::8888]:1053', ]); ``` @@ -755,7 +755,7 @@ section if a custom port is used. '4.4.4.4', '2001:4860:4860::8888', '4.4.4.4:1053', - '[2001:4860:4860::8888]:1053' + '[2001:4860:4860::8888]:1053', ] ``` @@ -1148,7 +1148,7 @@ dnsPromises.setServers([ '4.4.4.4', '[2001:4860:4860::8888]', '4.4.4.4:1053', - '[2001:4860:4860::8888]:1053' + '[2001:4860:4860::8888]:1053', ]); ``` diff --git a/doc/api/os.md b/doc/api/os.md index 956c1775c21ae6..ed380ac75355ff 100644 --- a/doc/api/os.md +++ b/doc/api/os.md @@ -115,7 +115,7 @@ The properties included on each object include: idle: 1070905480, irq: 20 } - } + }, ] ``` diff --git a/doc/api/url.md b/doc/api/url.md index 0a29e4eee4a028..ad6455f2a1f545 100644 --- a/doc/api/url.md +++ b/doc/api/url.md @@ -566,7 +566,7 @@ with [`JSON.stringify()`][]. ```js const myURLs = [ new URL('https://www.example.com'), - new URL('https://test.example.org') + new URL('https://test.example.org'), ]; console.log(JSON.stringify(myURLs)); // Prints ["https://www.example.com/","https://test.example.org/"] @@ -703,7 +703,7 @@ let params; params = new URLSearchParams([ ['user', 'abc'], ['query', 'first'], - ['query', 'second'] + ['query', 'second'], ]); console.log(params.toString()); // Prints 'user=abc&query=first&query=second' @@ -728,7 +728,7 @@ console.log(params.toString()); // Each key-value pair must have exactly two elements new URLSearchParams([ - ['user', 'abc', 'error'] + ['user', 'abc', 'error'], ]); // Throws TypeError [ERR_INVALID_TUPLE]: // Each query pair must be an iterable [name, value] tuple diff --git a/doc/api/webcrypto.md b/doc/api/webcrypto.md index c360677df4d333..79bf1c75c5152f 100644 --- a/doc/api/webcrypto.md +++ b/doc/api/webcrypto.md @@ -187,7 +187,7 @@ const { subtle } = require('crypto').webcrypto; async function generateAndWrapHmacKey(format = 'jwk', hash = 'SHA-512') { const [ key, - wrappingKey + wrappingKey, ] = await Promise.all([ subtle.generateKey({ name: 'HMAC', hash @@ -195,7 +195,7 @@ async function generateAndWrapHmacKey(format = 'jwk', hash = 'SHA-512') { subtle.generateKey({ name: 'AES-KW', length: 256 - }, true, ['wrapKey', 'unwrapKey']) + }, true, ['wrapKey', 'unwrapKey']), ]); const wrappedKey = await subtle.wrapKey(format, key, wrappingKey, 'AES-KW'); diff --git a/lib/assert.js b/lib/assert.js index bc0440ae9bb8da..b13aaa93e2ccf9 100644 --- a/lib/assert.js +++ b/lib/assert.js @@ -95,7 +95,7 @@ const meta = [ '\\u000f', '\\u0010', '\\u0011', '\\u0012', '\\u0013', '\\u0014', '\\u0015', '\\u0016', '\\u0017', '\\u0018', '\\u0019', '\\u001a', '\\u001b', '\\u001c', '\\u001d', - '\\u001e', '\\u001f' + '\\u001e', '\\u001f', ]; const escapeFn = (str) => meta[StringPrototypeCharCodeAt(str, 0)]; @@ -276,7 +276,7 @@ function parseCode(code, offset) { node.node.start, StringPrototypeReplace(StringPrototypeSlice(code, node.node.start, node.node.end), - escapeSequencesRegExp, escapeFn) + escapeSequencesRegExp, escapeFn), ]; } diff --git a/lib/internal/bootstrap/loaders.js b/lib/internal/bootstrap/loaders.js index cae3200e677926..8f1e2996416814 100644 --- a/lib/internal/bootstrap/loaders.js +++ b/lib/internal/bootstrap/loaders.js @@ -102,7 +102,7 @@ const internalBindingAllowlist = new SafeSet([ 'util', 'uv', 'v8', - 'zlib' + 'zlib', ]); // Set up process.binding() and process._linkedBinding(). diff --git a/lib/internal/bootstrap/pre_execution.js b/lib/internal/bootstrap/pre_execution.js index 381a54d489fb0f..23b328b14487e4 100644 --- a/lib/internal/bootstrap/pre_execution.js +++ b/lib/internal/bootstrap/pre_execution.js @@ -263,7 +263,7 @@ function initializeDeprecations() { 'isSetIterator', 'isTypedArray', 'isUint8Array', - 'isAnyArrayBuffer' + 'isAnyArrayBuffer', ]) { utilBinding[name] = pendingDeprecation ? deprecate(types[name], diff --git a/lib/internal/child_process/serialization.js b/lib/internal/child_process/serialization.js index 51c8efc1f21f45..f61a6b6f2552d0 100644 --- a/lib/internal/child_process/serialization.js +++ b/lib/internal/child_process/serialization.js @@ -84,7 +84,7 @@ const advanced = { sizeBuffer.writeUInt32BE(serializedMessage.length); return channel.writeBuffer(req, Buffer.concat([ sizeBuffer, - serializedMessage + serializedMessage, ]), handle); }, }; diff --git a/lib/internal/console/constructor.js b/lib/internal/console/constructor.js index 2478991e5f682d..2677af577c01c2 100644 --- a/lib/internal/console/constructor.js +++ b/lib/internal/console/constructor.js @@ -532,7 +532,7 @@ const consoleMethods = { } } return final([ - iterKey, keyKey, valuesKey + iterKey, keyKey, valuesKey, ], [ getIndexArray(length), keys, diff --git a/lib/internal/crypto/hkdf.js b/lib/internal/crypto/hkdf.js index 7400d0c815f84f..8cff0489a553e0 100644 --- a/lib/internal/crypto/hkdf.js +++ b/lib/internal/crypto/hkdf.js @@ -95,7 +95,7 @@ function prepareKey(key) { 'ArrayBuffer', 'TypedArray', 'DataView', - 'Buffer' + 'Buffer', ], key); } diff --git a/lib/internal/crypto/keygen.js b/lib/internal/crypto/keygen.js index 1e944d76fac66d..cb41b8c91fe42d 100644 --- a/lib/internal/crypto/keygen.js +++ b/lib/internal/crypto/keygen.js @@ -150,7 +150,7 @@ function parseKeyEncoding(keyType, options = {}) { privateFormat, privateType, cipher, - passphrase + passphrase, ]; } diff --git a/lib/internal/crypto/keys.js b/lib/internal/crypto/keys.js index 140f4ad6df7a1d..a7bf4b8a65d8de 100644 --- a/lib/internal/crypto/keys.js +++ b/lib/internal/crypto/keys.js @@ -90,7 +90,7 @@ const [ KeyObject, SecretKeyObject, PublicKeyObject, - PrivateKeyObject + PrivateKeyObject, ] = createNativeKeyObjectClass((NativeKeyObject) => { // Publicly visible KeyObject class. class KeyObject extends NativeKeyObject { diff --git a/lib/internal/crypto/random.js b/lib/internal/crypto/random.js index e82aeb54564ae1..293af88848ed0d 100644 --- a/lib/internal/crypto/random.js +++ b/lib/internal/crypto/random.js @@ -296,7 +296,7 @@ function getRandomValues(data) { const kHexDigits = [ 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 97, 98, 99, 100, 101, 102 + 56, 57, 97, 98, 99, 100, 101, 102, ]; const kBatchSize = 128; diff --git a/lib/internal/crypto/util.js b/lib/internal/crypto/util.js index c580ce2571e03e..2345fd64f3d359 100644 --- a/lib/internal/crypto/util.js +++ b/lib/internal/crypto/util.js @@ -133,7 +133,7 @@ const getArrayBufferOrView = hideStackFrames((buffer, name, encoding) => { 'ArrayBuffer', 'Buffer', 'TypedArray', - 'DataView' + 'DataView', ], buffer ); @@ -200,7 +200,7 @@ const kHashTypes = [ 'SHA-1', 'SHA-256', 'SHA-384', - 'SHA-512' + 'SHA-512', ]; function validateMaxBufferLength(data, name) { @@ -278,7 +278,7 @@ const validateByteSource = hideStackFrames((val, name) => { 'ArrayBuffer', 'TypedArray', 'DataView', - 'Buffer' + 'Buffer', ], val); }); diff --git a/lib/internal/encoding.js b/lib/internal/encoding.js index aca4a3a79e4b76..560f0daeae7ca2 100644 --- a/lib/internal/encoding.js +++ b/lib/internal/encoding.js @@ -285,7 +285,7 @@ const encodings = new SafeMap([ ['windows-949', 'euc-kr'], ['utf-16be', 'utf-16be'], ['utf-16le', 'utf-16le'], - ['utf-16', 'utf-16le'] + ['utf-16', 'utf-16le'], ]); // Unfortunately, String.prototype.trim also removes non-ascii whitespace, diff --git a/lib/internal/errors.js b/lib/internal/errors.js index e80b7a7f5a7713..0cd4d9912b5d04 100644 --- a/lib/internal/errors.js +++ b/lib/internal/errors.js @@ -70,7 +70,7 @@ const kTypes = [ 'Object', 'boolean', 'bigint', - 'symbol' + 'symbol', ]; const MainContextError = Error; diff --git a/lib/internal/freeze_intrinsics.js b/lib/internal/freeze_intrinsics.js index a1cdd64d06cbaa..e7282588551929 100644 --- a/lib/internal/freeze_intrinsics.js +++ b/lib/internal/freeze_intrinsics.js @@ -203,7 +203,7 @@ module.exports = function() { WebAssembly.CompileError.prototype, WebAssembly.LinkError.prototype, WebAssembly.RuntimeError.prototype, - SharedArrayBuffer.prototype + SharedArrayBuffer.prototype, ]; const intrinsics = [ // Anonymous Intrinsics @@ -317,7 +317,7 @@ module.exports = function() { BigInt, Atomics, WebAssembly, - SharedArrayBuffer + SharedArrayBuffer, ]; if (typeof Intl !== 'undefined') { diff --git a/lib/internal/http2/util.js b/lib/internal/http2/util.js index dadfb68e8b5289..bde89f8a3d1869 100644 --- a/lib/internal/http2/util.js +++ b/lib/internal/http2/util.js @@ -108,7 +108,7 @@ const kValidPseudoHeaders = new SafeSet([ HTTP2_HEADER_AUTHORITY, HTTP2_HEADER_SCHEME, HTTP2_HEADER_PATH, - HTTP2_HEADER_PROTOCOL + HTTP2_HEADER_PROTOCOL, ]); // This set contains headers that are permitted to have only a single @@ -153,7 +153,7 @@ const kSingleValueHeaders = new SafeSet([ HTTP2_HEADER_TK, HTTP2_HEADER_UPGRADE_INSECURE_REQUESTS, HTTP2_HEADER_USER_AGENT, - HTTP2_HEADER_X_CONTENT_TYPE_OPTIONS + HTTP2_HEADER_X_CONTENT_TYPE_OPTIONS, ]); // The HTTP methods in this set are specifically defined as assigning no @@ -163,7 +163,7 @@ const kSingleValueHeaders = new SafeSet([ const kNoPayloadMethods = new SafeSet([ HTTP2_METHOD_DELETE, HTTP2_METHOD_GET, - HTTP2_METHOD_HEAD + HTTP2_METHOD_HEAD, ]); // The following ArrayBuffer instances are used to share memory more efficiently diff --git a/lib/internal/main/print_help.js b/lib/internal/main/print_help.js index 94c81c484880b3..e3d7e68fa64846 100644 --- a/lib/internal/main/print_help.js +++ b/lib/internal/main/print_help.js @@ -55,13 +55,13 @@ const envVars = new SafeMap(ArrayPrototypeConcat([ ['NODE_V8_COVERAGE', { helpText: 'directory to output v8 coverage JSON ' + 'to' }], ['UV_THREADPOOL_SIZE', { helpText: 'sets the number of threads used in ' + - 'libuv\'s threadpool' }] + 'libuv\'s threadpool' }], ], hasIntl ? [ ['NODE_ICU_DATA', { helpText: 'data path for ICU (Intl object) data' + - hasSmallICU ? '' : ' (will extend linked-in data)' }] + hasSmallICU ? '' : ' (will extend linked-in data)' }], ] : []), (hasNodeOptions ? [ ['NODE_OPTIONS', { helpText: 'set CLI options in the environment via a ' + - 'space-separated list' }] + 'space-separated list' }], ] : []), hasCrypto ? [ ['OPENSSL_CONF', { helpText: 'load OpenSSL configuration from file' }], ['SSL_CERT_DIR', { helpText: 'sets OpenSSL\'s directory of trusted ' + @@ -108,7 +108,7 @@ function format( let maxFirstColumnUsed = 0; for (const [ - name, { helpText, type, value } + name, { helpText, type, value }, ] of ArrayPrototypeSort([...options.entries()])) { if (!helpText) continue; diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 6b18338e347464..12eb3ebb3bb2ec 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -198,7 +198,7 @@ let wrap = function(script) { const wrapper = [ '(function (exports, require, module, __filename, __dirname) { ', - '\n});' + '\n});', ]; let wrapperProxy = new Proxy(wrapper, { diff --git a/lib/internal/per_context/primordials.js b/lib/internal/per_context/primordials.js index f5958dcf23b37e..a26e50005d6d43 100644 --- a/lib/internal/per_context/primordials.js +++ b/lib/internal/per_context/primordials.js @@ -145,7 +145,7 @@ function copyPrototype(src, dest, prefix) { [ 'JSON', 'Math', - 'Reflect' + 'Reflect', ].forEach((name) => { copyPropsRenamed(global[name], primordials, name); }); diff --git a/lib/internal/process/per_thread.js b/lib/internal/process/per_thread.js index 04da1a862ca7c0..a4da131a0cea77 100644 --- a/lib/internal/process/per_thread.js +++ b/lib/internal/process/per_thread.js @@ -72,7 +72,7 @@ function getFastAPIs(binding) { return [ hrValues[0] * 0x100000000 + hrValues[1], - hrValues[2] + hrValues[2], ]; } diff --git a/lib/internal/querystring.js b/lib/internal/querystring.js index 658faa93b6ad4d..f1390420558ed2 100644 --- a/lib/internal/querystring.js +++ b/lib/internal/querystring.js @@ -33,7 +33,7 @@ const isHexTable = new Int8Array([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // ... 256 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ... 256 ]); function encodeStr(str, noEscapeTable, hexTable) { diff --git a/lib/internal/streams/pipeline.js b/lib/internal/streams/pipeline.js index 876195b10c124a..a34a55d562304c 100644 --- a/lib/internal/streams/pipeline.js +++ b/lib/internal/streams/pipeline.js @@ -241,7 +241,7 @@ function pipeline(...streams) { pt.end(val); }, (err) => { pt.destroy(err); - } + }, ]); } else if (isIterable(ret, true)) { finishCount++; diff --git a/lib/internal/tty.js b/lib/internal/tty.js index f4f05f971c2713..5a247c7928c346 100644 --- a/lib/internal/tty.js +++ b/lib/internal/tty.js @@ -77,7 +77,7 @@ const TERM_ENVS_REG_EXP = [ /^rxvt/, /^screen/, /^xterm/, - /^vt100/ + /^vt100/, ]; let warned = false; diff --git a/lib/internal/url.js b/lib/internal/url.js index 6660cea55f1c4e..16a453c7845a30 100644 --- a/lib/internal/url.js +++ b/lib/internal/url.js @@ -1088,7 +1088,7 @@ const noEscape = new Int8Array([ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x40 - 0x4F 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, // 0x50 - 0x5F 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60 - 0x6F - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 // 0x70 - 0x7F + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, // 0x70 - 0x7F ]); // Special version of hexTable that uses `+` for U+0020 SPACE. diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js index 0bdb1128f08e50..757a9f372c8dec 100644 --- a/lib/internal/util/inspect.js +++ b/lib/internal/util/inspect.js @@ -707,7 +707,7 @@ function formatProxy(ctx, proxy, recurseTimes) { ctx.indentationLvl += 2; const res = [ formatValue(ctx, proxy[0], recurseTimes), - formatValue(ctx, proxy[1], recurseTimes) + formatValue(ctx, proxy[1], recurseTimes), ]; ctx.indentationLvl -= 2; return reduceToSingleString( @@ -1529,7 +1529,7 @@ function formatTypedArray(value, length, ctx, ignored, recurseTimes) { 'length', 'byteLength', 'byteOffset', - 'buffer' + 'buffer', ]) { const str = formatValue(ctx, value[key], recurseTimes, true); ArrayPrototypePush(output, `[${key}]: ${str}`); @@ -1608,7 +1608,7 @@ function formatMapIterInner(ctx, recurseTimes, entries, state) { const pos = i * 2; const res = [ formatValue(ctx, entries[pos], recurseTimes), - formatValue(ctx, entries[pos + 1], recurseTimes) + formatValue(ctx, entries[pos + 1], recurseTimes), ]; output[i] = reduceToSingleString( ctx, res, '', ['[', ']'], kArrayExtrasType, recurseTimes); @@ -1658,7 +1658,7 @@ function formatPromise(ctx, value, recurseTimes) { output = [ state === kRejected ? `${ctx.stylize('', 'special')} ${str}` : - str + str, ]; } return output; diff --git a/lib/internal/v8_prof_processor.js b/lib/internal/v8_prof_processor.js index daae650b2ad8ef..0136bc7ba48623 100644 --- a/lib/internal/v8_prof_processor.js +++ b/lib/internal/v8_prof_processor.js @@ -20,7 +20,7 @@ const scriptFiles = [ 'internal/deps/v8/tools/arguments', 'internal/deps/v8/tools/tickprocessor', 'internal/deps/v8/tools/SourceMap', - 'internal/deps/v8/tools/tickprocessor-driver' + 'internal/deps/v8/tools/tickprocessor-driver', ]; let script = ''; diff --git a/lib/os.js b/lib/os.js index b134fb93298473..d720b65ce441bf 100644 --- a/lib/os.js +++ b/lib/os.js @@ -74,7 +74,7 @@ function getCheckedFunction(fn) { const [ type, version, - release + release, ] = _getOSInformation(); const getHomeDirectory = getCheckedFunction(_getHomeDirectory); diff --git a/lib/perf_hooks.js b/lib/perf_hooks.js index 5cacbea43b91fc..6a759bbbf4e2d6 100644 --- a/lib/perf_hooks.js +++ b/lib/perf_hooks.js @@ -98,7 +98,7 @@ const observerableTypes = [ 'gc', 'function', 'http2', - 'http' + 'http', ]; const IDX_STREAM_STATS_ID = 0; diff --git a/lib/querystring.js b/lib/querystring.js index c79831b359d8f6..a6e780d6e9c71d 100644 --- a/lib/querystring.js +++ b/lib/querystring.js @@ -74,7 +74,7 @@ const unhexTable = new Int8Array([ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 // ... 255 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // ... 255 ]); // A safe fast alternative to decodeURIComponent function unescapeBuffer(s, decodeSpaces) { @@ -143,7 +143,7 @@ const noEscape = new Int8Array([ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, // 80 - 95 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111 - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 // 112 - 127 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, // 112 - 127 ]); // QueryString.escape() replaces encodeURIComponent() // https://www.ecma-international.org/ecma-262/5.1/#sec-15.1.3.4 diff --git a/lib/readline.js b/lib/readline.js index 9cad848bf45380..cd1bfb8b6aaa51 100644 --- a/lib/readline.js +++ b/lib/readline.js @@ -144,7 +144,7 @@ function Interface(input, output, completer, terminal) { this.escapeCodeTimeout = ESCAPE_CODE_TIMEOUT; this.tabSize = 8; - FunctionPrototypeCall(EventEmitter, this,); + FunctionPrototypeCall(EventEmitter, this); let history; let historySize; let removeHistoryDuplicates = false; diff --git a/lib/repl.js b/lib/repl.js index e277da3b8763cd..2649dc337c9c8d 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -1595,7 +1595,7 @@ function addCommonWords(completionGroups) { 'debugger', 'default', 'delete', 'do', 'else', 'export', 'false', 'finally', 'for', 'function', 'if', 'import', 'in', 'instanceof', 'let', 'new', 'null', 'return', 'switch', 'this', 'throw', 'true', 'try', - 'typeof', 'var', 'void', 'while', 'with', 'yield' + 'typeof', 'var', 'void', 'while', 'with', 'yield', ]); } diff --git a/lib/url.js b/lib/url.js index 0fb81e277c512b..177bd9eb59ca44 100644 --- a/lib/url.js +++ b/lib/url.js @@ -86,12 +86,12 @@ const hostnameMaxLen = 255; // Protocols that can allow "unsafe" and "unwise" chars. const unsafeProtocol = new SafeSet([ 'javascript', - 'javascript:' + 'javascript:', ]); // Protocols that never have a hostname. const hostlessProtocol = new SafeSet([ 'javascript', - 'javascript:' + 'javascript:', ]); // Protocols that always contain a // bit. const slashedProtocol = new SafeSet([ @@ -108,7 +108,7 @@ const slashedProtocol = new SafeSet([ 'ws', 'ws:', 'wss', - 'wss:' + 'wss:', ]); const { CHAR_SPACE, @@ -516,7 +516,7 @@ const escapedCodes = [ /* 90 - 99 */ '', '', '%5C', '', '%5E', '', '%60', '', '', '', /* 100 - 109 */ '', '', '', '', '', '', '', '', '', '', /* 110 - 119 */ '', '', '', '', '', '', '', '', '', '', - /* 120 - 125 */ '', '', '', '%7B', '%7C', '%7D' + /* 120 - 125 */ '', '', '', '%7B', '%7C', '%7D', ]; // Automatically escape all delimiters and unwise characters from RFC 2396. @@ -580,7 +580,7 @@ const noEscapeAuth = new Int8Array([ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x40 - 0x4F 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, // 0x50 - 0x5F 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60 - 0x6F - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 // 0x70 - 0x7F + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, // 0x70 - 0x7F ]); Url.prototype.format = function format() { From 1d4c0a35720ab741f0815abf945fa5a2583445e7 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Sat, 6 Feb 2021 05:37:36 -0800 Subject: [PATCH 2/2] =?UTF-8?q?tools:=20make=20comma-dangle=20ESLint=20rul?= =?UTF-8?q?e=20more=20stringent=20=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We've been having a lot of nits lately asking people to add trailing commas, so it's probably time to incrementally make the comma-dangle rule more stringent. PR-URL: https://github.com/nodejs/node/pull/37088 Reviewed-By: Michaël Zasso Reviewed-By: Antoine du Hamel --- .eslintrc.js | 8 +++++++- test/.eslintrc.yaml | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index ca0e40e4b6ceee..a9a1761e6abcdf 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -95,7 +95,13 @@ module.exports = { ignorePattern: '.*', }, }], - 'comma-dangle': ['error', 'only-multiline'], + 'comma-dangle': ['error', { + arrays: 'always-multiline', + exports: 'only-multiline', + functions: 'only-multiline', + imports: 'only-multiline', + objects: 'only-multiline', + }], 'comma-spacing': 'error', 'comma-style': 'error', 'computed-property-spacing': 'error', diff --git a/test/.eslintrc.yaml b/test/.eslintrc.yaml index 6a0104f7ce17ca..146633bf850f83 100644 --- a/test/.eslintrc.yaml +++ b/test/.eslintrc.yaml @@ -5,6 +5,8 @@ env: es6: true rules: + # For now, comma-dangle is more lenient in the test directory than elsewhere. + comma-dangle: ["error", "only-multiline"] no-var: error prefer-const: error symbol-description: off