encodeModuleFromUnit method

({List<Module> importStubs, Module module}) encodeModuleFromUnit(
  1. CompilationUnit unit, {
  2. required String moduleName,
  3. Map<String, String> uriToModuleOverrides = const {},
})

Variant of encodeModule that accepts a pre-parsed ast.CompilationUnit.

Use this when you have already parsed the source (e.g. to inspect part of directives) and want to avoid parsing it a second time.

Implementation

({Module module, List<Module> importStubs}) encodeModuleFromUnit(
  ast.CompilationUnit unit, {
  required String moduleName,
  Map<String, String> uriToModuleOverrides = const {},
}) {
  _prefixToModule.clear();
  _importedModules.clear();
  _importDetails.clear();
  _exportDetails.clear();
  _moduleName = moduleName;
  // NOTE: _usedBaseFunctions is intentionally NOT cleared here so
  // PackageEncoder can accumulate across files.

  _resolveImports(unit, uriOverrides: uriToModuleOverrides);
  return _buildModule(unit, moduleName: moduleName);
}