@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
JavaScript
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==