pulumi/sdk/nodejs
Will Jones a9621cfb4e
Fix NodeJS SDK mocking of custom resource reads (#16542)
This commit incorporates the tests introduced by @henriiik in #8585 into
the existing test suite for the NodeJS SDK mocks. SDK mocks provide a
means for users wishing to unit test their Pulumi programs to stub out
various bits of Pulumi behaviour. Previously, those wanting to stub out
resource reads (through `.get` static methods) would encounter crashes
or use untested code paths. With the crashes fixed in previous commits,
this commit adds some tests. Moreover, we fix an error whereby mock
reads force a non-custom (component) resource, when in reality it should
be the other way around (since reads don't make sense for component
resources).

Closes #8585

Co-authored-by: Henrik Sjööh <henriiik@gmail.com>
2024-07-01 16:05:30 +00:00
..
asset Apply autoformat 2023-04-28 18:27:10 -04:00
automation Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00
cmd Conformance test for provider pre-release versions (#16498) 2024-06-29 10:07:14 +00:00
dist Fix typo in PP script 2019-08-06 17:35:52 -07:00
dynamic Allow dynamic providers to capture secrets 2023-06-29 15:28:31 -07:00
iterable Apply autoformat 2023-04-28 18:27:10 -04:00
log Move nodejs feature checks to startup (#14856) 2023-12-19 14:35:23 +00:00
npm Display an actionable error message when dependency installation fails (#16489) 2024-06-28 23:22:17 +00:00
proto Add not-found markers to missing executables for packagemanagers (#16488) 2024-06-28 23:21:55 +00:00
provider Wrap call&construct of node provider server in AsyncLocalStorage (#16487) 2024-06-28 10:35:30 +00:00
queryable Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00
runtime Fix NodeJS SDK mocking of custom resource reads (#16542) 2024-07-01 16:05:30 +00:00
tests Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00
tests_with_mocks Fix NodeJS SDK mocking of custom resource reads (#16542) 2024-07-01 16:05:30 +00:00
types Replace deprecated read-package-tree with @npmcli/arborist (#15503) 2024-02-26 18:40:28 +00:00
vendor Vendor TypeScript and ts-node (#15622) 2024-04-10 15:26:37 +00:00
.eslintrc.js Vendor TypeScript and ts-node (#15622) 2024-04-10 15:26:37 +00:00
.gitignore Vendor TypeScript and ts-node (#15622) 2024-04-10 15:26:37 +00:00
Makefile Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00
README.md fix some links 2023-05-19 19:39:26 -07:00
biome.json Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00
config.ts Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00
errors.ts Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00
index.ts Removing x namespace from go/python/nodejs automation packages (#6518) 2021-04-14 19:32:18 +01:00
invoke.ts [sdk/nodejs] Add pluginServerURL (#8698) 2022-01-10 15:54:41 -08:00
metadata.ts Make getOrganization total, default to 'organization' 2022-09-22 11:06:51 -07:00
output.ts Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00
package.json Prepare for v3.122.0 release (#16535) 2024-06-29 11:09:49 +00:00
resource.ts Fix documentation comments in the NodeJS SDK (#16307) 2024-06-03 12:50:03 +00:00
stackReference.ts Export automation.tag.TagMap type & @param tag fixes (#15774) 2024-03-25 14:33:15 +00:00
tsconfig.json Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00
tsutils.ts Vendor TypeScript and ts-node (#15622) 2024-04-10 15:26:37 +00:00
typescript-shim.ts Vendor TypeScript and ts-node (#15622) 2024-04-10 15:26:37 +00:00
utils.ts Fix documentation comments in the NodeJS SDK (#16307) 2024-06-03 12:50:03 +00:00
version.ts Prepare for v3.122.0 release (#16535) 2024-06-29 11:09:49 +00:00
yarn.lock Replace Rome with Biome in the NodeJS SDK (#16456) 2024-06-24 11:14:56 +00:00

README.md

Pulumi Node.js SDK

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

Installation

Using npm:

$ npm install --save @pulumi/pulumi

Using yarn:

$ yarn add @pulumi/pulumi

This SDK is meant for use with the Pulumi CLI. Visit Pulumi's Download & Install to install the CLI.

Building and Testing

For anybody who wants to build from source, here is how you do it.

Prerequisites

This SDK uses Node.js and we support any of the Current, Active and Maintenance LTS versions. We support both NPM and Yarn for package management.

At the moment, we only support building on macOS and Linux, where standard GNU tools like make are available.

Make Targets

To build the SDK, simply run make from the root directory (where this README lives, at sdk/nodejs/ from the repo's root). This will build the code, run tests, and install the package and its supporting artifacts.

At the moment, for local development, we install everything into $HOME/.dev-pulumi. You will want this on your $PATH.

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