haxevx

HaxeVx is your ultimate library for coding VueJS/Vuex in the Haxe language
https://github.com/Glidias/haxevx

To install, run:

haxelib install haxevx 0.7.2 

See using Haxelib in Haxelib documentation for more information.

README.md

haxevx

HaxeVX - Haxe-powered VueJS/Vuex development

Type-safe coding to target Vuex/VueJS environments using Haxe compile-time Macros and Classes.

With HaxeVx, you get the benefit of massive access-control/type-hinting/type-checking/compile-time safety, etc. inherant within Haxe when developing your VueJS/Vuex stuff. Compile-time mixins/macros/checks are provided specifically for your Haxe classes to ensure they conform to the necessary VueJS conventions.

Overview of features:

  • Automatic mixing-in of typed Props and Data (classes/typedefs) fields into your Vue instance with full type-safety during development. eg. class MyComponent extends VComponent<DataType, PropType>. Unlike regular VueJS, mixed-in fields in HaxeVx can be accessed locally within your Vue instance class definition with full strict-typing. Thus, if Props+Data fields conflict in name-clashes, the compiler will know it

  • Unlike Typescript decorators that execute at run-time, all HaxeVx metadata (if any), in components, are compile-time-only metadata used to facilitate pre-generation of initialization code. There is no further iteration processing done at runtime beyond calling a single automatically-called internal macro-generated function that exposes all pre-compiled component options to Vue already. So, based on the class you write (props/data-types/functions, etc.), the necessary Vue-related initialization options will automatically be pre-generated for you already.

  • Fully strict typed access on $data reference as well.

  • Comprehensive Vue-specific compile time type/reference/convention checking is involved in the macro compile process (eg. ensuring any watcher field links are spelled-correctly to an existing computed/data/prop field in the Vue instance, ensuring your Vue component prop fields are non-public, etc.). Because of the static typed approach of Haxe-Vx, a lot fo things can be pre-checked at compile-time.

  • Vuex: A library/scheme in Haxe specially tailored for Vuex as well, that provides fully type-safe commit/dispatch payloads without having to manage any strings/string-constants or namespacings. This results in fewer errors and reduced boilerplate in linking up your actions/mutations/getters.

Here is a guide/spec of features that are supported in HaxeVx for Vue. https://github.com/Glidias/haxevx/wiki/Vue---HaxeVX-Draft-version-guide


Roadmap can be found here


Versioning:

This was developed under Haxe version 3.3.0.


Contributors
Glidias
Version
0.7.2
Published
10 months ago
License
MIT

All libraries are free

Every month, more than thousand developers use haxelib to find, share, and reuse code — and assemble it in powerful new ways. Enjoy Haxe; It is great!

Explore Haxe

Haxe Manual

Haxe Code Cookbook

Haxe API documentation

You can try Haxe in the browser! try.haxe.org

Join us on Github!

Haxe is being developed on GitHub. Feel free to contribute or report issues to our projects.

Haxe on Github