- public Gee.HashMap<int,string> validateJavascript(
+ public bool validateJavascript(
WindowState state,
string code,
string property,
string ptype,
JsRender.JsRender file,
- JsRender.Node? node
+ JsRender.Node? node,
+ out Gee.HashMap<int,string> errors
)
{
print("validate code (%s) ptype=%s property=%s\n", file.language, ptype, property);
- var ret = new Gee.HashMap<int,string>();
+ var errors = new Gee.HashMap<int,string>();
if (file.language != "js") {
return ret;
var lines_obj = new Json.Object();
var lines_ar = new Json.Array();
lines_ar.add_string_element(errmsg);
- lines_obj.set_array_member(line, lines_ar);
- files_obj.set_object_member(file.filename, lines_obj);
+ lines_obj.set_array_member(line.to_string(), lines_ar);
+ files_obj.set_object_member(file.path, lines_obj);
err.set_object_member("ERR", files_obj);
- err.set_object_member("ERR-TOTAL", 1);
+
state.showCompileResult(err);
return ret;
}
if (ptype == "file") {
- this.validateJavascriptCompression(file, code);
+ this.validateJavascriptCompression(file, state, code);
}
print("no errors\n");
return ret;
}
- public void validateJavascriptCompression(JsRender.JsRender file, string code)
+ public void validateJavascriptCompression(JsRender.JsRender file, WindowState state, string code)
{
// this uses the roojspacker code to try and compress the code.
// it should highlight errors before we actually push live the code.
p.skipScope = false;
p.dumpTokens = false;
p.cleanup = false;
- var estr = "";
- var ret = new Gee.HashMap<int,string>();
+
- p.packFile(code, "ANONFILE","");
- if (p.hasErrors("")) {
-
- if (estr.length > 0 ) {
-
- var bits = estr.split(",");
- if (bits.length > 2) {
- var linebits = bits[1].strip().split(" ");
- if (linebits.length > 1) {
- var line = int.parse(linebits[1]);
- // line is correct - but our standard for error messages is to do it start at '0'
- ret.set(line -1 , bits[2]);
- }
-
- }
- }
+ p.packFile(code, file.path,"");
+ state.showCompileResult(p.result);
- return ret;
+
}