0.0.4 • Published 4 years ago

@hy-vee/babel-plugin-impostor v0.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

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: 1. Prime 2. Request 3. Delete

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 of true.

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

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago