У меня есть простой класс написаный на хаксе:
@:expose
class Main implements IAsync {
static function main() {
trace("test");
}
static function testAwait() {
return 1;
}
}
И при конвертации в JavaScript он в числе прочего выгоняет метод:
. . .
Main.testAwait = function() {
return Main.test();
};
. . .
Мне нужно чтобы макрос менял function на async function и выгонял что то типа:
. . .
Main.testAwait = async function() {
return Main.test();
};
. . .
Но мне не совсем очевидно как это сделать, если смотреть на стандартные примеры то обычно то содание нового метода будет выглядеть примерно так:
package haxe_test;
import haxe.macro.Expr;
import haxe.macro.Context;
using haxe.macro.Tools;
using haxe_test.AsyncBuilder;
class BuildHub {
macro static public function build():Array<Field> {
var fields = Context.getBuildFields();
var testFunc:Function = {
expr: macro return $v{1},
ret: null,
params: [],
args: []
};
fields.push({
name: "testAwait",
access: [Access.AStatic],
kind: FieldType.FFun(testFunc),
pos: Context.currentPos(),
});
return fields;
}
Но как поменять какоето ключевое слово в рамках какогото таргета например JavaScript для нужных мне методов(возможно есть какието опции компилятора или JSGenApi может как то помочь)?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости