createLibrary function

Library createLibrary(
  1. EnvSettings envSettings
)

Implementation

Library createLibrary(EnvSettings envSettings) {
  final libraryBuilder = LibraryBuilder();
  final classBuilder = ClassBuilder();

  classBuilder
    ..name = envSettings.className
    ..constructors.add(Constructor((b) => b..name = '_'));

  // Write the fields to the library
  envSettings.fields.forEach((envFieldName, fieldSettings) {
    FieldInjector.from(fieldSettings, envFieldName)
        .inject(libraryBuilder, classBuilder);
  });

  // Write the env class in the first place in the library
  libraryBuilder.body.insert(0, classBuilder.build());

  return libraryBuilder.build();
}