Package Exports
- @architect/hydrate
- @architect/hydrate/cli
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@architect/hydrate) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@architect/hydrate

@architect/hydrate ensures that all functions managed by architect have their dependencies installed. Functions containing all its required dependencies are considered to be 'hydrated' - thus the name!
@architect/hydrate supports dependencies managed in the following languages using the following package managers:
- node.js via
npm
usingpackage.json
andpackage-lock.json
files - python (3.7+) via
pip3
using arequirements.txt
file - ruby via
bundle
usingGemfile
andGemfile.lock
files
Installation
npm install @architect/hydrate
API
All methods accept an options
object can include the following properties:
autoinstall
- Boolean - if truthy, enables automated Lambda dependency treeshaking via static code analysis; defaults tofalse
, only used byinstall
cwd
- String - root filesystem path of the project Hydrate is working in- Defaults to current working directory
- May be the same or different from
basepath
; if using in conjunction withbasepath
, specify a subset of the project withbasepath
, for example:{ cwd: '/your/project/', basepath: '/your/project/src/http/' }
runs Hydrate against/your/project/
(without having to useprocess.chdir
) and only hydrates functions within/your/project/src/http/**
basepath
- String - filesystem path in which Hydrate should search for functions- Defaults the current working directory
- Useful if you want to hydrate one function or a subset of functions
inventory
- Object - Architect Inventory object; generally used internally
Note on
cwd
vsbasepath
:cwd
is necessary for Hydrate to find your project's manifest and key files and folders, whilebasepath
scopes hydration to a specific path. When in doubt, include neither parameter, Hydrate will default to process working directory; if you know you need to aim Hydrate at a specific place but aren't sure which parameter to use, usecwd
.
hydrate.install(options, callback)
Installs function dependencies, invoking hydrate.shared()
.
Note that for the default value of basepath='src'
, this means install
will also hydrate shared folders like src/shared
and src/views
.
To ensure local development behavior is as close to staging
and production
as possible, hydrate.install()
(and other hydrate functions) uses:
- node.js:
npm ci
ifpackage-lock.json
is present andnpm i
if not - python:
pip3 install
- ruby:
bundle install
hydrate.update(options, callback)
Updates function dependencies, invoking hydrate.shared()
. Note that this will only functionally differ from hydrate.install()
if you use a lockfile like package-lock.json
or Gemfile.lock
.
Note that for the default value of basepath='src'
, this means update
will also update dependencies in shared folders like src/shared
and src/views
.
update
is functionally almost identical to install
, except it will update dependencies to newer versions if they exist. This is done via:
- node.js:
npm update
- python:
pip3 install -U --upgrade-strategy eager
- ruby:
bundle update
hydrate.shared(options, callback)
Copies shared code (from src/shared
and src/views
) into all functions.