Skip to content

BreX900/index_generator

Repository files navigation

Index Generator

Automatically generate index / barrel files with all the exports needed for your library.

Stable release

There will be no more breaking changes

Usage

  1. Activate: dart/flutter pub global activate index_generator

  2. Create index_generator.yaml file or add in your pubspec.yaml file:

index_generator:
  exclude:
    - "**.g.dart"
  # Define the paths of the folders in which to generate the index files
  libraries:
    - directory_path: lib
  1. You can generate index files with: <dart|flutter> pub global run index_generator

Advance Usage

See more examples

index_generator:
  # You can define the default name of the index file
  default_file_name: barrel
  # You can define general filters for all indexes
  exclude:
    - "**.g.dart"
    - "{_,**/_}*.dart"
  libraries:
    - directory_path: lib
      # You can define specific filters for this index
      include:
        # You can define specific export folders paths
        - "src/**"
      # You can define specific export dart packages in index file.
      exports:
        - package: package:args/args.dart
          show:
            - ArgResults
          hide:
            - ArgParser
    - directory_path: generator
      # You can define the name of the index file
      file_name: main
      # Disable/Enable the generated code disclaimer
      disclaimer: false
      # Include/Exclude the library keyword in generated file
      include_library: true
      # Comments added on the generated file, like copyright
      comments: |
        Copyright (c) 2020 BreX900
      # Documentation added on the generated file above the library name
      # Note: docs are only included when include_library is true
      docs: |
        Automatically generate index / barrel / library files
        with all the export needed for your library.
      # You can define the name of the library to use within the index
      name: index_generator
      # Use package-style exports for internal files (e.g., 'package:app/main.dart' instead of 'main.dart')
      use_package_exports: true
      # Custom output path for the generated index file (optional)
      # If not specified, the file will be created in the directory_path
      output_path: lib/generated
  • directory_path: Path in which to create the index file. All filters will get the relative path from this directory
  • output_path: Custom output path for the generated index file. If not specified, the file will be created in the directory_path
  • file_name: Prioritize ownership in folders, otherwise it will use the one defined in the generator with default_file_name key. If it is missing, if the folder is lib it will use the package name otherwise the folder name
  • name: The name of the library used in the index dart file by the library keyword
  • include_library: Include or exclude the library keyword in the generated file. Defaults to true
  • docs: Documentation comments added above the library declaration. Only included when include_library is true
  • include | exclude: You can define filters that exclude or include files to be included in the index. The filters are passed paths relative to the index file. You can use Glob expressions.
  • exports: You can define specific export dart packages in index file. You can use package to export a dart file package or dart core library.
  • use_package_exports: When enabled, generates package-style exports for internal files (e.g., 'package:app/main.dart' instead of 'main.dart'). This is useful for libraries that want to ensure consistent import paths. Defaults to false.

Command

--help command output:


-s, --settings=<Define a yaml file path.> If not present use the "index_generator.yaml" file if it exists otherwise use the "pubspec.yaml" file.
-v, --[no-]verbose Print verbose logs
-h, --help

Build runner

index_generator can be run via build_runner. To do so, add the following dependancies:

dev_dependencies:
  build_runner: ^2.3.3
  index_generator: ^3.5.0

and enable it in build.yaml file

targets:
  $default:
    builders:
      index_generator:
        enabled: true

To generate use <dart|flutter> pub run build_runner <build|watch>

Features and bugs

Please file feature requests and bugs at the issue tracker.

Extra

  • mek_assets: Automatically generate dart classes / flutter pubspec entries for your assets files.
  • mek_data_class: Generate hashCode, ==, toString, copyWith and change methods with low code.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages