Releases: elixirscript/elixirscript
Releases · elixirscript/elixirscript
0.32.1
0.28.0
0.27.0
[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.
UnlikeElixir.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
0.26.0
[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 astart/2
function defined. More info belowJS.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 astart/2
function there.
This is analogous to a Application module callback
0.25.0
[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 useCollectable
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 inpriv/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
0.23.3
0.23.2
[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
anddefgenp
functions not being recognized by Elixir compiler.