Skip to content

HaxeFoundation/hxnodejs

Repository files navigation

hxnodejs

Haxe Node.JS

Build Status Haxelib Version Haxelib Downloads Haxelib License

Extern type definitions for Node.JS. Haxe 3.4 or newer is required.

Haxe-generated API documentation is available at http://haxefoundation.github.io/hxnodejs/js/Node.html.

Original node.js documentation can be found at http://nodejs.org/api/index.html.

Features

  • Full node.js API with documentation.
  • Strict typing for everything, fully leveraging Haxe type system.
  • Optionally typed event listeners.
  • Automatic insert of "require" statements for used modules.
  • Clean output.

Quick example

  1. Install hxnodejs with haxelib install hxnodejs (released version) or haxelib git hxnodejs https://github.com/HaxeFoundation/hxnodejs (latest from GitHub).

  2. Write some code and save to Main.hx:

    class Main {
        static function main() {
            var server = js.node.Net.createServer(function(socket) {
                socket.write("Echo server\n\n");
                socket.pipe(socket);
            });
            server.listen(1337, "127.0.0.1");
        }
    }
  3. Compile it with with haxe -lib hxnodejs -main Main -js main.js (optionally add -D js-es=6 for cleaner JavaScript output, since node.js is ES6-compliant)

  4. Look at generated main.js:

    // Generated by Haxe 4.0.0-rc.2+63144f6db
    (function ($global) { "use strict";
    class Main {
        static main() {
            var server = js_node_Net.createServer(function(socket) {
                socket.write("Echo server\n\n");
                socket.pipe(socket);
            });
            server.listen(1337,"127.0.0.1");
        }
    }
    var js_node_Net = require("net");
    Main.main();
    })({});
  5. You're awesome! (See more examples)

Status

This library is considered complete, but testing and contributions are welcome. See current issues and extern guidelines.