Skip to content

Commit

Permalink
change vars to consts
Browse files Browse the repository at this point in the history
  • Loading branch information
liady committed Aug 24, 2020
1 parent c012372 commit ef0ea26
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 74 deletions.
36 changes: 16 additions & 20 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
var utils = require('./utils');
const utils = require('./utils');

var scopedModuleRegex = new RegExp(
const scopedModuleRegex = new RegExp(
'@[a-zA-Z0-9][\\w-.]+/[a-zA-Z0-9][\\w-.]+([a-zA-Z0-9./]+)?',
'g'
);

function getModuleName(request, includeAbsolutePaths) {
var req = request;
var delimiter = '/';
let req = request;
const delimiter = '/';

if (includeAbsolutePaths) {
req = req.replace(/^.*?\/node_modules\//, '');
Expand All @@ -23,32 +23,28 @@ function getModuleName(request, includeAbsolutePaths) {

module.exports = function nodeExternals(options) {
options = options || {};
var mistakes = utils.validateOptions(options) || [];
const mistakes = utils.validateOptions(options) || [];
if (mistakes.length) {
mistakes.forEach(function (mistake) {
utils.error(
mistakes.map(function (mistake) {
return mistake.message;
})
);
mistakes.forEach((mistake) => {
utils.error(mistakes.map((mistake) => mistake.message));
utils.log(mistake.message);
});
}
var allowlist = [].concat(options.allowlist || []);
var binaryDirs = [].concat(options.binaryDirs || ['.bin']);
var importType = options.importType || 'commonjs';
var modulesDir = options.modulesDir || 'node_modules';
var modulesFromFile = !!options.modulesFromFile;
var includeAbsolutePaths = !!options.includeAbsolutePaths;
var additionalModuleDirs = options.additionalModuleDirs || [];
const allowlist = [].concat(options.allowlist || []);
const binaryDirs = [].concat(options.binaryDirs || ['.bin']);
const importType = options.importType || 'commonjs';
const modulesDir = options.modulesDir || 'node_modules';
const modulesFromFile = !!options.modulesFromFile;
const includeAbsolutePaths = !!options.includeAbsolutePaths;
const additionalModuleDirs = options.additionalModuleDirs || [];

// helper function
function isNotBinary(x) {
return !utils.contains(binaryDirs, x);
}

// create the node modules list
var nodeModules = modulesFromFile
let nodeModules = modulesFromFile
? utils.readFromPackageJson(options.modulesFromFile)
: utils.readDir(modulesDir).filter(isNotBinary);
additionalModuleDirs.forEach(function (additionalDirectory) {
Expand All @@ -69,7 +65,7 @@ module.exports = function nodeExternals(options) {
request = arg1.request;
callback = arg2;
}
var moduleName = getModuleName(request, includeAbsolutePaths);
const moduleName = getModuleName(request, includeAbsolutePaths);
if (
utils.contains(nodeModules, moduleName) &&
!utils.containsPattern(allowlist, request)
Expand Down
32 changes: 16 additions & 16 deletions test/library.spec.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
var nodeExternals = require('../index.js');
var utils = require('../utils.js');
var testUtils = require('./test-utils.js');
var mockNodeModules = testUtils.mockNodeModules;
var restoreMock = testUtils.restoreMock;
var context={};
var assertResult = testUtils.buildAssertion.bind(null, context);
var assertResultWebpack5 = testUtils.buildAssertionWebpack5.bind(null, context);
var chai = require('chai');
var expect = chai.expect;
const nodeExternals = require('../index.js');
const utils = require('../utils.js');
const testUtils = require('./test-utils.js');
const mockNodeModules = testUtils.mockNodeModules;
const restoreMock = testUtils.restoreMock;
const context={};
const assertResult = testUtils.buildAssertion.bind(null, context);
const assertResultWebpack5 = testUtils.buildAssertionWebpack5.bind(null, context);
const chai = require('chai');
const expect = chai.expect;

// Test basic functionality
describe('invocation with no settings', function() {
Expand Down Expand Up @@ -232,8 +232,8 @@ describe('when modules dir does not exist', function() {
mockNodeModules();
})
it('should not log ENOENT error', function() {
var log = global.console.log;
var errorLogged = false;
const log = global.console.log;
let errorLogged = false;

// wrap console.log to catch error message
global.console.log = function(error) {
Expand Down Expand Up @@ -299,24 +299,24 @@ describe('invocation with no settings - webpack 5', function() {

describe('validate options', function () {
it('should identify misspelled terms', function () {
var results = utils.validateOptions({ whitelist: [], moduledirs: [] });
const results = utils.validateOptions({ whitelist: [], moduledirs: [] });
expect(results.length).to.be.equal(2);
expect(results[0].correctTerm).to.be.equal('allowlist');
expect(results[1].correctTerm).to.be.equal('modulesDir');
});
it('should ignore duplications', function () {
var results = utils.validateOptions({ whitelist: [], moduledirs: [], allowlist: [] });
const results = utils.validateOptions({ whitelist: [], moduledirs: [], allowlist: [] });
expect(results.length).to.be.equal(1);
expect(results[0].correctTerm).to.be.equal('modulesDir');
});
it('should identify wrong casing', function () {
var results = utils.validateOptions({ allowList: [], modulesdir: [] });
const results = utils.validateOptions({ allowList: [], modulesdir: [] });
expect(results.length).to.be.equal(2);
expect(results[0].correctTerm).to.be.equal('allowlist');
expect(results[1].correctTerm).to.be.equal('modulesDir');
});
it('should no identify undefineds', function () {
var results = utils.validateOptions({ allowlist: undefined, modulesdir: [] });
const results = utils.validateOptions({ allowlist: undefined, modulesdir: [] });
expect(results.length).to.be.equal(1);
expect(results[0].correctTerm).to.be.equal('modulesDir');
});
Expand Down
30 changes: 15 additions & 15 deletions test/test-utils.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
var mockDir = require('mock-fs');
var nodeExternals = require('../index.js');
var webpack = require('webpack');
var fs = require('fs');
var ncp = require('ncp').ncp;
var path = require('path');
var relative = path.join.bind(path, __dirname);
var chai = require('chai');
var expect = chai.expect;
const mockDir = require('mock-fs');
const nodeExternals = require('../index.js');
const webpack = require('webpack');
const fs = require('fs');
const ncp = require('ncp').ncp;
const path = require('path');
const relative = path.join.bind(path, __dirname);
const chai = require('chai');
const expect = chai.expect;

/**
* Creates an assertion function that makes sure to output expectedResult when given moduleName
Expand Down Expand Up @@ -124,9 +124,9 @@ exports.webpackAssertion = function webpackAssertion(nodeExternalsConfig, extern
* @return {Promise}
*/
function generateWithWebpack(nodeExternalsConfig) {
var testDir = relative('test-webpack');
var outputFileName = 'bundle.js';
var outputFile = path.join(testDir, outputFileName);
const testDir = relative('test-webpack');
const outputFileName = 'bundle.js';
const outputFile = path.join(testDir, outputFileName);
return new Promise(function(resolve, reject) {
webpack({
entry: path.join(testDir, 'index.js'),
Expand All @@ -140,11 +140,11 @@ function generateWithWebpack(nodeExternalsConfig) {
'module-c' : path.join(testDir, './modules/module-c')
}
}
}, function(err, stats){
}, function(err){
if(err) {
reject(err);
} else {
var contents = fs.readFileSync(outputFile, 'utf-8');
const contents = fs.readFileSync(outputFile, 'utf-8');
fs.unlinkSync(outputFile);
resolve(contents);
}
Expand Down Expand Up @@ -173,7 +173,7 @@ function external(moduleName) {

function removeDir(dirName) {
if(fs.existsSync(dirName) ) {
fs.readdirSync(dirName).forEach(function(file, index){
fs.readdirSync(dirName).forEach(function(file){
fs.unlinkSync(path.join(dirName, file));
});
fs.rmdirSync(dirName);
Expand Down
10 changes: 5 additions & 5 deletions test/test-webpack/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
var x = require('module-a');
var y = require('module-b');
var z = require('module-c');
const x = require('module-a');
const y = require('module-b');
const z = require('module-c');

module.exports = {
x: x,
y: y,
z: z
}
z: z,
};
5 changes: 2 additions & 3 deletions test/webpack.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
var nodeExternals = require('../index.js');
var testUtils = require('./test-utils.js');
var webpackAssertion = testUtils.webpackAssertion
const testUtils = require('./test-utils.js');
const webpackAssertion = testUtils.webpackAssertion

// Test actual webpack output
describe('actual webpack bundling', function() {
Expand Down
30 changes: 15 additions & 15 deletions utils.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
var fs = require('fs');
var path = require('path');
const fs = require('fs');
const path = require('path');

exports.contains = function contains(arr, val) {
return arr && arr.indexOf(val) !== -1;
};

var atPrefix = new RegExp('^@', 'g');
const atPrefix = new RegExp('^@', 'g');
exports.readDir = function readDir(dirName) {
if (!fs.existsSync(dirName)) {
return [];
Expand Down Expand Up @@ -42,14 +42,14 @@ exports.readFromPackageJson = function readFromPackageJson(options) {
if (typeof options !== 'object') {
options = {};
}
var includeInBundle = options.exclude || options.includeInBundle;
var excludeFromBundle = options.include || options.excludeFromBundle;
const includeInBundle = options.exclude || options.includeInBundle;
const excludeFromBundle = options.include || options.excludeFromBundle;

// read the file
var packageJson;
let packageJson;
try {
var fileName = options.fileName || 'package.json';
var packageJsonString = fs.readFileSync(
const fileName = options.fileName || 'package.json';
const packageJsonString = fs.readFileSync(
path.resolve(process.cwd(), fileName),
'utf8'
);
Expand All @@ -58,7 +58,7 @@ exports.readFromPackageJson = function readFromPackageJson(options) {
return [];
}
// sections to search in package.json
var sections = [
let sections = [
'dependencies',
'devDependencies',
'peerDependencies',
Expand All @@ -73,7 +73,7 @@ exports.readFromPackageJson = function readFromPackageJson(options) {
});
}
// collect dependencies
var deps = {};
const deps = {};
sections.forEach(function (section) {
Object.keys(packageJson[section] || {}).forEach(function (dep) {
deps[dep] = true;
Expand All @@ -99,25 +99,25 @@ exports.containsPattern = function containsPattern(arr, val) {

exports.validateOptions = function (options) {
options = options || {};
var results = [];
var mistakes = {
const results = [];
const mistakes = {
allowlist: ['allowslist', 'whitelist', 'allow'],
importType: ['import', 'importype', 'importtype'],
modulesDir: ['moduledir', 'moduledirs'],
modulesFromFile: ['modulesfile'],
includeAbsolutePaths: ['includeAbsolutesPaths'],
additionalModuleDirs: ['additionalModulesDirs', 'additionalModulesDir'],
};
var optionsKeys = Object.keys(options);
var optionsKeysLower = optionsKeys.map(function (optionName) {
const optionsKeys = Object.keys(options);
const optionsKeysLower = optionsKeys.map(function (optionName) {
return optionName && optionName.toLowerCase();
});
Object.keys(mistakes).forEach(function (correctTerm) {
if (!options.hasOwnProperty(correctTerm)) {
mistakes[correctTerm]
.concat(correctTerm.toLowerCase())
.forEach(function (mistake) {
var ind = optionsKeysLower.indexOf(mistake.toLowerCase());
const ind = optionsKeysLower.indexOf(mistake.toLowerCase());
if (ind > -1) {
results.push({
message: `Option '${optionsKeys[ind]}' is not supported. Did you mean '${correctTerm}'?`,
Expand Down

0 comments on commit ef0ea26

Please sign in to comment.