SyntheticModule
This feature is only available with the --experimental-vm-modules
command flag enabled.
The vm.SyntheticModule
class provides the Synthetic Module Record as defined in the WebIDL specification. The purpose of synthetic modules is to provide a generic interface for exposing non-JavaScript sources to ECMAScript module graphs.
import vm from 'node:vm';
const source = '{ "a": 1 }';
const module = new vm.SyntheticModule(['default'], function() {
const obj = JSON.parse(source);
this.setExport('default', obj);
});
// Use `module` in linking...
Content copied to clipboard
Since
v13.0.0, v12.16.0
Constructors
Link copied to clipboard
constructor(exportNames: <Error class: unknown class><String>, evaluateCallback: () -> Unit, options: SyntheticModuleOptions = definedExternally)
Creates a new SyntheticModule
instance.
Properties
Link copied to clipboard
The specifiers of all dependencies of this module. The returned array is frozen to disallow any changes to it.
Link copied to clipboard
The identifier of the current module, as set in the constructor.
Link copied to clipboard
The current status of the module. Will be one of:
Functions
Link copied to clipboard
fun evaluate(options: ModuleEvaluateOptions = definedExternally): <Error class: unknown class><<Error class: unknown class>>
Evaluate the module.
Link copied to clipboard
Link module dependencies. This method must be called before evaluation, and can only be called once per module.