huang12zheng / fair_gallery

fair 🌰

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

fair_gallery

掘金文章地址

Fair 使用例子

映射自定义

  • 执行 bin/generated_module/app.dart 生成项目中代码对应的 组件,api 和 回调映射,项目中有新增文件需要生成的时候执行。
  • 执行 bin/generated_module/flutter.dart 生成 当前使用的 Flutter 源码中对应的 组件,api 和 回调映射,只用生成一次。
  • 执行 bin/generated_module/packages.dart 生成项目中引用的三方库中对应的 组件,api 和 回调映射,有新的三方库引入的时候执行。

bin/generated_module/binding.dart 中是给 bin/binding/app.dartbin/generated_module/packages.dart 使用,它的作用类似于

FairBinding 注解的用处

自动生成与 js 交互的插件

lib/src/plugin 中增加新的 plugin, 比如

import 'package:fair/fair.dart';
import 'package:flutter/foundation.dart';

mixin DebugPlugin implements FairCommonPluginMixin {
  Future<dynamic> jsPrint(dynamic map) => request(
        map,
        (dynamic requestMap) async {
          if (kDebugMode) {
            debugPrint('来自js的参数:$requestMap');
          }
          return null;
        },
      );
}

运行 bin/fair_common_plugin.dart, 将自动生成 fair_common_plugin.jsfair_common_plugin.dart

一些脚本

生成 Dart 基础类型的语法糖

执行 bin/dart_core.dart 生成基础类型的语法糖。

截屏2023-04-12 18.22.31.png

将扩展方法转换成语法糖

用于旧项目里面的一些扩展方法,将它们转换成语法糖使用。执行 bin/extension.dart

import 'package:fair_gallery/src/extension/string.dart';

/// StringExtension Sugar
class SugarStringExtension {
  SugarStringExtension._();

  static String test(
    String input,
  ) =>
      input.test();
}

build.sh

生成 Fair 产物,并且复制到 assets/fair 下面

new_page.sh

新增页面,自动生成路由,资源文件的映射

About

fair 🌰


Languages

Language:Dart 99.8%Language:JavaScript 0.1%Language:Ruby 0.1%Language:Shell 0.0%Language:Swift 0.0%Language:Kotlin 0.0%Language:Objective-C 0.0%