AstBundle class

A transportable unit containing an entry point and all required modules.

AstBundle is the primary distribution format for pre-parsed D4rt scripts. It encapsulates one or more SCompilationUnit modules that can be executed by D4rtRunner without requiring the Dart analyzer.

Serialization Formats

Format Methods Use Case
JSON toJson / fromJson Debugging, tool integration
Bytes toBytes / fromBytes Network transfer, in-memory
ZIP toZip / fromZip File distribution (.ast)
File saveToFile / fromFile Disk I/O with auto-detection

Example

// Create and save a bundle
final bundle = AstBundle(
  entryPointUri: 'bin/main.dart',
  modules: {'bin/main.dart': mainAst, 'lib/utils.dart': utilsAst},
);
bundle.saveToFile('my_script.ast');

// Load and execute
final loaded = AstBundle.fromFile('my_script.ast');
final runner = D4rtRunner();
runner.execute(ast: loaded.entryPoint);

Constructors

AstBundle({required String entryPointUri, required Map<String, SCompilationUnit> modules, Map<String, String>? sources})
Creates an AstBundle with the given entry point and modules.
AstBundle.fromBytes(List<int> bytes)
Deserializes a bundle from gzip-compressed JSON bytes.
factory
AstBundle.fromFile(String path)
Loads a bundle from a file.
factory
AstBundle.fromJson(Map<String, dynamic> json)
Deserializes a bundle from a JSON map.
factory
AstBundle.fromZip(List<int> bytes)
Deserializes a bundle from ZIP archive bytes.
factory

Properties

entryPoint → SCompilationUnit
The entry point SCompilationUnit.
no setter
entryPointUri → String
URI identifying the entry point module.
final
hashCode → int
The hash code for this object.
no setterinherited
isSingleModule → bool
Whether this bundle contains only the entry point module.
no setter
moduleCount → int
Number of modules in this bundle.
no setter
modules → Map<String, SCompilationUnit>
All modules in this bundle, keyed by their URI.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sources → Map<String, String>?
Optional Dart source code for each module, keyed by URI.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
saveToFile(String path) → void
Saves this bundle to a file in ZIP archive format.
toBytes() → List<int>
Serializes this bundle as gzip-compressed JSON bytes.
toJson() → Map<String, dynamic>
Serializes this bundle to a JSON-compatible map.
toString() → String
A string representation of this object.
override
toZip() → List<int>
Serializes this bundle as a ZIP archive.

Operators

operator ==(Object other) → bool
The equality operator.
inherited