UNPKG

@riddance/deploy

Version:

41 lines 10.3 kB
import { getApi, syncGateway } from './services/api-gateway.js'; import { logQueryLink } from './services/cloud-watch.js'; import { syncEventBridge } from './services/event-bridge.js'; import { getFunctions, syncLambda } from './services/lambda.js'; import { assignPolicy, getRole, syncRole } from './services/roles.js'; import { syncTopics } from './services/sns.js'; import { syncTriggers } from './services/triggers.js'; export async function getCurrentState(context, prefix, service) { const [role, functions, apis] = await Promise.all([ getRole(context, prefix, service), getFunctions(context, prefix, service), getApi(context, prefix, service), ]); return { role, functions, apis }; } export async function sync(context, prefix, service, currentState, reflection, publishTopics, corsSites, environment, code, provider) { const role = await syncRole(context, prefix, service, currentState.role); const fns = await syncLambda(context, prefix, currentState.functions, reflection, environment, role, code); const [_arn, _aws, _lambda, region, account, _function, _name] = fns[0]?.id.split(':') ?? []; if (!region || !account) { throw new Error('Weird'); } await assignPolicy(context, prefix, service, region, account, publishTopics, provider.aws?.policyStatements ?? []); const existingGatewayId = currentState.apis.api?.apiId; if (existingGatewayId) { await syncTriggers(context, prefix, service, fns, reflection, region, account, existingGatewayId); } const gatewayId = reflection.http.length === 0 ? undefined : await syncGateway(context, region, account, prefix, service, currentState.apis, reflection, corsSites); if (!existingGatewayId) { await syncTriggers(context, prefix, service, fns, reflection, region, account, gatewayId); } await syncTopics(context, fns, prefix, service, reflection, region, account); await syncEventBridge(context, region, account, prefix, service, reflection); return { logLink: logQueryLink(region, prefix, service, [...reflection.http, ...reflection.timers, ...reflection.events].map(fn => fn.name), reflection.revision), host: gatewayId && `https://${gatewayId}.execute-api.${region}.amazonaws.com/`, }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUVyRCxNQUFNLENBQUMsS0FBSyxVQUFVLGVBQWUsQ0FBQyxPQUFnQixFQUFFLE1BQWMsRUFBRSxPQUFlO0lBQ25GLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUM5QyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7UUFDakMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztLQUNuQyxDQUFDLENBQUE7SUFDRixPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQTtBQUNwQyxDQUFDO0FBSUQsTUFBTSxDQUFDLEtBQUssVUFBVSxJQUFJLENBQ3RCLE9BQWdCLEVBQ2hCLE1BQWMsRUFDZCxPQUFlLEVBQ2YsWUFBMEIsRUFDMUIsVUFBc0IsRUFDdEIsYUFBdUIsRUFDdkIsU0FBbUIsRUFDbkIsV0FBc0MsRUFDdEMsSUFBZ0MsRUFDaEMsUUFFQztJQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUV4RSxNQUFNLEdBQUcsR0FBRyxNQUFNLFVBQVUsQ0FDeEIsT0FBTyxFQUNQLE1BQU0sRUFDTixZQUFZLENBQUMsU0FBUyxFQUN0QixVQUFVLEVBQ1YsV0FBVyxFQUNYLElBQUksRUFDSixJQUFJLENBQ1AsQ0FBQTtJQUNELE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDNUYsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUVELE1BQU0sWUFBWSxDQUNkLE9BQU8sRUFDUCxNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsYUFBYSxFQUNiLFFBQVEsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLElBQUksRUFBRSxDQUN2QyxDQUFBO0lBRUQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUE7SUFDdEQsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sWUFBWSxDQUNkLE9BQU8sRUFDUCxNQUFNLEVBQ04sT0FBTyxFQUNQLEdBQUcsRUFDSCxVQUFVLEVBQ1YsTUFBTSxFQUNOLE9BQU8sRUFDUCxpQkFBaUIsQ0FDcEIsQ0FBQTtJQUNMLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FDWCxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxTQUFTO1FBQ1gsQ0FBQyxDQUFDLE1BQU0sV0FBVyxDQUNiLE9BQU8sRUFDUCxNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsWUFBWSxDQUFDLElBQUksRUFDakIsVUFBVSxFQUNWLFNBQVMsQ0FDWixDQUFBO0lBRVgsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDckIsTUFBTSxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQzdGLENBQUM7SUFFRCxNQUFNLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUM1RSxNQUFNLGVBQWUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFBO0lBRTVFLE9BQU87UUFDSCxPQUFPLEVBQUUsWUFBWSxDQUNqQixNQUFNLEVBQ04sTUFBTSxFQUNOLE9BQU8sRUFDUCxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNuRixVQUFVLENBQUMsUUFBUSxDQUN0QjtRQUNELElBQUksRUFBRSxTQUFTLElBQUksV0FBVyxTQUFTLGdCQUFnQixNQUFNLGlCQUFpQjtLQUNqRixDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUmVmbGVjdGlvbiB9IGZyb20gJ0ByaWRkYW5jZS9ob3N0L3JlZmxlY3QnXG5pbXBvcnQgeyB0eXBlIENvbnRleHQgfSBmcm9tICcuL2xpdGUuanMnXG5pbXBvcnQgeyBnZXRBcGksIHN5bmNHYXRld2F5IH0gZnJvbSAnLi9zZXJ2aWNlcy9hcGktZ2F0ZXdheS5qcydcbmltcG9ydCB7IGxvZ1F1ZXJ5TGluayB9IGZyb20gJy4vc2VydmljZXMvY2xvdWQtd2F0Y2guanMnXG5pbXBvcnQgeyBzeW5jRXZlbnRCcmlkZ2UgfSBmcm9tICcuL3NlcnZpY2VzL2V2ZW50LWJyaWRnZS5qcydcbmltcG9ydCB7IGdldEZ1bmN0aW9ucywgc3luY0xhbWJkYSB9IGZyb20gJy4vc2VydmljZXMvbGFtYmRhLmpzJ1xuaW1wb3J0IHsgYXNzaWduUG9saWN5LCBnZXRSb2xlLCBzeW5jUm9sZSB9IGZyb20gJy4vc2VydmljZXMvcm9sZXMuanMnXG5pbXBvcnQgeyBzeW5jVG9waWNzIH0gZnJvbSAnLi9zZXJ2aWNlcy9zbnMuanMnXG5pbXBvcnQgeyBzeW5jVHJpZ2dlcnMgfSBmcm9tICcuL3NlcnZpY2VzL3RyaWdnZXJzLmpzJ1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q3VycmVudFN0YXRlKGNvbnRleHQ6IENvbnRleHQsIHByZWZpeDogc3RyaW5nLCBzZXJ2aWNlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBbcm9sZSwgZnVuY3Rpb25zLCBhcGlzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgZ2V0Um9sZShjb250ZXh0LCBwcmVmaXgsIHNlcnZpY2UpLFxuICAgICAgICBnZXRGdW5jdGlvbnMoY29udGV4dCwgcHJlZml4LCBzZXJ2aWNlKSxcbiAgICAgICAgZ2V0QXBpKGNvbnRleHQsIHByZWZpeCwgc2VydmljZSksXG4gICAgXSlcbiAgICByZXR1cm4geyByb2xlLCBmdW5jdGlvbnMsIGFwaXMgfVxufVxuXG5leHBvcnQgdHlwZSBDdXJyZW50U3RhdGUgPSBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIGdldEN1cnJlbnRTdGF0ZT4+XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzeW5jKFxuICAgIGNvbnRleHQ6IENvbnRleHQsXG4gICAgcHJlZml4OiBzdHJpbmcsXG4gICAgc2VydmljZTogc3RyaW5nLFxuICAgIGN1cnJlbnRTdGF0ZTogQ3VycmVudFN0YXRlLFxuICAgIHJlZmxlY3Rpb246IFJlZmxlY3Rpb24sXG4gICAgcHVibGlzaFRvcGljczogc3RyaW5nW10sXG4gICAgY29yc1NpdGVzOiBzdHJpbmdbXSxcbiAgICBlbnZpcm9ubWVudDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICBjb2RlOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICBwcm92aWRlcjoge1xuICAgICAgICBhd3M/OiB7IHBvbGljeVN0YXRlbWVudHM6IHsgRWZmZWN0OiBzdHJpbmc7IFJlc291cmNlOiBzdHJpbmc7IEFjdGlvbjogc3RyaW5nW10gfVtdIH1cbiAgICB9LFxuKSB7XG4gICAgY29uc3Qgcm9sZSA9IGF3YWl0IHN5bmNSb2xlKGNvbnRleHQsIHByZWZpeCwgc2VydmljZSwgY3VycmVudFN0YXRlLnJvbGUpXG5cbiAgICBjb25zdCBmbnMgPSBhd2FpdCBzeW5jTGFtYmRhKFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBwcmVmaXgsXG4gICAgICAgIGN1cnJlbnRTdGF0ZS5mdW5jdGlvbnMsXG4gICAgICAgIHJlZmxlY3Rpb24sXG4gICAgICAgIGVudmlyb25tZW50LFxuICAgICAgICByb2xlLFxuICAgICAgICBjb2RlLFxuICAgIClcbiAgICBjb25zdCBbX2FybiwgX2F3cywgX2xhbWJkYSwgcmVnaW9uLCBhY2NvdW50LCBfZnVuY3Rpb24sIF9uYW1lXSA9IGZuc1swXT8uaWQuc3BsaXQoJzonKSA/PyBbXVxuICAgIGlmICghcmVnaW9uIHx8ICFhY2NvdW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignV2VpcmQnKVxuICAgIH1cblxuICAgIGF3YWl0IGFzc2lnblBvbGljeShcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIGFjY291bnQsXG4gICAgICAgIHB1Ymxpc2hUb3BpY3MsXG4gICAgICAgIHByb3ZpZGVyLmF3cz8ucG9saWN5U3RhdGVtZW50cyA/PyBbXSxcbiAgICApXG5cbiAgICBjb25zdCBleGlzdGluZ0dhdGV3YXlJZCA9IGN1cnJlbnRTdGF0ZS5hcGlzLmFwaT8uYXBpSWRcbiAgICBpZiAoZXhpc3RpbmdHYXRld2F5SWQpIHtcbiAgICAgICAgYXdhaXQgc3luY1RyaWdnZXJzKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgIHNlcnZpY2UsXG4gICAgICAgICAgICBmbnMsXG4gICAgICAgICAgICByZWZsZWN0aW9uLFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgYWNjb3VudCxcbiAgICAgICAgICAgIGV4aXN0aW5nR2F0ZXdheUlkLFxuICAgICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgZ2F0ZXdheUlkID1cbiAgICAgICAgcmVmbGVjdGlvbi5odHRwLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogYXdhaXQgc3luY0dhdGV3YXkoXG4gICAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgICAgICAgYWNjb3VudCxcbiAgICAgICAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgICAgICAgIHNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50U3RhdGUuYXBpcyxcbiAgICAgICAgICAgICAgICAgIHJlZmxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICBjb3JzU2l0ZXMsXG4gICAgICAgICAgICAgIClcblxuICAgIGlmICghZXhpc3RpbmdHYXRld2F5SWQpIHtcbiAgICAgICAgYXdhaXQgc3luY1RyaWdnZXJzKGNvbnRleHQsIHByZWZpeCwgc2VydmljZSwgZm5zLCByZWZsZWN0aW9uLCByZWdpb24sIGFjY291bnQsIGdhdGV3YXlJZClcbiAgICB9XG5cbiAgICBhd2FpdCBzeW5jVG9waWNzKGNvbnRleHQsIGZucywgcHJlZml4LCBzZXJ2aWNlLCByZWZsZWN0aW9uLCByZWdpb24sIGFjY291bnQpXG4gICAgYXdhaXQgc3luY0V2ZW50QnJpZGdlKGNvbnRleHQsIHJlZ2lvbiwgYWNjb3VudCwgcHJlZml4LCBzZXJ2aWNlLCByZWZsZWN0aW9uKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbG9nTGluazogbG9nUXVlcnlMaW5rKFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgcHJlZml4LFxuICAgICAgICAgICAgc2VydmljZSxcbiAgICAgICAgICAgIFsuLi5yZWZsZWN0aW9uLmh0dHAsIC4uLnJlZmxlY3Rpb24udGltZXJzLCAuLi5yZWZsZWN0aW9uLmV2ZW50c10ubWFwKGZuID0+IGZuLm5hbWUpLFxuICAgICAgICAgICAgcmVmbGVjdGlvbi5yZXZpc2lvbixcbiAgICAgICAgKSxcbiAgICAgICAgaG9zdDogZ2F0ZXdheUlkICYmIGBodHRwczovLyR7Z2F0ZXdheUlkfS5leGVjdXRlLWFwaS4ke3JlZ2lvbn0uYW1hem9uYXdzLmNvbS9gLFxuICAgIH1cbn1cbiJdfQ==