# This configures how `build_runner` and associated builders should behave. # For more information, see https://pub.dev/packages/build_config targets: $default: # Reducing sources makes the build slightly faster (some of these are required # to exist in the default target). sources: - lib/** - web/** - "tool/**" - pubspec.yaml - lib/$lib$ - $package$ builders: drift_dev: # These options change how drift generates code options: # Drift analyzes SQL queries at compile-time. For this purpose, it needs to know which sqlite3 # features will be available. We depend on `sqlite3_flutter_libs`, which lets us use the latest # version with fts5 enabled. sql: dialect: sqlite options: version: "3.38" modules: [fts5] # Configuring this builder isn't required for most apps. In our case, we # want to compile the web worker in `web/worker.dart` to JS and we use the # build system for that. build_web_compilers:entrypoint: generate_for: - web/worker.dart options: compiler: dart2js # JS outputs by the build system are private, we use a `build_to: source` builder # afterwards to make them visible in `web/`. copy_js: auto_apply_builders: false dependencies: [$default] builders: ":copy_compiled_worker_js": enabled: true # build_web_compilers writes a hidden asset, but we want an asset in `web/` for # flutter to see. So, copy that output. Again, this is not needed for most apps. builders: copy_compiled_worker_js: import: 'tool/builder.dart' builder_factories: ["CopyCompiledJs.new"] build_to: source build_extensions: {'web/worker.dart.js': ['web/drift_worker.js']}