All Projects → dk00 → Livescript Next

dk00 / Livescript Next

Licence: unlicense
Enable latest ES features for LiveScript

Programming Languages

es6
455 projects
es2015
71 projects
livescript
113 projects
es2017
19 projects
es2016
15 projects

livescript-next

Enable latest ES features for LiveScript.

build status coverage npm

Try it here

This project implements a bridge from LiveScript to modern JavaScript, by converting the LiveScript AST into Babel AST and then using the Babel toolchain to generate JS:

LS code -> LiveScript parser -> convert -> Babel AST -> Babel transform -> JS

ES modules can be used without JS code literals, use import and export instead, just like using require!:

import name, name1: alias
import module: {name0, name1: alias1}
export {name, default: name, alias: name}
import name from "name";
import alias from "name1";
import { name0, name1 as alias1 } from "module";
export { name, name as default, name as alias };

See wiki for what are added and what are going to be added.

Usage with babel in node

Install required packages:

npm i --save-dev livescript livescript-next babel-plugin-preset-stage-0 transform-es2015-modules-commonjs

Set babel options(or specify this in .babelrc):

babel-options =
  presets: <[stage-0]>
  plugins: <[transform-es2015-modules-commonjs]>
  parser-opts: parser: \livescript-next

Register require hook and require the entry file:

require \livescript
delete require.extensions\.ls
require \babel-register <| babel-options
require \./index.ls

Features

  • Module
    • [x] Named import and export
    • [ ] Export declaration
    • [ ] Import only side-effect
  • ES Destructuring assignment/parameter output
    • [x] Basic support
    • [x] With default value
    • [x] Spread operator
    • [x] Named destructing
  • [x] External helper
  • [x] Async function
  • [x] Arrow function
  • [ ] Class

API

  • convert :: ast -> ast Convert from LiveScript AST to babel AST
  • parse :: code -> ast Parse LiveScript code and convert it to babel AST
  • compile :: code -> {code, map}

Require hook for node

See examples

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].