
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
@ahrefs/bs-aws-lambda
Advanced tools
bs-aws-lambda is a set of types to use when creating AWS
lambda handlers.
Those types are inspired by the
@types/aws-lambda
package with typescript types.
yarn add @ahrefs/bs-aws-lambda
or to follow the master version:
yarn add https://github.com/ahrefs/bs-aws-lambda.git
Add @ahrefs/bs-aws-lambda to the bs-dependencies of bsconfig.json.
Then when you create a function handler for a lambda, you can annotate
it with one of AwsLambda.Scheduled.handler,
AwsLambda.Dynamodb.streamHandler, AwsLambda.Sns.handler, etc. This
way you are sure to expose a function which respect the signature
expected by Lambda and you get types information for all the
parameters this function will receive.
A full example is documented
here. It
is using the sources from the example directory.
Simple echo function for the API Gateway. This might seem a little verbose compare to a typescript version. But using this package, you are sure to handle all the possible cases where a value is actually null or base64 encoded. Plus the returned object given to the callback will always have the expected fields and types.
let handler: AwsLambda.APIGatewayProxy.handler =
(event, _context, cb) => {
open AwsLambda.APIGatewayProxy;
let parameter =
event
|. Event.queryStringParameters
|> Js.Option.andThen((. params) => Js.Dict.get(params, "userid"));
switch (parameter) {
| Some(userid) => Js.log2("executing lambda for", userid)
| None => Js.log("executing lambda for anonymous user")
};
let result =
switch (event |. Event.body) {
| None =>
Js.log("error: no body available in the request");
result(
~body=`Plain({|{"status": "no body available in the request"}|}),
~statusCode=400,
(),
);
| Some(body) =>
Result.make(~statusCode=200, ~body, ~isBase64Encoded=event |. Event.isBase64Encoded, ())
};
cb(Js.null, result);
Js.Promise.resolve();
};
The typescript equivalent of the type annotation is actually more verbose:
export const handle: Lambda.APIGatewayProxyHandler = async (
event: Lambda.APIGatewayEvent,
context: Lambda.Context,
cb: Lambda.APIGatewayProxyCallback) => {
}
FAQs
bucklescript types for aws-lambda
We found that @ahrefs/bs-aws-lambda demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.