UNPKG

@riddance/aws-host

Version:

This is `@riddance/aws-host`, a TypeScript AWS Lambda host adapter for the Riddance serverless framework. It provides AWS-specific implementations for HTTP, event, timer, and context handling in Lambda functions by providing Lambda entry points that trans

29 lines 5.47 kB
import { measure } from '@riddance/host/lib/timer'; import { getHandlers } from '@riddance/host/registry'; import { triggerTimer } from '@riddance/host/timer'; import { createAwsContext } from './context.js'; export * from '@riddance/service/timer'; async function asyncIndex(event, awsContext, callback) { const [handler] = getHandlers('timer'); if (!handler) { throw new Error('No timer handler registered.'); } const { log, context, success, flush } = createAwsContext(awsContext, { default: 300 }, {}, { operationId: event.id, }, handler.config, handler.meta, awsContext.invokedFunctionArn.split(':')[4]); await triggerTimer(log, context, handler, { triggerTime: new Date(event.time), }, success); try { callback(undefined); } catch (e) { log.fatal('Error sending result to Lambda.', e); } await measure(log.enrichReserved({ meta: handler.meta }), 'flush', flush); } export function awsHandler(event, context, callback) { context.callbackWaitsForEmptyEventLoop = false; asyncIndex(event, context, callback).catch((e) => setImmediate(callback, e)); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0aW1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNuRCxPQUFPLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFM0QsY0FBYyx5QkFBeUIsQ0FBQTtBQWN2QyxLQUFLLFVBQVUsVUFBVSxDQUNyQixLQUF1QixFQUN2QixVQUFzQixFQUN0QixRQUFrQztJQUVsQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3RDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQ0QsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLGdCQUFnQixDQUNyRCxVQUFVLEVBQ1YsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQ2hCLEVBQUUsRUFDRjtRQUNJLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRTtLQUN4QixFQUNELE9BQU8sQ0FBQyxNQUFNLEVBQ2QsT0FBTyxDQUFDLElBQUksRUFDWixVQUFVLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM5QyxDQUFBO0lBRUQsTUFBTSxZQUFZLENBQ2QsR0FBRyxFQUNILE9BQU8sRUFDUCxPQUFPLEVBQ1A7UUFDSSxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztLQUNwQyxFQUNELE9BQU8sQ0FDVixDQUFBO0lBRUQsSUFBSSxDQUFDO1FBQ0QsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3ZCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsR0FBRyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUE7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQ3RCLEtBQXVCLEVBQ3ZCLE9BQW1CLEVBQ25CLFFBQWtDO0lBRWxDLE9BQU8sQ0FBQyw4QkFBOEIsR0FBRyxLQUFLLENBQUE7SUFDOUMsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBVSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDekYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lYXN1cmUgfSBmcm9tICdAcmlkZGFuY2UvaG9zdC9saWIvdGltZXInXG5pbXBvcnQgeyBnZXRIYW5kbGVycyB9IGZyb20gJ0ByaWRkYW5jZS9ob3N0L3JlZ2lzdHJ5J1xuaW1wb3J0IHsgdHJpZ2dlclRpbWVyIH0gZnJvbSAnQHJpZGRhbmNlL2hvc3QvdGltZXInXG5pbXBvcnQgeyBBd3NDb250ZXh0LCBjcmVhdGVBd3NDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0LmpzJ1xuXG5leHBvcnQgKiBmcm9tICdAcmlkZGFuY2Uvc2VydmljZS90aW1lcidcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL0RlZmluaXRlbHlUeXBlZC9EZWZpbml0ZWx5VHlwZWQvYmxvYi9iOTY5Zjg5MDAwMGZmOTU3NDBmZDdiODc5Y2RmM2I3M2UxZWEwZmU4L3R5cGVzL2F3cy1sYW1iZGEvdHJpZ2dlci9ldmVudGJyaWRnZS5kLnRzXG5cbnR5cGUgRXZlbnRCcmlkZ2VFdmVudCA9IHtcbiAgICB2ZXJzaW9uOiAnMCdcbiAgICBpZDogc3RyaW5nXG4gICAgYWNjb3VudDogc3RyaW5nXG4gICAgdGltZTogc3RyaW5nXG4gICAgcmVnaW9uOiBzdHJpbmdcbiAgICByZXNvdXJjZXM6IHN0cmluZ1tdXG4gICAgc291cmNlOiBzdHJpbmdcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXN5bmNJbmRleChcbiAgICBldmVudDogRXZlbnRCcmlkZ2VFdmVudCxcbiAgICBhd3NDb250ZXh0OiBBd3NDb250ZXh0LFxuICAgIGNhbGxiYWNrOiAoZXJyb3I6IHVua25vd24pID0+IHZvaWQsXG4pIHtcbiAgICBjb25zdCBbaGFuZGxlcl0gPSBnZXRIYW5kbGVycygndGltZXInKVxuICAgIGlmICghaGFuZGxlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHRpbWVyIGhhbmRsZXIgcmVnaXN0ZXJlZC4nKVxuICAgIH1cbiAgICBjb25zdCB7IGxvZywgY29udGV4dCwgc3VjY2VzcywgZmx1c2ggfSA9IGNyZWF0ZUF3c0NvbnRleHQoXG4gICAgICAgIGF3c0NvbnRleHQsXG4gICAgICAgIHsgZGVmYXVsdDogMzAwIH0sXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgICBvcGVyYXRpb25JZDogZXZlbnQuaWQsXG4gICAgICAgIH0sXG4gICAgICAgIGhhbmRsZXIuY29uZmlnLFxuICAgICAgICBoYW5kbGVyLm1ldGEsXG4gICAgICAgIGF3c0NvbnRleHQuaW52b2tlZEZ1bmN0aW9uQXJuLnNwbGl0KCc6JylbNF0sXG4gICAgKVxuXG4gICAgYXdhaXQgdHJpZ2dlclRpbWVyKFxuICAgICAgICBsb2csXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGhhbmRsZXIsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXJUaW1lOiBuZXcgRGF0ZShldmVudC50aW1lKSxcbiAgICAgICAgfSxcbiAgICAgICAgc3VjY2VzcyxcbiAgICApXG5cbiAgICB0cnkge1xuICAgICAgICBjYWxsYmFjayh1bmRlZmluZWQpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsb2cuZmF0YWwoJ0Vycm9yIHNlbmRpbmcgcmVzdWx0IHRvIExhbWJkYS4nLCBlKVxuICAgIH1cblxuICAgIGF3YWl0IG1lYXN1cmUobG9nLmVucmljaFJlc2VydmVkKHsgbWV0YTogaGFuZGxlci5tZXRhIH0pLCAnZmx1c2gnLCBmbHVzaClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF3c0hhbmRsZXIoXG4gICAgZXZlbnQ6IEV2ZW50QnJpZGdlRXZlbnQsXG4gICAgY29udGV4dDogQXdzQ29udGV4dCxcbiAgICBjYWxsYmFjazogKGVycm9yOiB1bmtub3duKSA9PiB2b2lkLFxuKSB7XG4gICAgY29udGV4dC5jYWxsYmFja1dhaXRzRm9yRW1wdHlFdmVudExvb3AgPSBmYWxzZVxuICAgIGFzeW5jSW5kZXgoZXZlbnQsIGNvbnRleHQsIGNhbGxiYWNrKS5jYXRjaCgoZTogdW5rbm93bikgPT4gc2V0SW1tZWRpYXRlKGNhbGxiYWNrLCBlKSlcbn1cbiJdfQ==