chore: refact dart code generation (#3726)

master
Kevin Wan 1 year ago committed by GitHub
parent da67ea2300
commit 9c1aa6da3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -15,8 +15,8 @@ import '../data/{{with .Info}}{{getBaseName .Title}}{{end}}.dart';
{{range .Routes}} {{range .Routes}}
/// --{{.Path}}-- /// --{{.Path}}--
/// ///
/// 请求: {{with .RequestType}}{{.Name}}{{end}} /// request: {{with .RequestType}}{{.Name}}{{end}}
/// 返回: {{with .ResponseType}}{{.Name}}{{end}} /// response: {{with .ResponseType}}{{.Name}}{{end}}
Future {{pathToFuncName .Path}}( {{if ne .Method "get"}}{{with .RequestType}}{{.Name}} request,{{end}}{{end}} Future {{pathToFuncName .Path}}( {{if ne .Method "get"}}{{with .RequestType}}{{.Name}} request,{{end}}{{end}}
{Function({{with .ResponseType}}{{.Name}}{{end}}) ok, {Function({{with .ResponseType}}{{.Name}}{{end}}) ok,
Function(String) fail, Function(String) fail,
@ -35,7 +35,7 @@ import '../data/{{with .Service}}{{.Name}}{{end}}.dart';
/// {{.Name}} /// {{.Name}}
{{range $i, $Route := .Routes}} {{range $i, $Route := .Routes}}
/// --{{.Path}}-- /// --{{.Path}}--
/// --{{.AtDoc}}-- ///
/// request: {{with .RequestType}}{{.Name}}{{end}} /// request: {{with .RequestType}}{{.Name}}{{end}}
/// response: {{with .ResponseType}}{{.Name}}{{end}} /// response: {{with .ResponseType}}{{.Name}}{{end}}
Future {{normalizeHandlerName .Handler}}( Future {{normalizeHandlerName .Handler}}(

@ -52,7 +52,7 @@ class {{.Name}} {
{{else if isClassListType .Type.Name}} {{else if isClassListType .Type.Name}}
((m['{{getPropertyFromMember .}}'] {{appendDefaultEmptyValue .Type.Name}}) as List<dynamic>).map((i) => {{getCoreType .Type.Name}}.fromJson(i)).toList() ((m['{{getPropertyFromMember .}}'] {{appendDefaultEmptyValue .Type.Name}}) as List<dynamic>).map((i) => {{getCoreType .Type.Name}}.fromJson(i)).toList()
{{else if isMapType .Type.Name}} {{else if isMapType .Type.Name}}
{{if isNumberType .Type.Name}}num{{else}}{{.Type.Name}}{{end}}.from(m['{{getPropertyFromMember .}}'] ?? {}) {{if isNumberType .Type.Name}}num{{else}}{{.Type.Name}}{{end}}.from(m['{{getPropertyFromMember .}}'] ?? {})
{{else}} {{else}}
{{.Type.Name}}.fromJson(m['{{getPropertyFromMember .}}']){{end}} {{.Type.Name}}.fromJson(m['{{getPropertyFromMember .}}']){{end}}
,{{end}} ,{{end}}
@ -64,7 +64,7 @@ class {{.Name}} {
{{if isDirectType .Type.Name}} {{if isDirectType .Type.Name}}
{{lowCamelCase .Name}} {{lowCamelCase .Name}}
{{else if isMapType .Type.Name}} {{else if isMapType .Type.Name}}
{{lowCamelCase .Name}} {{lowCamelCase .Name}}
{{else if isClassListType .Type.Name}} {{else if isClassListType .Type.Name}}
{{lowCamelCase .Name}}{{if isNullableType .Type.Name}}?{{end}}.map((i) => i{{if isListItemsNullable .Type.Name}}?{{end}}.toJson()) {{lowCamelCase .Name}}{{if isNullableType .Type.Name}}?{{end}}.map((i) => i{{if isListItemsNullable .Type.Name}}?{{end}}.toJson())
{{else}} {{else}}

@ -3,24 +3,24 @@ package dartgen
import "text/template" import "text/template"
var funcMap = template.FuncMap{ var funcMap = template.FuncMap{
"appendNullCoalescing": appendNullCoalescing,
"appendDefaultEmptyValue": appendDefaultEmptyValue,
"extractPositionalParamsFromPath": extractPositionalParamsFromPath,
"getBaseName": getBaseName, "getBaseName": getBaseName,
"getCoreType": getCoreType,
"getPropertyFromMember": getPropertyFromMember, "getPropertyFromMember": getPropertyFromMember,
"isDirectType": isDirectType, "hasUrlPathParams": hasUrlPathParams,
"isAtomicListType": isAtomicListType,
"isAtomicType": isAtomicType, "isAtomicType": isAtomicType,
"isNumberType": isNumberType, "isDirectType": isDirectType,
"isClassListType": isClassListType, "isClassListType": isClassListType,
"isAtomicListType": isAtomicListType,
"isListItemsNullable": isListItemsNullable, "isListItemsNullable": isListItemsNullable,
"isMapType": isMapType,
"isNullableType": isNullableType, "isNullableType": isNullableType,
"appendNullCoalescing": appendNullCoalescing, "isNumberType": isNumberType,
"appendDefaultEmptyValue": appendDefaultEmptyValue,
"getCoreType": getCoreType,
"lowCamelCase": lowCamelCase, "lowCamelCase": lowCamelCase,
"normalizeHandlerName": normalizeHandlerName,
"hasUrlPathParams": hasUrlPathParams,
"extractPositionalParamsFromPath": extractPositionalParamsFromPath,
"makeDartRequestUrlPath": makeDartRequestUrlPath, "makeDartRequestUrlPath": makeDartRequestUrlPath,
"isMapType": isMapType, "normalizeHandlerName": normalizeHandlerName,
} }
const ( const (
@ -29,28 +29,32 @@ import 'dart:convert';
import '../vars/kv.dart'; import '../vars/kv.dart';
import '../vars/vars.dart'; import '../vars/vars.dart';
/// 发送POST请求. /// Send GET request.
/// ///
/// data:为你要post的结构体我们会帮你转换成json字符串; /// ok: the function that will be called on success.
/// ok函数:请求成功的时候调用fail函数请求失败的时候会调用eventually函数无论成功失败都会调用 /// failthe fuction that will be called on failure.
Future apiPost(String path, dynamic data, /// eventuallythe function that will be called regardless of success or failure.
Future apiGet(String path,
{Map<String, String> header, {Map<String, String> header,
Function(Map<String, dynamic>) ok, Function(Map<String, dynamic>) ok,
Function(String) fail, Function(String) fail,
Function eventually}) async { Function eventually}) async {
await _apiRequest('POST', path, data, await _apiRequest('GET', path, null,
header: header, ok: ok, fail: fail, eventually: eventually); header: header, ok: ok, fail: fail, eventually: eventually);
} }
/// 发送GET请求. /// Send POST request.
/// ///
/// ok函数:请求成功的时候调用fail函数请求失败的时候会调用eventually函数无论成功失败都会调用 /// data: the data to post, it will be marshaled to json automatically.
Future apiGet(String path, /// ok: the function that will be called on success.
/// failthe fuction that will be called on failure.
/// eventuallythe function that will be called regardless of success or failure.
Future apiPost(String path, dynamic data,
{Map<String, String> header, {Map<String, String> header,
Function(Map<String, dynamic>) ok, Function(Map<String, dynamic>) ok,
Function(String) fail, Function(String) fail,
Function eventually}) async { Function eventually}) async {
await _apiRequest('GET', path, null, await _apiRequest('POST', path, data,
header: header, ok: ok, fail: fail, eventually: eventually); header: header, ok: ok, fail: fail, eventually: eventually);
} }
@ -213,11 +217,11 @@ Future _apiRequest(String method, String path, dynamic data,
}` }`
tokensFileContent = `class Tokens { tokensFileContent = `class Tokens {
/// 用于访问的token, 每次请求都必须带在Header里面 /// the token used to access, it must be carried in the header of each request
final String accessToken; final String accessToken;
final int accessExpire; final int accessExpire;
/// 用于刷新token /// the token used to refresh
final String refreshToken; final String refreshToken;
final int refreshExpire; final int refreshExpire;
final int refreshAfter; final int refreshAfter;
@ -248,11 +252,11 @@ Future _apiRequest(String method, String path, dynamic data,
` `
tokensFileContentV2 = `class Tokens { tokensFileContentV2 = `class Tokens {
/// 用于访问的token, 每次请求都必须带在Header里面 /// the token used to access, it must be carried in the header of each request
final String accessToken; final String accessToken;
final int accessExpire; final int accessExpire;
/// 用于刷新token /// the token used to refresh
final String refreshToken; final String refreshToken;
final int refreshExpire; final int refreshExpire;
final int refreshAfter; final int refreshAfter;

Loading…
Cancel
Save