Add RED.import to support importing ES6 modules

This commit is contained in:
Nick O'Leary
2021-07-14 19:18:39 +01:00
parent 65081767bf
commit 7fd17b4ec0
3 changed files with 211 additions and 175 deletions

View File

@@ -50,6 +50,16 @@ function requireModule(name) {
return require("./externalModules").require(name);
}
}
function importModule(name) {
var moduleInfo = require("./index").getModuleInfo(name);
if (moduleInfo && moduleInfo.path) {
var relPath = path.relative(__dirname, moduleInfo.path);
return import(relPath);
} else {
// Require it here to avoid the circular dependency
return require("./externalModules").import(name);
}
}
function createNodeApi(node) {
var red = {
@@ -61,6 +71,7 @@ function createNodeApi(node) {
util: runtime.util,
version: runtime.version,
require: requireModule,
import: importModule,
comms: {
publish: function(topic,data,retain) {
events.emit("comms",{