loadAsset method

Future<void> loadAsset(
  1. String assetPath, {
  2. bool overrideExisting = true,
  3. bool expand = true,
})

Load from a bundled Flutter asset (works on all platforms, incl. Web).

Example:

  1. Add to pubspec.yaml: assets: - assets/.env
  2. await env.loadAsset('assets/.env');

Implementation

Future<void> loadAsset(
  String assetPath, {
  bool overrideExisting = true,
  bool expand = true,
}) async {
  String contents;
  try {
    contents = await rootBundle.loadString(assetPath);
  } on FlutterError catch (e, st) {
    _logger.error('ENV asset not found: "$assetPath"', e, st);
    rethrow;
  }
  final parsed = _parse(contents);
  _merge(parsed, overrideExisting: overrideExisting);
  if (expand) _expandAll();
  _logger.info('Loaded ${parsed.length} keys from asset "$assetPath".');
}