@riddance/deploy
Version:
34 lines • 7.9 kB
JavaScript
import { localAwsEnv } from './lite.js';
import { getApi, syncGateway } from './services/api-gateway.js';
import { getFunctions, syncLambda } from './services/lambda.js';
import { assignPolicy, getRole, syncRole } from './services/roles.js';
import { syncTriggers } from './services/triggers.js';
export async function getCurrentState(prefix, service) {
const env = await localAwsEnv(undefined, prefix);
const [role, functions, apis] = await Promise.all([
getRole(env, prefix, service),
getFunctions(env, prefix, service),
getApi(env, prefix, service),
]);
return { role, functions, apis };
}
export async function sync(prefix, service, currentState, reflection, corsSites, environment, code, provider) {
const env = await localAwsEnv(undefined, prefix);
const role = await syncRole(env, prefix, service, currentState.role);
const fns = await syncLambda(env, 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(env, prefix, service, region, account, provider.aws?.policyStatements ?? []);
const existingGatewayId = currentState.apis.api?.apiId;
if (existingGatewayId) {
await syncTriggers(env, prefix, service, fns, reflection, region, account, existingGatewayId);
}
const gatewayId = await syncGateway(env, region, account, prefix, service, currentState.apis, reflection, corsSites);
if (!existingGatewayId) {
await syncTriggers(env, prefix, service, fns, reflection, region, account, gatewayId);
}
return `https://${gatewayId}.execute-api.eu-central-1.amazonaws.com/`;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRXJELE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLE1BQWMsRUFBRSxPQUFlO0lBQ2pFLE1BQU0sR0FBRyxHQUFHLE1BQU0sV0FBVyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNoRCxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDOUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBQzdCLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztRQUNsQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7S0FDL0IsQ0FBQyxDQUFBO0lBQ0YsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUE7QUFDcEMsQ0FBQztBQUlELE1BQU0sQ0FBQyxLQUFLLFVBQVUsSUFBSSxDQUN0QixNQUFjLEVBQ2QsT0FBZSxFQUNmLFlBQTBCLEVBQzFCLFVBQXNCLEVBQ3RCLFNBQW1CLEVBQ25CLFdBQXNDLEVBQ3RDLElBQWdDLEVBQ2hDLFFBRUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLFdBQVcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDaEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3BFLE1BQU0sR0FBRyxHQUFHLE1BQU0sVUFBVSxDQUN4QixHQUFHLEVBQ0gsTUFBTSxFQUNOLFlBQVksQ0FBQyxTQUFTLEVBQ3RCLFVBQVUsRUFDVixXQUFXLEVBQ1gsSUFBSSxFQUNKLElBQUksQ0FDUCxDQUFBO0lBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUM1RixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRUQsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLGdCQUFnQixJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRS9GLE1BQU0saUJBQWlCLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFBO0lBQ3RELElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNwQixNQUFNLFlBQVksQ0FDZCxHQUFHLEVBQ0gsTUFBTSxFQUNOLE9BQU8sRUFDUCxHQUFHLEVBQ0gsVUFBVSxFQUNWLE1BQU0sRUFDTixPQUFPLEVBQ1AsaUJBQWlCLENBQ3BCLENBQUE7SUFDTCxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxXQUFXLENBQy9CLEdBQUcsRUFDSCxNQUFNLEVBQ04sT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsWUFBWSxDQUFDLElBQUksRUFDakIsVUFBVSxFQUNWLFNBQVMsQ0FDWixDQUFBO0lBRUQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDckIsTUFBTSxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFBO0lBQ3pGLENBQUM7SUFFRCxPQUFPLFdBQVcsU0FBUywwQ0FBMEMsQ0FBQTtBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZWZsZWN0aW9uIH0gZnJvbSAnQHJpZGRhbmNlL2hvc3QvcmVmbGVjdCdcbmltcG9ydCB7IGxvY2FsQXdzRW52IH0gZnJvbSAnLi9saXRlLmpzJ1xuaW1wb3J0IHsgZ2V0QXBpLCBzeW5jR2F0ZXdheSB9IGZyb20gJy4vc2VydmljZXMvYXBpLWdhdGV3YXkuanMnXG5pbXBvcnQgeyBnZXRGdW5jdGlvbnMsIHN5bmNMYW1iZGEgfSBmcm9tICcuL3NlcnZpY2VzL2xhbWJkYS5qcydcbmltcG9ydCB7IGFzc2lnblBvbGljeSwgZ2V0Um9sZSwgc3luY1JvbGUgfSBmcm9tICcuL3NlcnZpY2VzL3JvbGVzLmpzJ1xuaW1wb3J0IHsgc3luY1RyaWdnZXJzIH0gZnJvbSAnLi9zZXJ2aWNlcy90cmlnZ2Vycy5qcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRTdGF0ZShwcmVmaXg6IHN0cmluZywgc2VydmljZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZW52ID0gYXdhaXQgbG9jYWxBd3NFbnYodW5kZWZpbmVkLCBwcmVmaXgpXG4gICAgY29uc3QgW3JvbGUsIGZ1bmN0aW9ucywgYXBpc10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgIGdldFJvbGUoZW52LCBwcmVmaXgsIHNlcnZpY2UpLFxuICAgICAgICBnZXRGdW5jdGlvbnMoZW52LCBwcmVmaXgsIHNlcnZpY2UpLFxuICAgICAgICBnZXRBcGkoZW52LCBwcmVmaXgsIHNlcnZpY2UpLFxuICAgIF0pXG4gICAgcmV0dXJuIHsgcm9sZSwgZnVuY3Rpb25zLCBhcGlzIH1cbn1cblxuZXhwb3J0IHR5cGUgQ3VycmVudFN0YXRlID0gQXdhaXRlZDxSZXR1cm5UeXBlPHR5cGVvZiBnZXRDdXJyZW50U3RhdGU+PlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3luYyhcbiAgICBwcmVmaXg6IHN0cmluZyxcbiAgICBzZXJ2aWNlOiBzdHJpbmcsXG4gICAgY3VycmVudFN0YXRlOiBDdXJyZW50U3RhdGUsXG4gICAgcmVmbGVjdGlvbjogUmVmbGVjdGlvbixcbiAgICBjb3JzU2l0ZXM6IHN0cmluZ1tdLFxuICAgIGVudmlyb25tZW50OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIGNvZGU6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9LFxuICAgIHByb3ZpZGVyOiB7XG4gICAgICAgIGF3cz86IHsgcG9saWN5U3RhdGVtZW50czogeyBFZmZlY3Q6IHN0cmluZzsgUmVzb3VyY2U6IHN0cmluZzsgQWN0aW9uOiBzdHJpbmdbXSB9W10gfVxuICAgIH0sXG4pIHtcbiAgICBjb25zdCBlbnYgPSBhd2FpdCBsb2NhbEF3c0Vudih1bmRlZmluZWQsIHByZWZpeClcbiAgICBjb25zdCByb2xlID0gYXdhaXQgc3luY1JvbGUoZW52LCBwcmVmaXgsIHNlcnZpY2UsIGN1cnJlbnRTdGF0ZS5yb2xlKVxuICAgIGNvbnN0IGZucyA9IGF3YWl0IHN5bmNMYW1iZGEoXG4gICAgICAgIGVudixcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBjdXJyZW50U3RhdGUuZnVuY3Rpb25zLFxuICAgICAgICByZWZsZWN0aW9uLFxuICAgICAgICBlbnZpcm9ubWVudCxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY29kZSxcbiAgICApXG4gICAgY29uc3QgW19hcm4sIF9hd3MsIF9sYW1iZGEsIHJlZ2lvbiwgYWNjb3VudCwgX2Z1bmN0aW9uLCBfbmFtZV0gPSBmbnNbMF0/LmlkLnNwbGl0KCc6JykgPz8gW11cbiAgICBpZiAoIXJlZ2lvbiB8fCAhYWNjb3VudCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dlaXJkJylcbiAgICB9XG5cbiAgICBhd2FpdCBhc3NpZ25Qb2xpY3koZW52LCBwcmVmaXgsIHNlcnZpY2UsIHJlZ2lvbiwgYWNjb3VudCwgcHJvdmlkZXIuYXdzPy5wb2xpY3lTdGF0ZW1lbnRzID8/IFtdKVxuXG4gICAgY29uc3QgZXhpc3RpbmdHYXRld2F5SWQgPSBjdXJyZW50U3RhdGUuYXBpcy5hcGk/LmFwaUlkXG4gICAgaWYgKGV4aXN0aW5nR2F0ZXdheUlkKSB7XG4gICAgICAgIGF3YWl0IHN5bmNUcmlnZ2VycyhcbiAgICAgICAgICAgIGVudixcbiAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgIHNlcnZpY2UsXG4gICAgICAgICAgICBmbnMsXG4gICAgICAgICAgICByZWZsZWN0aW9uLFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgYWNjb3VudCxcbiAgICAgICAgICAgIGV4aXN0aW5nR2F0ZXdheUlkLFxuICAgICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgZ2F0ZXdheUlkID0gYXdhaXQgc3luY0dhdGV3YXkoXG4gICAgICAgIGVudixcbiAgICAgICAgcmVnaW9uLFxuICAgICAgICBhY2NvdW50LFxuICAgICAgICBwcmVmaXgsXG4gICAgICAgIHNlcnZpY2UsXG4gICAgICAgIGN1cnJlbnRTdGF0ZS5hcGlzLFxuICAgICAgICByZWZsZWN0aW9uLFxuICAgICAgICBjb3JzU2l0ZXMsXG4gICAgKVxuXG4gICAgaWYgKCFleGlzdGluZ0dhdGV3YXlJZCkge1xuICAgICAgICBhd2FpdCBzeW5jVHJpZ2dlcnMoZW52LCBwcmVmaXgsIHNlcnZpY2UsIGZucywgcmVmbGVjdGlvbiwgcmVnaW9uLCBhY2NvdW50LCBnYXRld2F5SWQpXG4gICAgfVxuXG4gICAgcmV0dXJuIGBodHRwczovLyR7Z2F0ZXdheUlkfS5leGVjdXRlLWFwaS5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbS9gXG59XG4iXX0=