UNPKG

@scloud/lambda-local

Version:

Run typical Lambda handlers locally.

44 lines 5.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.scheduledLocal = scheduledLocal; const express_1 = __importDefault(require("express")); const eventTemplate = { version: '0', id: '0', 'detail-type': 'Scheduled Event', source: 'aws.events', account: '123456789012', time: new Date().toISOString(), region: 'us-east-1', resources: [], detail: {}, }; function scheduledLocal(handler, debug = false) { const port = +(process.env.port || '3000'); const app = (0, express_1.default)(); app.all('/*', async (req, res) => { try { // Invoke the function handler: const result = await handler(eventTemplate, {}); if (debug) { console.log('Result:'); console.log(JSON.stringify(result, null, 2)); } // Body res.status(200).send(JSON.stringify(result)); } catch (e) { // Log the error and send a 500 response console.log(e); console.log(e.stack); res.status(500).send(`${e}`); } }); app.listen(port, () => { console.log(`Scheduled Lambda handler can be invoked via POST http://localhost:${port}. The request body will be sent as an SQS message body`); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVkTG9jYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZWR1bGVkTG9jYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFpQkEsd0NBNEJDO0FBN0NELHNEQUFxRDtBQUtyRCxNQUFNLGFBQWEsR0FBbUI7SUFDcEMsT0FBTyxFQUFFLEdBQUc7SUFDWixFQUFFLEVBQUUsR0FBRztJQUNQLGFBQWEsRUFBRSxpQkFBaUI7SUFDaEMsTUFBTSxFQUFFLFlBQVk7SUFDcEIsT0FBTyxFQUFFLGNBQWM7SUFDdkIsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO0lBQzlCLE1BQU0sRUFBRSxXQUFXO0lBQ25CLFNBQVMsRUFBRSxFQUFFO0lBQ2IsTUFBTSxFQUFFLEVBQUU7Q0FDWCxDQUFDO0FBRUYsU0FBZ0IsY0FBYyxDQUFDLE9BQStFLEVBQUUsS0FBSyxHQUFHLEtBQUs7SUFDM0gsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLE1BQU0sR0FBRyxHQUFHLElBQUEsaUJBQU8sR0FBRSxDQUFDO0lBRXRCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFZLEVBQUUsR0FBYSxFQUFFLEVBQUU7UUFDbEQsSUFBSSxDQUFDO1lBQ0gsK0JBQStCO1lBQy9CLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFhLENBQUMsQ0FBQztZQUUzRCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUVELE9BQU87WUFDUCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFL0MsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCx3Q0FBd0M7WUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUUsQ0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxRUFBcUUsSUFBSSx3REFBd0QsQ0FBQyxDQUFDO0lBQ2pKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBleHByZXNzLCB7IFJlcXVlc3QsIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQge1xuICBDb250ZXh0LCBTUVNCYXRjaFJlc3BvbnNlLCBTY2hlZHVsZWRFdmVudCxcbn0gZnJvbSAnYXdzLWxhbWJkYSc7XG5cbmNvbnN0IGV2ZW50VGVtcGxhdGU6IFNjaGVkdWxlZEV2ZW50ID0ge1xuICB2ZXJzaW9uOiAnMCcsXG4gIGlkOiAnMCcsXG4gICdkZXRhaWwtdHlwZSc6ICdTY2hlZHVsZWQgRXZlbnQnLFxuICBzb3VyY2U6ICdhd3MuZXZlbnRzJyxcbiAgYWNjb3VudDogJzEyMzQ1Njc4OTAxMicsXG4gIHRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgcmVzb3VyY2VzOiBbXSxcbiAgZGV0YWlsOiB7fSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzY2hlZHVsZWRMb2NhbChoYW5kbGVyOiAoZXZlbnQ6IFNjaGVkdWxlZEV2ZW50LCBjb250ZXh0OiBDb250ZXh0KSA9PiBQcm9taXNlPFNRU0JhdGNoUmVzcG9uc2U+LCBkZWJ1ZyA9IGZhbHNlKSB7XG4gIGNvbnN0IHBvcnQgPSArKHByb2Nlc3MuZW52LnBvcnQgfHwgJzMwMDAnKTtcbiAgY29uc3QgYXBwID0gZXhwcmVzcygpO1xuXG4gIGFwcC5hbGwoJy8qJywgYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBJbnZva2UgdGhlIGZ1bmN0aW9uIGhhbmRsZXI6XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBoYW5kbGVyKGV2ZW50VGVtcGxhdGUsIHt9IGFzIENvbnRleHQpO1xuXG4gICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1Jlc3VsdDonKTtcbiAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocmVzdWx0LCBudWxsLCAyKSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJvZHlcbiAgICAgIHJlcy5zdGF0dXMoMjAwKS5zZW5kKEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpO1xuXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gTG9nIHRoZSBlcnJvciBhbmQgc2VuZCBhIDUwMCByZXNwb25zZVxuICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICBjb25zb2xlLmxvZygoZSBhcyBFcnJvcikuc3RhY2spO1xuICAgICAgcmVzLnN0YXR1cyg1MDApLnNlbmQoYCR7ZX1gKTtcbiAgICB9XG4gIH0pO1xuXG4gIGFwcC5saXN0ZW4ocG9ydCwgKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKGBTY2hlZHVsZWQgTGFtYmRhIGhhbmRsZXIgY2FuIGJlIGludm9rZWQgdmlhIFBPU1QgaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9LiBUaGUgcmVxdWVzdCBib2R5IHdpbGwgYmUgc2VudCBhcyBhbiBTUVMgbWVzc2FnZSBib2R5YCk7XG4gIH0pO1xufVxuIl19