UNPKG

@scloud/lambda-local

Version:

Run typical Lambda handlers locally.

61 lines 6.65 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 = void 0; // eslint-disable-next-line import/no-extraneous-dependencies const express_1 = __importDefault(require("express")); const eventTemplate = { version: '0', id: '0', 'detail-type': 'Scheduled Event', source: 'aws.events', account: '123456789012', time: '1970-01-01T00:00:00Z', region: 'us-east-1', resources: [], detail: {}, }; const contextTemplate = { awsRequestId: '', callbackWaitsForEmptyEventLoop: false, functionName: 'test', functionVersion: '', invokedFunctionArn: '', logGroupName: '', logStreamName: '', memoryLimitInMB: '', getRemainingTimeInMillis: () => 0, done: () => { }, fail: () => { }, succeed: () => { }, }; // eslint-disable-next-line no-unused-vars function scheduledLocal(handler) { 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, contextTemplate); if (result) { console.log('Result:'); console.log(JSON.stringify(result)); } // Send the response 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`); }); } exports.scheduledLocal = scheduledLocal; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVkTG9jYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZWR1bGVkTG9jYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsNkRBQTZEO0FBQzdELHNEQUFxRDtBQUtyRCxNQUFNLGFBQWEsR0FBbUI7SUFDcEMsT0FBTyxFQUFFLEdBQUc7SUFDWixFQUFFLEVBQUUsR0FBRztJQUNQLGFBQWEsRUFBRSxpQkFBaUI7SUFDaEMsTUFBTSxFQUFFLFlBQVk7SUFDcEIsT0FBTyxFQUFFLGNBQWM7SUFDdkIsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixNQUFNLEVBQUUsV0FBVztJQUNuQixTQUFTLEVBQUUsRUFBRTtJQUNiLE1BQU0sRUFBRSxFQUFFO0NBQ1gsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFZO0lBQy9CLFlBQVksRUFBRSxFQUFFO0lBQ2hCLDhCQUE4QixFQUFFLEtBQUs7SUFDckMsWUFBWSxFQUFFLE1BQU07SUFDcEIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsa0JBQWtCLEVBQUUsRUFBRTtJQUN0QixZQUFZLEVBQUUsRUFBRTtJQUNoQixhQUFhLEVBQUUsRUFBRTtJQUNqQixlQUFlLEVBQUUsRUFBRTtJQUNuQix3QkFBd0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBQ2YsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDZixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztDQUNuQixDQUFDO0FBRUYsMENBQTBDO0FBQzFDLFNBQWdCLGNBQWMsQ0FBQyxPQUErRTtJQUM1RyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLENBQUM7SUFDM0MsTUFBTSxHQUFHLEdBQUcsSUFBQSxpQkFBTyxHQUFFLENBQUM7SUFFdEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQVksRUFBRSxHQUFhLEVBQUUsRUFBRTtRQUNsRCxJQUFJLENBQUM7WUFDSCwrQkFBK0I7WUFDL0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRTdELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUVELG9CQUFvQjtZQUNwQixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCx3Q0FBd0M7WUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUUsQ0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxRUFBcUUsSUFBSSx3REFBd0QsQ0FBQyxDQUFDO0lBQ2pKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQTNCRCx3Q0EyQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXG5pbXBvcnQgZXhwcmVzcywgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHtcbiAgQ29udGV4dCwgU1FTQmF0Y2hSZXNwb25zZSwgU2NoZWR1bGVkRXZlbnQsXG59IGZyb20gJ2F3cy1sYW1iZGEnO1xuXG5jb25zdCBldmVudFRlbXBsYXRlOiBTY2hlZHVsZWRFdmVudCA9IHtcbiAgdmVyc2lvbjogJzAnLFxuICBpZDogJzAnLFxuICAnZGV0YWlsLXR5cGUnOiAnU2NoZWR1bGVkIEV2ZW50JyxcbiAgc291cmNlOiAnYXdzLmV2ZW50cycsXG4gIGFjY291bnQ6ICcxMjM0NTY3ODkwMTInLFxuICB0aW1lOiAnMTk3MC0wMS0wMVQwMDowMDowMFonLFxuICByZWdpb246ICd1cy1lYXN0LTEnLFxuICByZXNvdXJjZXM6IFtdLFxuICBkZXRhaWw6IHt9LFxufTtcblxuY29uc3QgY29udGV4dFRlbXBsYXRlOiBDb250ZXh0ID0ge1xuICBhd3NSZXF1ZXN0SWQ6ICcnLFxuICBjYWxsYmFja1dhaXRzRm9yRW1wdHlFdmVudExvb3A6IGZhbHNlLFxuICBmdW5jdGlvbk5hbWU6ICd0ZXN0JyxcbiAgZnVuY3Rpb25WZXJzaW9uOiAnJyxcbiAgaW52b2tlZEZ1bmN0aW9uQXJuOiAnJyxcbiAgbG9nR3JvdXBOYW1lOiAnJyxcbiAgbG9nU3RyZWFtTmFtZTogJycsXG4gIG1lbW9yeUxpbWl0SW5NQjogJycsXG4gIGdldFJlbWFpbmluZ1RpbWVJbk1pbGxpczogKCkgPT4gMCxcbiAgZG9uZTogKCkgPT4geyB9LFxuICBmYWlsOiAoKSA9PiB7IH0sXG4gIHN1Y2NlZWQ6ICgpID0+IHsgfSxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xuZXhwb3J0IGZ1bmN0aW9uIHNjaGVkdWxlZExvY2FsKGhhbmRsZXI6IChldmVudDogU2NoZWR1bGVkRXZlbnQsIGNvbnRleHQ6IENvbnRleHQpID0+IFByb21pc2U8U1FTQmF0Y2hSZXNwb25zZT4pIHtcbiAgY29uc3QgcG9ydCA9ICsocHJvY2Vzcy5lbnYucG9ydCB8fCAnMzAwMCcpO1xuICBjb25zdCBhcHAgPSBleHByZXNzKCk7XG5cbiAgYXBwLmFsbCgnLyonLCBhc3luYyAocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEludm9rZSB0aGUgZnVuY3Rpb24gaGFuZGxlcjpcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGhhbmRsZXIoZXZlbnRUZW1wbGF0ZSwgY29udGV4dFRlbXBsYXRlKTtcblxuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBjb25zb2xlLmxvZygnUmVzdWx0OicpO1xuICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXN1bHQpKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2VuZCB0aGUgcmVzcG9uc2VcbiAgICAgIHJlcy5zdGF0dXMoMjAwKS5zZW5kKEpTT04uc3RyaW5naWZ5KHJlc3VsdCkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIExvZyB0aGUgZXJyb3IgYW5kIHNlbmQgYSA1MDAgcmVzcG9uc2VcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgY29uc29sZS5sb2coKGUgYXMgRXJyb3IpLnN0YWNrKTtcbiAgICAgIHJlcy5zdGF0dXMoNTAwKS5zZW5kKGAke2V9YCk7XG4gICAgfVxuICB9KTtcblxuICBhcHAubGlzdGVuKHBvcnQsICgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgU2NoZWR1bGVkIExhbWJkYSBoYW5kbGVyIGNhbiBiZSBpbnZva2VkIHZpYSBQT1NUIGh0dHA6Ly9sb2NhbGhvc3Q6JHtwb3J0fS4gVGhlIHJlcXVlc3QgYm9keSB3aWxsIGJlIHNlbnQgYXMgYW4gU1FTIG1lc3NhZ2UgYm9keWApO1xuICB9KTtcbn1cbiJdfQ==