runCommonJs method

Future<String> runCommonJs(
  1. String source, {
  2. String name = '<commonjs>',
  3. Duration? timeout,
})

Executes a minimal CommonJS module in the current runtime.

This compatibility layer supports require(), module.exports, exports, relative path resolution, and a runtime-scoped CommonJS module cache. It is intentionally not a full Node/npm resolver.

Implementation

Future<String> runCommonJs(
  String source, {

  /// 根模块名称,用于错误堆栈、source map 匹配和相对 `require` 解析。
  String name = '<commonjs>',

  /// 从模块任务入队开始计算的总时限,包含排队和执行时间。
  ///
  /// 当前不包含入队前的模块懒加载、源码读取和依赖图构建。
  Duration? timeout,
}) async {
  final validName = _validateModuleName(name);
  final modules = await _buildModuleGraph(
    source,
    validName,
    _commonJsSpecifiers,
    JsModuleFormat.commonJs,
  );
  _moduleDebugNames.addAll(modules.keys);
  return _enqueue(
    _wrapCommonJsModule(source, validName, modules),
    timeout: timeout,
    name: validName,
  );
}