Extensible JS generator for Haxe
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
haxe_libraries
src
tests
.gitignore
.haxerc
.travis.yml
README.md
build.hxml
extraParams.hxml
haxelib.json
package.json
tests.hxml

README.md

hxgenjs Build Status

Extensible JS generator for Haxe

The default configuration emits one javascript file per Haxe class, and uses CommonJS (require()) to link the dependencies. It should work out of the box with your current Node.js project, React Native project or any other CommonJS-compatible runtimes. For browsers usage you can use packagers such as Webpack or Browserify, etc.

Note: This is written for Haxe version >= 3.4, it may not be usable on earlier versions.

Usage

Simply install the library and add -lib hxgenjs to your project.

Options:

  • add -D js_es=6 if you want to generate ES6 classes.
  • add -D hxextern if you want to generate Haxe extern files.
  • add -D tsextern if you want to generate TypeScript definition files.
  • add -D genjs=no if you don't want to generate Javascript files.

Custom Generators

  1. Implements the interfaces in the genjs.generator package (IClassGenerator, IEnumGenerator, IMainGenerator)
  2. Configure hxgenjs:
class Setup {
	public static function setup() {
		var customConfig:genjs.Generator.Config = ...;
		genjs.Generator.generators.push(customConfig);
	}
}

Then run it as init macro in your build: --macro Setup.setup()

Work in progress

  • Generate javascript file per Haxe class
  • Handle @:expose
  • Standardize way to configure the generator