index.js 566 B

12345678910111213141516171819202122
  1. 'use strict';
  2. const builtinModules = require('builtin-modules');
  3. const moduleSet = new Set(builtinModules);
  4. const NODE_PROTOCOL = 'node:';
  5. module.exports = moduleName => {
  6. if (typeof moduleName !== 'string') {
  7. throw new TypeError('Expected a string');
  8. }
  9. if (moduleName.startsWith(NODE_PROTOCOL)) {
  10. moduleName = moduleName.slice(NODE_PROTOCOL.length);
  11. }
  12. const slashIndex = moduleName.indexOf('/');
  13. if (slashIndex !== -1 && slashIndex !== moduleName.length - 1) {
  14. moduleName = moduleName.slice(0, slashIndex);
  15. }
  16. return moduleSet.has(moduleName);
  17. };