@byndit/advancedaf
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

AdvancedAF

This project is ment to be used with Microsoft Azure Functions. This simple wrapper makes it easier to work with Azure Functions since common HTTP methods are wrapped to individual function calls within a specfic Azure Function. And in addition a function can be executed before each method will be executed.

Usage example

In the following example a get and a post function a defined and passed as parameters in the advancedHTTPtrigger Function. The first optional parameter can be given a function which is executed before ether the get or post functions will be executed. The return value will be injected as the data parameter in each function.

If you now call that function using the GET method you will see the response GET: test and via the POST method you will see POST: test.

const get: AdvancedHTTPMethod<string> = async (context: Context, req: HttpRequest, data: String) => {
  context.res = {
    body: 'GET: ' + data
  };
};

const post: AdvancedHTTPMethod<string> = async (context: Context, req: HttpRequest, data: String) => {
  context.res = {
    body: 'POST: ' + data
  };
};

export default advancedHTTPTrigger<string>({ get, post }, async (context, req) => 'test');

Additional usage example

There is a another function, that helps with authentication in Azure Functions. If authentication is setup properly, one can check the x-ms-client-principal-id which will contain the "userId" if the user authenticated successfully.

In the example below the get function will only be executed if the user was successfully authenticated.

const get: AdvancedHTTPMethod<string> = async (
  context: Context,
  req: HttpRequest,
  data: { userId: string; dataId: string }
) => {
  context.res = {
    body: data
  };
  context.done();
};

export default authenticatedHTTPTrigger({ get });

Package Sidebar

Install

npm i @byndit/advancedaf

Weekly Downloads

2

Version

1.0.6

License

mit

Unpacked Size

11.1 kB

Total Files

13

Last publish

Collaborators

  • jonaswre