encodeModule method
Encode Dart source into a single ball Module, accumulating used
base-function names for later use by buildStdModules.
Unlike encode, this does not reset _usedBaseFunctions, so you
can call it for every file in a package and then call buildStdModules
once to obtain consolidated std modules for the whole package.
moduleName is the ball module name to assign (e.g. 'lib.src.utils').
uriToModuleOverrides maps raw import URI strings to ball module names,
allowing relative and same-package imports to resolve correctly across
files. For example:
{'src/models.dart': 'lib.src.models', '../utils.dart': 'lib.utils'}
Returns the encoded Module plus any external-import stub modules that
were not covered by uriToModuleOverrides.
Implementation
({Module module, List<Module> importStubs}) encodeModule(
String source, {
required String moduleName,
Map<String, String> uriToModuleOverrides = const {},
}) {
final result = parseString(
content: source,
throwIfDiagnostics: false,
featureSet: FeatureSet.latestLanguageVersion(),
);
return encodeModuleFromUnit(
result.unit,
moduleName: moduleName,
uriToModuleOverrides: uriToModuleOverrides,
);
}