e2c68daae5
This change fixes named import references of the style import {foo} from "bar"; ...foo...; Previously, we incorrectly assumed all naked variables of the sort referred to members inside of the current module. Instead, we can just refer to the existing logic that will use the bound symbol to resolve the fully resolved module reference. |
||
---|---|---|
.. | ||
cmd | ||
lib | ||
tests | ||
.gitignore | ||
cocojs | ||
package.json | ||
README.md | ||
tsconfig.json | ||
tslint.json | ||
yarn.lock |
CocoJS
This directory contains Coconut's JavaScript compiler.
It implements a subset of JavaScript, with optional TypeScript-style type annotations, and compiles that subset into CocoPack/IL.
Building and Testing
CocoJS is built independent from the overall Coconut toolchain. First clone and cd to the right place:
$ git clone git@github.com:pulumi/coconut
$ cd coconut/tools/cocojs
Next, install dependencies, ideally using Yarn:
$ yarn install
(NPM can be used instead, but Yarn offers better performance, reliability, and security, so it's what we use below.)
From there, to build:
$ yarn run build
It's possible to simply run the TypeScript compiler using tsc
, however the Yarn build step performs a couple extra
steps; namely, it runs TSLint and also copies some test baseline files into the right place.
Next, to test, simply run:
$ yarn run test
It will be obvious if the tests passed or failed and, afterwards, code coverage data will be output to the console.
After building, a typical developer setup would be to add tools/cocojs/
to your $PATH
; there is a cocojs
executable in the root directory that conveniently wraps invocation of the compiler, passing through any arguments.
Libraries
In order to use the Coconut libraries -- including the standard library -- you will need to do a few additional steps to prepare your developer workspace. Please see this document for details on how to do this.