Skip to content

changes to make it work on haxe 4 #141

Description

@mastef

When building on haxe 4 you'll get :
src/Api.hx:7: characters 8-25 : Type not found : haxe.web.Dispatch
src/Editor.hx:8: characters 8-17 : Type not found : js.JQuery

This is due to these haxe 4 changes :
all : moved haxe.web.Dispatch into hx3compat library (https://github.com/HaxeFoundation/hx3compat).
js : js.JQuery and js.SWFObject were moved into hx3compat library (https://github.com/HaxeFoundation/hx3compat)

1. Add hx3compat library

In the build.hxml add -lib hx3compat before and after --next

2. Adjust imports due to depreciation

There's a few changes in the source to adapt to the new syntax like changing all instances of :

-import js.JQuery;
+import js.jquery.JQuery;

3. Typing of events :

Change all instances of

-(e : JqEvent)
+(e : js.jquery.Event)

4. The library array had some typing issues :

       if( program.libs != null ){
         for( lib in libs.find("input.lib") ){
-          if( program.libs.has( lib.val() ) ){
-            lib.attr("checked","checked");
+          if( program.libs.has( new JQuery(lib).val() ) ){
+            new JQuery(lib).attr("checked","checked");
           }else{
-            lib.removeAttr("checked");
+            new JQuery(lib).removeAttr("checked");
           }
         }
       }
-                       libs.push(i.val());
+                       libs.push(new JQuery(i).val());

5. Button methods

And I wasn't sure where the .button* methods were defined, as they were missing now. These changes made buttons work for me :

-compileBtn.buttonLoading();
+untyped compileBtn.button('loading');
-      new JQuery(".link-btn, .fullscreen-btn")
-        .buttonReset()
+      untyped new JQuery(".link-btn, .fullscreen-btn")
+        .button('reset')
-               compileBtn.buttonReset();
+               untyped compileBtn.button('reset');

Note : These are not optimal changes, just the ones that made try.haxe work with haxe 4 for me.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions