@hy-vee/babel-plugin-impostor
v0.0.4
Published
A babel plugin for allowing handlers to be imposed.
Downloads
3
Keywords
Readme
babel-plugin-impostor
A babel plugin for allowing api handlers/resolvers to be imposed.
This is experimental. Use at your own risk!
Usage
Add to your babel config in plugins as follows:
{
"env": {
"dev": {
"plugins": [
"@hy-vee/babel-plugin-impostor"
]
}
}
}
Add a block comment above your handler or resolver function
/*
* @impostor
* headers headers
* query params.id
*/
export const handler = async ({params, headers}) => {
return null;
}
/*
* @impostor designates the handler/resolver as imposable.
* headers is the reference for finding the needed \`impostor\` headers shown further down.
* query is the reference for querying \`hy-vee-impostor-data\`.
*/
Next compile code with babel and run server. There are three phases:
How to prime
Add the
hy-vee-impostor-id
header using a unique key value of your choosing.Add the
hy-vee-impostor-data
header with the data you wish to return or query on.
This will set up impostor instance with the hy-vee-impostor-id
and assign the instance the data. The hy-vee-impostor-data
will be
returned via the response. It should be used to validate success.
Example
Request
curl --location --request GET 'http://localhost:5555/v1/things/fake-thing-id-1' \
--header 'hy-vee-impostor-id: super-duper-impostor-1' \
--header 'hy-vee-impostor-data: { "fake-thing-id-1": { "thing": {"thingId": "fake-thing-id-1"} } }'
Response Body
{
"fake-thing-id-1": {
"thing": {
"thingId": "fake-thing-id-1"
}
}
}
How to request
- Use the
hy-vee-impostor-id
header.
Example
Request
curl --location --request GET 'http://localhost:5555/v1/things/fake-thing-id-1' \
--header 'hy-vee-impostor-id: super-duper-impostor-1'
Response Body
{
"thing": {
"thingId": "fake-thing-id-1"
}
}
How to delete
- Use the
hy-vee-impostor-id
header. - Use the
hy-vee-impostor-delete
header with a value oftrue
.
Example
Request
curl --location --request GET 'http://localhost:5555/v1/things/fake-thing-id-1' \
--header 'hy-vee-impostor-id: super-duper-impostor-1' \
--header 'hy-vee-impostor-delete: super-duper-impostor-1'
Response Body
null