Add support for node: prefixed modules in function node

This commit is contained in:
Nick O'Leary
2025-02-28 17:34:01 +00:00
parent 2feb290ae3
commit b8fa468559
2 changed files with 14 additions and 15 deletions

View File

@@ -92,7 +92,7 @@ function requireModule(module) {
const parsedModule = parseModuleName(module);
if (BUILTIN_MODULES.indexOf(parsedModule.module) !== -1) {
if (parsedModule.builtin) {
return require(parsedModule.module + parsedModule.subpath);
}
if (!knownExternalModules[parsedModule.module]) {
@@ -113,7 +113,7 @@ function importModule(module) {
const parsedModule = parseModuleName(module);
if (BUILTIN_MODULES.indexOf(parsedModule.module) !== -1) {
if (parsedModule.builtin) {
return import(parsedModule.module + parsedModule.subpath);
}
if (!knownExternalModules[parsedModule.module]) {
@@ -135,15 +135,22 @@ function importModule(module) {
}
function parseModuleName(module) {
var match = /((?:@[^/]+\/)?[^/@]+)(\/[^/@]+)?(?:@([\s\S]+))?/.exec(module);
const match = /((?:@[^/]+\/)?[^/@]+)(\/[^/@]+)?(?:@([\s\S]+))?/.exec(module);
if (match) {
const moduleName = match[1]
let isBuiltIn = false
if (/^node:/.test(moduleName)) {
isBuiltIn = BUILTIN_MODULES.includes(moduleName.substring(5))
} else {
isBuiltIn = BUILTIN_MODULES.includes(moduleName)
}
return {
spec: module,
module: match[1],
module: moduleName,
subpath: match[2] || '',
version: match[3],
builtin: BUILTIN_MODULES.indexOf(match[1]) !== -1,
known: !!knownExternalModules[match[1]]
builtin: isBuiltIn,
known: !!knownExternalModules[moduleName]
}
}
return null;