UNPKG

@energica-city/shared-amplify-utils

Version:

Shared utilities for AWS Amplify projects

44 lines 7.52 kB
import { MiddlewareChain } from '../middlewareChain'; export function createWebSocketChain(config = {}) { return new MiddlewareChain(config); } export function wrapWebSocketHandler(chain, handler) { return async (event, context) => { const input = { event, context }; return await chain.execute(input, handler); }; } export function createAllowPolicy(principalId, resourceArn = '*', action = 'execute-api:Invoke', context = {}) { return { principalId, policyDocument: { Version: '2012-10-17', Statement: [{ Effect: 'Allow', Action: action, Resource: resourceArn }], }, context, }; } export function createDenyPolicy(principalId, resourceArn = '*', action = 'execute-api:Invoke') { return { principalId, policyDocument: { Version: '2012-10-17', Statement: [{ Effect: 'Deny', Action: action, Resource: resourceArn }], }, }; } export function getModelsFromInput(input) { if (!input.models) { throw new Error('Models not available. Ensure WebSocketModelInitializer middleware is used before this handler.'); } return input.models; } export function getModelFromInput(input, modelName) { const models = getModelsFromInput(input); const model = models[modelName]; if (!model) { throw new Error(`Model '${String(modelName)}' not found. Available models: ${Object.keys(models).join(', ')}`); } return model; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViU29ja2V0TWlkZGxld2FyZUNoYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbWlkZGxld2FyZS93ZWJzb2NrZXQvV2ViU29ja2V0TWlkZGxld2FyZUNoYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVNyRCxNQUFNLFVBQVUsb0JBQW9CLENBSWxDLFNBR0ksRUFBRTtJQUVOLE9BQU8sSUFBSSxlQUFlLENBQTRDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBSWxDLEtBQWdELEVBQ2hELE9BQXNFO0lBS3RFLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUM5QixNQUFNLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQXNDLENBQUM7UUFDckUsT0FBTyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFdBQW1CLEVBQ25CLGNBQXNCLEdBQUcsRUFDekIsU0FBaUIsb0JBQW9CLEVBQ3JDLFVBQXFELEVBQUU7SUFFdkQsT0FBTztRQUNMLFdBQVc7UUFDWCxjQUFjLEVBQUU7WUFDZCxPQUFPLEVBQUUsWUFBWTtZQUNyQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUM7U0FDeEU7UUFDRCxPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFdBQW1CLEVBQ25CLGNBQXNCLEdBQUcsRUFDekIsU0FBaUIsb0JBQW9CO0lBRXJDLE9BQU87UUFDTCxXQUFXO1FBQ1gsY0FBYyxFQUFFO1lBQ2QsT0FBTyxFQUFFLFlBQVk7WUFDckIsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO1NBQ3ZFO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBR2hDLEtBQXVDO0lBSXZDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FDYixnR0FBZ0csQ0FDakcsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FJL0IsS0FBdUMsRUFDdkMsU0FBWTtJQUVaLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUNiLFVBQVUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQ0FBa0MsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDOUYsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaWRkbGV3YXJlQ2hhaW4gfSBmcm9tICcuLi9taWRkbGV3YXJlQ2hhaW4nO1xuaW1wb3J0IHR5cGUge1xuICBXZWJTb2NrZXRJbnB1dFdpdGhNb2RlbHMsXG4gIEF1dGhvcml6ZXJSZXNwb25zZSxcbiAgV2ViU29ja2V0SGFuZGxlclJldHVybixcbiAgV2ViU29ja2V0TWlkZGxld2FyZUNoYWluLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgQW1wbGlmeU1vZGVsVHlwZSwgUXVlcnlGYWN0b3J5UmVzdWx0IH0gZnJvbSAnLi4vLi4vcXVlcmllcy90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXZWJTb2NrZXRDaGFpbjxcbiAgVFR5cGVzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgQW1wbGlmeU1vZGVsVHlwZT4sXG4gIFRSZXR1cm4gPSBXZWJTb2NrZXRIYW5kbGVyUmV0dXJuLFxuPihcbiAgY29uZmlnOiB7XG4gICAgZW5hYmxlRGVidWdMb2dnaW5nPzogYm9vbGVhbjtcbiAgICBvbkVycm9yPzogKGVycm9yOiB1bmtub3duLCBtaWRkbGV3YXJlTmFtZTogc3RyaW5nKSA9PiB2b2lkO1xuICB9ID0ge30sXG4pOiBXZWJTb2NrZXRNaWRkbGV3YXJlQ2hhaW48VFR5cGVzLCBUUmV0dXJuPiB7XG4gIHJldHVybiBuZXcgTWlkZGxld2FyZUNoYWluPFdlYlNvY2tldElucHV0V2l0aE1vZGVsczxUVHlwZXM+LCBUUmV0dXJuPihjb25maWcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcFdlYlNvY2tldEhhbmRsZXI8XG4gIFRUeXBlcyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIEFtcGxpZnlNb2RlbFR5cGU+LFxuICBUUmV0dXJuIGV4dGVuZHMgV2ViU29ja2V0SGFuZGxlclJldHVybiA9IFdlYlNvY2tldEhhbmRsZXJSZXR1cm4sXG4+KFxuICBjaGFpbjogV2ViU29ja2V0TWlkZGxld2FyZUNoYWluPFRUeXBlcywgVFJldHVybj4sXG4gIGhhbmRsZXI6IChpbnB1dDogV2ViU29ja2V0SW5wdXRXaXRoTW9kZWxzPFRUeXBlcz4pID0+IFByb21pc2U8VFJldHVybj4sXG4pOiAoXG4gIGV2ZW50OiBXZWJTb2NrZXRJbnB1dFdpdGhNb2RlbHM8VFR5cGVzPlsnZXZlbnQnXSxcbiAgY29udGV4dDogV2ViU29ja2V0SW5wdXRXaXRoTW9kZWxzPFRUeXBlcz5bJ2NvbnRleHQnXSxcbikgPT4gUHJvbWlzZTxUUmV0dXJuPiB7XG4gIHJldHVybiBhc3luYyAoZXZlbnQsIGNvbnRleHQpID0+IHtcbiAgICBjb25zdCBpbnB1dCA9IHsgZXZlbnQsIGNvbnRleHQgfSBhcyBXZWJTb2NrZXRJbnB1dFdpdGhNb2RlbHM8VFR5cGVzPjtcbiAgICByZXR1cm4gYXdhaXQgY2hhaW4uZXhlY3V0ZShpbnB1dCwgaGFuZGxlcik7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbGxvd1BvbGljeShcbiAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgcmVzb3VyY2VBcm46IHN0cmluZyA9ICcqJyxcbiAgYWN0aW9uOiBzdHJpbmcgPSAnZXhlY3V0ZS1hcGk6SW52b2tlJyxcbiAgY29udGV4dDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4gPSB7fSxcbik6IEF1dGhvcml6ZXJSZXNwb25zZSB7XG4gIHJldHVybiB7XG4gICAgcHJpbmNpcGFsSWQsXG4gICAgcG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFZlcnNpb246ICcyMDEyLTEwLTE3JyxcbiAgICAgIFN0YXRlbWVudDogW3sgRWZmZWN0OiAnQWxsb3cnLCBBY3Rpb246IGFjdGlvbiwgUmVzb3VyY2U6IHJlc291cmNlQXJuIH1dLFxuICAgIH0sXG4gICAgY29udGV4dCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlbnlQb2xpY3koXG4gIHByaW5jaXBhbElkOiBzdHJpbmcsXG4gIHJlc291cmNlQXJuOiBzdHJpbmcgPSAnKicsXG4gIGFjdGlvbjogc3RyaW5nID0gJ2V4ZWN1dGUtYXBpOkludm9rZScsXG4pOiBBdXRob3JpemVyUmVzcG9uc2Uge1xuICByZXR1cm4ge1xuICAgIHByaW5jaXBhbElkLFxuICAgIHBvbGljeURvY3VtZW50OiB7XG4gICAgICBWZXJzaW9uOiAnMjAxMi0xMC0xNycsXG4gICAgICBTdGF0ZW1lbnQ6IFt7IEVmZmVjdDogJ0RlbnknLCBBY3Rpb246IGFjdGlvbiwgUmVzb3VyY2U6IHJlc291cmNlQXJuIH1dLFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbHNGcm9tSW5wdXQ8XG4gIFRUeXBlcyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIEFtcGxpZnlNb2RlbFR5cGU+LFxuPihcbiAgaW5wdXQ6IFdlYlNvY2tldElucHV0V2l0aE1vZGVsczxUVHlwZXM+LFxuKToge1xuICBbSyBpbiBrZXlvZiBUVHlwZXNdOiBRdWVyeUZhY3RvcnlSZXN1bHQ8SyAmIHN0cmluZywgVFR5cGVzPjtcbn0ge1xuICBpZiAoIWlucHV0Lm1vZGVscykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdNb2RlbHMgbm90IGF2YWlsYWJsZS4gRW5zdXJlIFdlYlNvY2tldE1vZGVsSW5pdGlhbGl6ZXIgbWlkZGxld2FyZSBpcyB1c2VkIGJlZm9yZSB0aGlzIGhhbmRsZXIuJyxcbiAgICApO1xuICB9XG4gIHJldHVybiBpbnB1dC5tb2RlbHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbEZyb21JbnB1dDxcbiAgVCBleHRlbmRzIGtleW9mIFRUeXBlcyxcbiAgVFR5cGVzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgQW1wbGlmeU1vZGVsVHlwZT4sXG4+KFxuICBpbnB1dDogV2ViU29ja2V0SW5wdXRXaXRoTW9kZWxzPFRUeXBlcz4sXG4gIG1vZGVsTmFtZTogVCxcbik6IFF1ZXJ5RmFjdG9yeVJlc3VsdDxUICYgc3RyaW5nLCBUVHlwZXM+IHtcbiAgY29uc3QgbW9kZWxzID0gZ2V0TW9kZWxzRnJvbUlucHV0KGlucHV0KTtcbiAgY29uc3QgbW9kZWwgPSBtb2RlbHNbbW9kZWxOYW1lXTtcbiAgaWYgKCFtb2RlbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBNb2RlbCAnJHtTdHJpbmcobW9kZWxOYW1lKX0nIG5vdCBmb3VuZC4gQXZhaWxhYmxlIG1vZGVsczogJHtPYmplY3Qua2V5cyhtb2RlbHMpLmpvaW4oJywgJyl9YCxcbiAgICApO1xuICB9XG4gIHJldHVybiBtb2RlbDtcbn1cbiJdfQ==