Skip to content

Commit

Permalink
module: use internal/errors.js in module.require
Browse files Browse the repository at this point in the history
PR-URL: #18359
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  • Loading branch information
joyeecheung committed Jan 29, 2018
1 parent 6ef1730 commit b217154
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 24 deletions.
13 changes: 9 additions & 4 deletions lib/module.js
Original file line number Diff line number Diff line change
Expand Up @@ -603,10 +603,15 @@ Module.prototype.load = function(filename) {

// Loads a module at the given file path. Returns that module's
// `exports` property.
Module.prototype.require = function(path) {
assert(path, 'missing path');
assert(typeof path === 'string', 'path must be a string');
return Module._load(path, this, /* isMain */ false);
Module.prototype.require = function(id) {
if (typeof id !== 'string') {
throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'id', 'string', id);
}
if (id === '') {
throw new errors.Error('ERR_INVALID_ARG_VALUE',
'id', id, 'must be a non-empty string');
}
return Module._load(id, this, /* isMain */ false);
};


Expand Down
24 changes: 15 additions & 9 deletions test/parallel/test-module-loading-error.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,22 @@ assert.throws(
}
);

common.expectsError(
require,
{
code: 'ERR_ASSERTION',
message: /^missing path$/
});
const re = /^The "id" argument must be of type string\. Received type \w+$/;
[1, false, null, undefined, {}].forEach((value) => {
common.expectsError(
() => { require(value); },
{
type: TypeError,
code: 'ERR_INVALID_ARG_TYPE',
message: re
});
});


common.expectsError(
() => { require({}); },
() => { require(''); },
{
code: 'ERR_ASSERTION',
message: /^path must be a string$/
type: Error,
code: 'ERR_INVALID_ARG_VALUE',
message: 'The argument \'id\' must be a non-empty string. Received \'\''
});
11 changes: 0 additions & 11 deletions test/sequential/test-module-loading.js
Original file line number Diff line number Diff line change
Expand Up @@ -297,17 +297,6 @@ try {
}


// require() must take string, and must be truthy
assert.throws(function() {
console.error('require non-string');
require({ foo: 'bar' });
}, /path must be a string/);

assert.throws(function() {
console.error('require empty string');
require('');
}, /missing path/);

process.on('exit', function() {
assert.ok(a.A instanceof Function);
assert.strictEqual(a.A(), 'A done');
Expand Down

0 comments on commit b217154

Please sign in to comment.