diff --git a/.editorconfig b/.editorconfig index fa73e82..a49691e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,3 +11,5 @@ indent_size = 2 indent_size = 2 [*.zig] indent_size = 4 +[*.dart] +indent_size = 2 diff --git a/src/targets/dart.ts b/src/targets/dart.ts index 609b361..483bf80 100644 --- a/src/targets/dart.ts +++ b/src/targets/dart.ts @@ -26,7 +26,9 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { } if (!this.options.dart_library_name) { - throw new Error("Setting dart_library_name is required for DART target!"); + throw new Error( + "Setting dart_library_name is required for DART target!" + ); } } @@ -35,7 +37,7 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { } generateImports(a: lineAppender, def: TypeDefinition | ServiceDefinition) { - a(0, `import "./base.dart";`) + a(0, `import "./base.dart";`); def.depends.forEach((dep) => { a(0, this.getImport(dep)); }); @@ -50,7 +52,7 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { } generateType(definition: TypeDefinition): void { - const { a, getResult } = LineAppender(); + const { a, getResult } = LineAppender(2); this.generateImports(a, definition); @@ -62,7 +64,8 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { } else if (field.map) { a( 1, - `Map<${toDartType(field.map)},${toDartType(field.type)}>? ${field.name + `Map<${toDartType(field.map)},${toDartType(field.type)}>? ${ + field.name };` ); } else { @@ -85,7 +88,10 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { if (field.array) { a(3, `this.${field.name} = [];`); a(3, `(json["${field.name}"] as List).forEach((e) => {`); - a(4, `this.${field.name}!.add(${this.getTypeParse(field.type, "e")})`); + a( + 4, + `this.${field.name}!.add(${this.getTypeParse(field.type, "e")})` + ); a(3, `});`); } else if (field.map) { a(3, `this.${field.name} = {};`); @@ -95,12 +101,21 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { field.map )},dynamic>).forEach((key, value) => {` ); - a(4, `this.${field.name}![key] = ${this.getTypeParse(field.type, "value")}`); + a( + 4, + `this.${field.name}![key] = ${this.getTypeParse( + field.type, + "value" + )}` + ); a(3, `});`); } else { a( 3, - `this.${field.name} = ${this.getTypeParse(field.type, `json["${field.name}"]`)};` + `this.${field.name} = ${this.getTypeParse( + field.type, + `json["${field.name}"]` + )};` ); } a(2, `} else {`); @@ -142,7 +157,7 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { } generateEnum(definition: EnumDefinition): void { - const { a, getResult } = LineAppender(); + const { a, getResult } = LineAppender(2); a(0, `enum ${definition.name} {`); for (const entry of definition.values) { @@ -179,7 +194,7 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { } generateServiceClient(definition: ServiceDefinition): void { - const { a, getResult } = LineAppender(); + const { a, getResult } = LineAppender(2); this.generateImports(a, definition); a(0, `import "./service_client.dart";`); @@ -187,30 +202,57 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { a(0, `class ${definition.name}Client extends Service {`); a(0, ``); - a(1, `${definition.name}Client(ServiceProvider provider):super(provider, "${definition.name}");`); + a( + 1, + `${definition.name}Client(ServiceProvider provider):super(provider, "${definition.name}");` + ); a(0, ``); for (const func of definition.functions) { - const args = func.inputs.map(inp => - (inp.array ? `List<${toDartType(inp.type)}>` : toDartType(inp.type)) + " " + inp.name - ).join(", "); + const args = func.inputs + .map( + (inp) => + (inp.array + ? `List<${toDartType(inp.type)}>` + : toDartType(inp.type)) + + " " + + inp.name + ) + .join(", "); - const asParams = func.inputs.map(e => e.name).join(", "); + const asParams = func.inputs.map((e) => e.name).join(", "); if (!func.return) { - a(1, `void ${func.name}(${args}) {`) - a(2, `provider.sendNotification("${definition.name}.${func.name}", [${asParams}]);`); + a(1, `void ${func.name}(${args}) {`); + a( + 2, + `provider.sendNotification("${definition.name}.${func.name}", [${asParams}]);` + ); a(1, `}`); } else { - const baseReturnType = func.return.type != "void" ? (toDartType(func.return.type) + "?") : toDartType(func.return.type); - const returnType = func.return.array ? `List<${baseReturnType}>` : baseReturnType; + const baseReturnType = + func.return.type != "void" + ? toDartType(func.return.type) + "?" + : toDartType(func.return.type); + const returnType = func.return.array + ? `List<${baseReturnType}>` + : baseReturnType; a(1, `Future<${returnType}> ${func.name}(${args}) async {`); - a(2, `var res = await this.provider.sendRequest("${definition.name}.${func.name}", [${asParams}]);`); + a( + 2, + `var res = await this.provider.sendRequest("${definition.name}.${func.name}", [${asParams}]);` + ); if (func.return.type !== "void") { - if(func.return.array) { - a(2, `return res.map((entry) =>${this.getTypeParse(func.return.type, "entry")}).toList();`); + if (func.return.array) { + a( + 2, + `return res.map((entry) =>${this.getTypeParse( + func.return.type, + "entry" + )}).toList();` + ); } else { a(2, `return ${this.getTypeParse(func.return.type, "res")};`); } @@ -234,19 +276,20 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { generateService(definition: ServiceDefinition): void { this.generateServiceClient(definition); - this.writeFile("lib/src/service_client.dart", this.getTemplate("Dart/service_client.dart")) + this.writeFile( + "lib/src/service_client.dart", + this.getTemplate("Dart/service_client.dart") + ); } finalize(steps: Step[]): void { - const { a, getResult } = LineAppender(); + const { a, getResult } = LineAppender(2); - a(0, `library ${this.options.dart_library_name};`) + a(0, `library ${this.options.dart_library_name};`); a(0, ``); - let hasService = false; - steps.forEach(([type, def]) => { switch (type) { case "type": @@ -269,11 +312,17 @@ export class DartTarget extends CompileTarget<{ dart_library_name: string }> { }); if (hasService) { - a(0, `export 'src/service_client.dart';`) + a(0, `export 'src/service_client.dart';`); } this.writeFile(`lib/${this.options.dart_library_name}.dart`, getResult()); - this.writeFile(`pubspec.yaml`, this.getTemplate("Dart/pubspec.yaml").replace("__NAME__", this.options.dart_library_name)); + this.writeFile( + `pubspec.yaml`, + this.getTemplate("Dart/pubspec.yaml").replace( + "__NAME__", + this.options.dart_library_name + ) + ); this.writeFile(`lib/src/base.dart`, this.getTemplate("Dart/base.dart")); } }