initJsEngine function

Future<JavascriptRuntime> initJsEngine()

Implementation

Future<JavascriptRuntime> initJsEngine() async {
  final jsRuntime = getJavascriptRuntime(xhr: false);
  var a = jsRuntime.evaluate("""var window = global = globalThis;""");
  if (a.isError) {
    throw Exception(a.rawResult);
  }
  final expressionJs = await rootBundle
      .loadString("packages/flutter_survey_js_expression/assets/index.js");
  a = jsRuntime.evaluate(expressionJs);
  if (a.isError) {
    throw Exception(a.rawResult);
  }
  //validate
  var loaded =
      jsRuntime.evaluate("""var isLoaded = (typeof surveyjs == 'undefined') ?
          "0" : "1"; isLoaded;
        """).stringResult;
  if (loaded == "0") {
    throw Exception("Js unloaded");
  }
  return jsRuntime;
}