@basemaps/lambda
    TypeScript icon, indicating that this package has built-in type declarations

    6.7.0 • Public • Published

    @basemaps/lambda

    Opinionated Lambda function wrappers

    • First class promise support
    • Every request is logged
    • Supports logging of timing data
    • Supports throwing of responses
    import { LambdaContext, LambdaFunction, LambdaHttpResponse } from '@basemaps/lambda';
    
    export async function handleRequest(req: LambdaContext): Promise<LambdaHttpResponse> {
        req.set('logValue', 'Something to log'); // This will be logged when the function finishes
    
        if (req.method == 'HEAD') return new LambdaHttpResponse(405, 'Invalid method');
    
        // log timing information
        req.timer.start('validate');
        await ValidateRequest(req);
        req.timer.end('validate');
    
        // Responses can be thrown too
        if (isInvalid) throw new LambdaHttpResponse(500, 'Something went wrong');
    
        const response = new LambdaHttpResponse(100, 'Continue');
        // Set Http on responses
        if (doNotCache) response.header('Cache-Control', 'max-age=0');
        return response;
    }
    
    export const handler = LambdaFunction.wrap(handleRequest, logger);

    Keywords

    none

    Install

    npm i @basemaps/lambda

    DownloadsWeekly Downloads

    28

    Version

    6.7.0

    License

    MIT

    Unpacked Size

    50.9 kB

    Total Files

    43

    Last publish

    Collaborators

    • blacha
    • linzds