pulumi/sdk/nodejs
Joe Duffy 98ef0c4bb5
Allow overriding a Pulumi.yaml's entrypoint (#582)
Because the Pulumi.yaml file demarcates the boundary used when
uploading a program to the Pulumi.com service at the moment, we
have trouble when a Pulumi program uses "up and over" references.
For instance, our customer wants to build a Dockerfile located
in some relative path, such as `../../elsewhere/`.

To support this, we will allow the Pulumi.yaml file to live
somewhere other than the main Pulumi entrypoint.  For example,
it can live at the root of the repo, while the Pulumi program
lives in, say, `infra/`:

    Pulumi.yaml:
    name: as-before
    main: infra/

This fixes pulumi/pulumi#575.  Further work can be done here to
provide even more flexibility; see pulumi/pulumi#574.
2017-11-16 07:49:07 -08:00
..
asset Many asset improvements 2017-10-22 13:39:21 -07:00
bin Don't change cd in Windows launch scripts 2017-10-30 15:37:06 -07:00
cmd Allow overriding a Pulumi.yaml's entrypoint (#582) 2017-11-16 07:49:07 -08:00
log Format logs the same way Node.js console APIs do (#561) 2017-11-14 09:55:54 -08:00
runtime Properly capture 'arguments' when creating our serialization closure. (#569) 2017-11-15 11:31:17 -08:00
tests Properly capture 'arguments' when creating our serialization closure. (#569) 2017-11-15 11:31:17 -08:00
.gitignore Build, integration tests and publishing on Windows 2017-10-02 13:40:58 -07:00
config.ts Update error message to reflect current CLI format (#482) 2017-10-27 13:44:32 -07:00
dynamic.ts Add a newline. 2017-10-16 23:06:53 -07:00
errors.ts Improve output formatting 2017-09-23 05:20:11 -07:00
index.ts Add accessors to fetch the Pulumi project and stack names 2017-10-19 08:26:57 -07:00
Makefile Remove unused PROCCNT variable 2017-10-27 14:42:47 -07:00
metadata.ts Fix a function comment 2017-11-08 16:20:27 -08:00
package.json Move from acorn to TypeScript as the parser we use when computing free variables. (#431) 2017-10-18 13:29:53 -07:00
README.md push is dead; long live update. 2017-09-22 17:23:40 -07:00
resource.ts Improve promise leak diagnostics (#508) 2017-10-31 07:48:59 -07:00
tsconfig.json Permit undefined in more places 2017-10-23 16:02:28 -07:00
tslint.json Enable tslinting of the nodejs sdk. (#433) 2017-10-18 15:03:56 -07:00
yarn.lock Enable tslinting of the nodejs sdk. (#433) 2017-10-18 15:03:56 -07:00

Pulumi Fabric Node.js SDK

The Pulumi Fabric Node.js SDK lets you write cloud programs in JavaScript.

Installing

For now, we only support developers building from source. Eventually we will have a nice installer.

Prerequisites

To build and install the SDK, you will first need a few things.

First, install Node.js 6.10.2. We recommend nvm, since it makes it easier to switch between versions of Node.js. Afterwards, run nvm install 6.10.2.

Next, we suggest using Yarn for package management. NPM works too, but Yarn is faster and therefore preferred. Please follow the directions on Yarn's website.

Building and Testing

The first time you build, you must make configure to install and prepare native plugins for V8:

$ make configure

Make sure to run this after installing the right version of Node.js above, otherwise it may bind to the wrong version.

To build the SDK, simply run make from the root directory (sdk/nodejs/). This will build the code, run tests, and then "install" the package (by yarn linking the resulting bin/ directory).

We recommend putting bin/ on your $PATH, since the pulumi-langhost-nodejs executable will be loaded dynamically by the pulumi tool whenever it encounters a Node.js program.

The tests will verify that everything works, but feel free to try running pulumi preview and/or pulumi update from the examples/minimal/ directory. Remember to run tsc first, since pulumi expects JavaScript, not TypeScript.