Development server for local development of helix universal functions
$ npm install @adobe/helix-universal-devserver
// test/dev.js
import { DevelopmentServer } from '@adobe/helix-universal-devserver';
import { main } from '../src/index.js';
async function run() {
const devServer = await new DevelopmentServer(main).init();
await devServer.start();
}
run().then(process.stdout).catch(process.stderr);
sometimes it is useful to test a bundled universal function directly, for example to verify that
all imports are properly resolved. This can be achieved by setting the adapter
, either to
lambda
or lambda.raw
. the later bypasses loading of the secrets.
import { lambda } from '../../dist/helix-services/simple-function@2.4.44-bundle.cjs';
async function run() {
const devServer = await new DevelopmentServer()
.withHeader('x-forwarded-host', 'localhost:{port}')
.withAdapter(lambda.raw) // use raw adapter and don't load secrets
.init();
await devServer.start();
}
Sometimes it might be useful to specify action params that would be provided during deployment
but are not available during development. those can be specified by a dev-params-file
wsk
property. those parameters are loaded an applied to every function call. eg:
{
// ...
"wsk": {
// ...
"dev-params-file": ".dev-secrets.env"
},
// ...
}
$ npm install
$ npm test
$ npm run lint