WebEntrypointBuilder.fromOptions constructor

WebEntrypointBuilder.fromOptions(
  1. BuilderOptions options
)

Implementation

factory WebEntrypointBuilder.fromOptions(BuilderOptions options) {
  validateOptions(
      options.config, _supportedOptions, 'build_web_compilers:entrypoint',
      deprecatedOptions: _deprecatedOptions);
  var compilerOption =
      options.config[_compilerOption] as String? ?? 'dartdevc';
  var compiler = switch (compilerOption) {
    'dartdevc' => WebCompiler.DartDevc,
    'dart2js' => WebCompiler.Dart2Js,
    _ => throw ArgumentError.value(compilerOption, _compilerOption,
        'Only `dartdevc` and `dart2js` are supported.')
  };

  if (options.config[_dart2jsArgsOption] is! List) {
    var message = options.config[_dart2jsArgsOption] is String
        ? 'There may have been a failure decoding as JSON, expected a list'
        : 'Expected a list';
    throw ArgumentError.value(
        options.config[_dart2jsArgsOption], _dart2jsArgsOption, message);
  }
  var dart2JsArgs = (options.config[_dart2jsArgsOption] as List?)
          ?.map((arg) => '$arg')
          .toList() ??
      const <String>[];

  return WebEntrypointBuilder(compiler,
      dart2JsArgs: dart2JsArgs,
      nativeNullAssertions:
          options.config[_nativeNullAssertionsOption] as bool?);
}