UNPKG

@riddance/deploy

Version:

27 lines 4.07 kB
import { getApis } from './services/api-gateway.js'; import { getFunctions } from './services/lambda.js'; export class Resolver { #context; #endpointCache; constructor(context) { this.#context = context; this.#endpointCache = {}; } async getEnvironment(prefix, service) { const functions = await getFunctions(this.#context, prefix, service); return Object.fromEntries(functions.flatMap(fn => Object.entries(fn.env))); } async getBaseUrl(prefix, service) { const cached = await (this.#endpointCache[prefix] ??= getServiceApis(this.#context, prefix)); const name = `${prefix}-${service}`; return cached[name]; } } async function getServiceApis(context, prefix) { const serviceApis = {}; for await (const api of getApis(context, prefix)) { serviceApis[api.name] = `${api.apiEndpoint}/`; } return serviceApis; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlc29sdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVuRCxNQUFNLE9BQU8sUUFBUTtJQUNSLFFBQVEsQ0FBQTtJQUNSLGNBQWMsQ0FBOEQ7SUFFckYsWUFBWSxPQUFnQjtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQTtJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFjLEVBQUUsT0FBZTtRQUNoRCxNQUFNLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNwRSxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM5RSxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBZTtRQUM1QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzVGLE1BQU0sSUFBSSxHQUFHLEdBQUcsTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBQ25DLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZCLENBQUM7Q0FDSjtBQUVELEtBQUssVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRSxNQUFjO0lBQzFELE1BQU0sV0FBVyxHQUErQixFQUFFLENBQUE7SUFDbEQsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQy9DLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsV0FBVyxHQUFHLENBQUE7SUFDakQsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFBO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENvbnRleHQgfSBmcm9tICcuL2xpdGUuanMnXG5pbXBvcnQgeyBnZXRBcGlzIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcGktZ2F0ZXdheS5qcydcbmltcG9ydCB7IGdldEZ1bmN0aW9ucyB9IGZyb20gJy4vc2VydmljZXMvbGFtYmRhLmpzJ1xuXG5leHBvcnQgY2xhc3MgUmVzb2x2ZXIge1xuICAgIHJlYWRvbmx5ICNjb250ZXh0XG4gICAgcmVhZG9ubHkgI2VuZHBvaW50Q2FjaGU6IHsgW3ByZWZpeDogc3RyaW5nXTogUHJvbWlzZTx7IFthcGlOYW1lOiBzdHJpbmddOiBzdHJpbmcgfT4gfVxuXG4gICAgY29uc3RydWN0b3IoY29udGV4dDogQ29udGV4dCkge1xuICAgICAgICB0aGlzLiNjb250ZXh0ID0gY29udGV4dFxuICAgICAgICB0aGlzLiNlbmRwb2ludENhY2hlID0ge31cbiAgICB9XG5cbiAgICBhc3luYyBnZXRFbnZpcm9ubWVudChwcmVmaXg6IHN0cmluZywgc2VydmljZTogc3RyaW5nKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9PiB7XG4gICAgICAgIGNvbnN0IGZ1bmN0aW9ucyA9IGF3YWl0IGdldEZ1bmN0aW9ucyh0aGlzLiNjb250ZXh0LCBwcmVmaXgsIHNlcnZpY2UpXG4gICAgICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoZnVuY3Rpb25zLmZsYXRNYXAoZm4gPT4gT2JqZWN0LmVudHJpZXMoZm4uZW52KSkpXG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0QmFzZVVybChwcmVmaXg6IHN0cmluZywgc2VydmljZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0ICh0aGlzLiNlbmRwb2ludENhY2hlW3ByZWZpeF0gPz89IGdldFNlcnZpY2VBcGlzKHRoaXMuI2NvbnRleHQsIHByZWZpeCkpXG4gICAgICAgIGNvbnN0IG5hbWUgPSBgJHtwcmVmaXh9LSR7c2VydmljZX1gXG4gICAgICAgIHJldHVybiBjYWNoZWRbbmFtZV1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldFNlcnZpY2VBcGlzKGNvbnRleHQ6IENvbnRleHQsIHByZWZpeDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2VydmljZUFwaXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9ID0ge31cbiAgICBmb3IgYXdhaXQgKGNvbnN0IGFwaSBvZiBnZXRBcGlzKGNvbnRleHQsIHByZWZpeCkpIHtcbiAgICAgICAgc2VydmljZUFwaXNbYXBpLm5hbWVdID0gYCR7YXBpLmFwaUVuZHBvaW50fS9gXG4gICAgfVxuICAgIHJldHVybiBzZXJ2aWNlQXBpc1xufVxuIl19