You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
526 B
23 lines
526 B
'use strict';
|
|
const builtinModules = require('builtin-modules');
|
|
|
|
const moduleSet = new Set(builtinModules);
|
|
const NODE_PROTOCOL = 'node:';
|
|
|
|
module.exports = moduleName => {
|
|
if (typeof moduleName !== 'string') {
|
|
throw new TypeError('Expected a string');
|
|
}
|
|
|
|
if (moduleName.startsWith(NODE_PROTOCOL)) {
|
|
moduleName = moduleName.slice(NODE_PROTOCOL.length);
|
|
}
|
|
|
|
const slashIndex = moduleName.indexOf('/');
|
|
if (slashIndex !== -1) {
|
|
moduleName = moduleName.slice(0, slashIndex);
|
|
}
|
|
|
|
return moduleSet.has(moduleName);
|
|
};
|