bindings_builder.dart 706 Bytes
import 'package:get/get.dart';

typedef BindingBuilderCallback = void Function();

/// 补回 GetX 新版中被移除的 BindingsBuilder。
/// 新版 get fork 删除了 BindingsBuilder,此类提供兼容替代。
// ignore: deprecated_member_use
class BindingsBuilder<T> extends Bindings {
  final BindingBuilderCallback builder;

  BindingsBuilder(this.builder);

  /// 快捷方式:注册单个 Controller(使用 Get.put)
  factory BindingsBuilder.put(
    T Function() create, {
    String? tag,
    bool permanent = false,
  }) {
    return BindingsBuilder(
      () => Get.put<T>(create(), tag: tag, permanent: permanent),
    );
  }

  @override
  void dependencies() {
    builder();
  }
}