@zeit/addons
A set of utilies for ZEIT Addons.
Vist https://zeit.co/docs/addons for more details.
Install
yarn add @zeit/addons
Middleware for Micro / Now v2
This middleware helps to write UiHook for ZEIT addons easily.
const {withUiHook} = require('@zeit/addons');
module.exports = withUiHook(async (options) => {
const {payload, zeitClient} = options;
const {action, clientState} = payload;
let metadata = await zeitClient.getMetadata();
if (action === 'submit') {
metadata = clientState;
await zeitClient.setMetadata(metadata);
}
if (action === 'reset') {
metadata = {};
await zeitClient.setMetadata(metadata);
}
return `
<Page>
<Container>
<Input label="Secret Id" name="secretId" value="${metadata.secretId || ''}"/>
<Input label="Secret Key" name="secretKey" type="password" value="${metadata.secretKey || ''}" />
</Container>
<Container>
<Button action="submit">Submit</Button>
<Button action="reset">Reset</Button>
</Container>
</Page>
`;
});
This middleware calls the handler with an object containing following entities:
- payload - the information related uiHook
- zeitClient - initialized API client for ZEIT with some helpers