Skip to content

Releases: elixirscript/elixirscript

0.32.1

17 Mar 20:17
Compare
Choose a tag to compare
v0.32.1

Update changelog

0.28.0

11 Jun 16:43
Compare
Choose a tag to compare
v0.28.0

Update version and CHANGELOG.md

0.27.0

18 Mar 01:16
Compare
Choose a tag to compare

[0.27.0] - 2017-03-17

Added

  • super
  • defoverridable
  • IO.inspect\1, IO.puts\1, IO.puts\2, IO.warn\1
  • Elixir.load for loading generated JavaScript modules in bundled output.
    Unlike Elixir.start, this will only call __load on the module and return the functions on it
const exports = Elixir.load(Elixir.MyApp);
exports.hello();

Changed

  • -ex alias is now -e
  • A filename can be specified for output
  • To access global JavaScript functions, modules, and properties, use the JS module
JS.length # translates to 'length'
JS.alert() # translates to 'alert()'
JS.String.raw("hi") # translate to String.raw('hi')
JS.console.log("hi") # translates to console.log('hi')

Fixed

  • Make sure mix compiler works in umbrella apps

0.26.1

28 Feb 02:26
Compare
Choose a tag to compare

[0.26.1] - 2017-02-27

Fixed

  • Fixed for translation
  • Updated documentation

0.26.0

27 Feb 12:33
Compare
Choose a tag to compare

[0.26.0] - 2017-02-27

Added

  • Multiple when clauses in guards

  • Kernel.defdelegate/2

  • js_modules configuration option has been added. This is a keyword list of JavaScript modules that will be used.

          js_modules: [
            {React, "react"},
            {ReactDOM, "react-dom"}
          ]
    
  • js-module flag has been added to the CLI in order to pass js modules.

elixirscript "app/elixirscript" -o dist --js-module React:react --js-module ReactDOM:react-dom

Removed

  • @on_js_load has been removed in favor of having a start/2 function defined. More info below
  • JS.import has been removed in favor of defining JavaScript modules used in configuration

Changed

  • Now bundles all output, including the boostrap code.
    The exported object has Elixir modules in JavaScript namespaces that are lazily loaded when called.

    To start your application import the bundle according to whichever module format was selected and
    then call start giving it the module and the initial args

    //ES module example
    import Elixir from './Elixir.App'
    Elixir.start(Elixir.App, [])

    The start function will look for a start/2 function there.
    This is analogous to a Application module callback

0.25.0

19 Feb 18:22
Compare
Choose a tag to compare

[0.25.0] - 2017-02-19

Added

  • Updated elixir_script mix compiler to support compiling elixir_script paths in dependencies if dependency has mix compiler defined as well
  • Add Collectable protocol implementations
  • Updated for implementation to use Collectable
  • format option. Can now specify the module format of output.
    Choices are:
    * :es (default) for ES Modules
    * :umd for UMD
    * :common for CommonJS
  • Default input, output and format for elixirscript mix compiler. In a mix project by default the elixirscript compiler will look in lib/elixirscript and input and place output in priv/elixirscript. The default format is :es

Removed

  • receive
  • Process module

Fixed

  • JS module functions not translated properly when imported
  • Update fs dependency to 2.12
  • Incorrect handling of function heads with guards

0.24.0

15 Jan 19:00
Compare
Choose a tag to compare
v0.24.0

Ready for release

0.23.3

18 Nov 15:47
Compare
Choose a tag to compare

[0.23.3] - 2016-11-18

Added

  • @load_only: lets the compiler know to load in the module, but not to compile it

0.23.2

18 Nov 02:43
Compare
Choose a tag to compare

[0.23.2] - 2016-11-17

Fixed

  • Agent not functioning properly. Now uses internal store instead of making a process and using that to put data in store
  • Protocol incorrectly handling strings
  • defgen and defgenp functions not being recognized by Elixir compiler.

0.23.1

16 Nov 13:29
Compare
Choose a tag to compare

[0.23.1] - 2016-11-16

Fixed

  • Incorrectly sending standard lib when using compile or compile_path by default