Skip to content
Permalink
Browse files

lib: remove `env: node` in eslint config for lib files

This patch removes the redundant `require-globals` custom
eslint rule by removing `env: node` in the eslint config
and whitelist the globals that can be accessed in native
modules instead of black listing them. This makes sense
for our `lib/` files because here we are creating the
Node.js environment instead of running in a normal user
land Node.js environment.

PR-URL: #27082
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
  • Loading branch information...
joyeecheung committed Apr 4, 2019
1 parent 864860e commit de230555369087282213d337ecc1c315fbb74230
@@ -1,5 +1,7 @@
'use strict';

/* eslint-env node */

const Module = require('module');
const path = require('path');

@@ -31,7 +33,6 @@ Module._findPath = (request, paths, isMain) => {
module.exports = {
root: true,
plugins: ['markdown', 'node-core'],
env: { node: true, es6: true },
parser: 'babel-eslint',
parserOptions: { sourceType: 'script' },
overrides: [
@@ -1,5 +1,9 @@
## Benchmark-specific linter rules

env:
node: true
es6: true

rules:
comma-dangle:
- error
@@ -1,3 +1,6 @@
env:
es6: true

rules:
prefer-object-spread: error
no-buffer-constructor: error
@@ -19,10 +22,11 @@ rules:
- selector: "CallExpression[callee.object.name='Error'][callee.property.name='captureStackTrace']"
message: "Please use `require('internal/errors').hideStackFrames()` instead."
# Custom rules in tools/eslint-rules
node-core/require-globals: error
node-core/lowercase-name-for-primitive: error
node-core/non-ascii-character: error
globals:
Intl: false
# Assertions
CHECK: false
CHECK_EQ: false
CHECK_GE: false
@@ -37,5 +41,21 @@ globals:
DCHECK_LE: false
DCHECK_LT: false
DCHECK_NE: false
# Parameters passed to internal modules
global: false
require: false
process: false
exports: false
module: false
internalBinding: false
primordials: false
# Globals
# TODO(joyeecheung): if possible, get these in native modules
# through `require` instead of grabbing them from the global proxy.
clearTimeout: false
setTimeout: false
clearInterval: false
setInterval: false
setImmediate: false
clearImmediate: false
console: false
@@ -654,9 +654,10 @@ Buffer.prototype.equals = function equals(otherBuffer) {
return _compare(this, otherBuffer) === 0;
};

let INSPECT_MAX_BYTES = 50;
// Override how buffers are presented by util.inspect().
Buffer.prototype[customInspectSymbol] = function inspect(recurseTimes, ctx) {
const max = exports.INSPECT_MAX_BYTES;
const max = INSPECT_MAX_BYTES;
const actualMax = Math.min(max, this.length);
const remaining = this.length - max;
let str = this.hexSlice(0, actualMax).replace(/(.{2})/g, '$1 ').trim();
@@ -1089,19 +1090,25 @@ if (internalBinding('config').hasIntl) {
};
}

module.exports = exports = {
module.exports = {
Buffer,
SlowBuffer,
transcode,
INSPECT_MAX_BYTES: 50,

// Legacy
kMaxLength,
kStringMaxLength
};

Object.defineProperty(exports, 'constants', {
configurable: false,
enumerable: true,
value: constants
Object.defineProperties(module.exports, {
constants: {
configurable: false,
enumerable: true,
value: constants
},
INSPECT_MAX_BYTES: {
configurable: true,
enumerable: true,
get() { return INSPECT_MAX_BYTES; },
set(val) { INSPECT_MAX_BYTES = val; }
}
});
@@ -145,7 +145,7 @@ function createVerify(algorithm, options) {
return new Verify(algorithm, options);
}

module.exports = exports = {
module.exports = {
// Methods
createCipheriv,
createDecipheriv,
@@ -218,7 +218,7 @@ function getFipsForced() {
return 1;
}

Object.defineProperties(exports, {
Object.defineProperties(module.exports, {
createCipher: {
enumerable: false,
value: deprecate(createCipher,
@@ -124,6 +124,7 @@ const internalBindingWhitelist = new SafeSet([
let internalBinding;
{
const bindingObj = Object.create(null);
// eslint-disable-next-line no-global-assign
internalBinding = function internalBinding(module) {
let mod = bindingObj[module];
if (typeof mod !== 'object') {
@@ -129,7 +129,7 @@ function normalizeReferrerURL(referrer) {
return new URL(referrer).href;
}

module.exports = exports = {
module.exports = {
addBuiltinLibsToObject,
builtinLibs,
makeRequireFunction,
@@ -113,8 +113,8 @@ function timestamp() {
}

// Log is just a thin wrapper to console.log that prepends a timestamp
function log() {
console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
function log(...args) {
console.log('%s - %s', timestamp(), format(...args));
}

/**
@@ -218,7 +218,7 @@ function getSystemErrorName(err) {
}

// Keep the `exports =` so that various functions can still be monkeypatched
module.exports = exports = {
module.exports = {
_errnoException: errnoException,
_exceptionWithHostPort: exceptionWithHostPort,
_extend,
@@ -1,5 +1,9 @@
## Test-specific linter rules

env:
node: true
es6: true

rules:
# ECMAScript 6
# http://eslint.org/docs/rules/#ecmascript-6

This file was deleted.

@@ -1,3 +1,7 @@
env:
node: true
es6: true

rules:
comma-dangle:
- error

This file was deleted.

0 comments on commit de23055

Please sign in to comment.
You can’t perform that action at this time.