js.core: Change vdl go generator to emit a single file.

Here's the old behavior.  In each vdl package, we generate *.go
files that match the *.vdl file names.

v.io/x/lib/foo/a.vdl
v.io/x/lib/foo/a.vdl.go # genfile
v.io/x/lib/foo/b.vdl
v.io/x/lib/foo/b.vdl.go #genfile

v.io/x/lib/bar/bar.vdl
v.io/x/lib/bar/bar.vdl.go # genfile

Here's the new behavior.  In each vdl package, we generate a
single <package name>.vdl.go file.

v.io/x/lib/foo/a.vdl
v.io/x/lib/foo/b.vdl
v.io/x/lib/foo/foo.vdl.go #genfile

v.io/x/lib/bar/bar.vdl
v.io/x/lib/bar/bar.vdl.go # genfile

The purpose of this change is to make it easier to deal with
initialization ordering issues in our generated code, and to make
the codegen simpler.  Those larger goals will be tackled in
subsequent CLs; this is the big one with lots of file moves and
deletions.

Note that the new vdl compiler will automatically delete any
old *.vdl.go files after it has successfully generated code.
That is only for the transitional step; we will remove that logic
after everyone has switched over.

Also removed the vdl -exts flag, which used to allow the user to
change the set of extensions to consider vdl files.  That was
used long ago to deal with experimental vdl features, and hasn't
been used in a while.

MultiPart: 5/7

Change-Id: I8fa92b3543e69281381ea7e2d0e2f5c17cbe8add
7 files changed
tree: 2ccf92c46b342a7fcf95c6b7b54e2ae05eabbd9a
  1. extension/
  2. go/
  3. jsdocs/
  4. src/
  5. test/
  6. .gitattributes
  7. .gitignore
  8. .jshintignore
  9. .jshintrc
  10. .npmignore
  11. AUTHORS
  12. CONTRIBUTING.md
  13. CONTRIBUTORS
  14. LICENSE
  15. Makefile
  16. package.json
  17. PATENTS
  18. README.md
  19. VERSION
README.md

Vanadium JavaScript

This repository defines the JavaScript API for Vanadium. The client and server APIs defined here work both in Node.js and the browser.

Install

npm install --save vanadium/js

Usage

The entry point to the API is through a module called vanadium, everything else is considered private and should not be accessed by the users of the API.

The vanadium module is exported as a global in the browser JavaScript library and for Browserify and Node.js the “main” property in the package.json points to /src/vanadium making it the index module and therefore Browserify and Node.js users can gain access to the API with:

var vanadium = require("vanadium");

One of the goals of this project is to only write the code once and have it run in both Node.js and browsers. Therefore, specific build and testing steps have been designed in the project to ensure this goal.

When run in a browser, vanadium.js expects that the vanadium extension will be installed.

Bugs and feature requests

Bugs and feature requests should be filed in the Vanadium issue tracker.

Building and testing

GNU Make is used to build and test Vanadium.

Build everything:

make build

Test everything:

make test

Run a specific test suite:

make test-unit
make test-unit-node
make test-unit-browser

make test-integration
make test-integration-node
make test-integration-browser

Remove all build and testing artifacts:

make clean