UNPKG

@riddance/deploy

Version:

42 lines 8.59 kB
#!/usr/bin/env node import { reflect } from '@riddance/host/reflect'; import { Resolver } from './lib/aws/resolve.js'; import { logQueryLink } from './lib/aws/services/cloud-watch.js'; import { getCurrentState, sync } from './lib/aws/sync.js'; import { getGlue } from './lib/glue.js'; import { stage } from './lib/stage.js'; const [, , pathOrEnvArg, envArg, glueFile] = process.argv; if (!pathOrEnvArg) { throw new Error('Please specify target environment name'); } const path = envArg ? pathOrEnvArg : process.cwd(); const envName = envArg ?? pathOrEnvArg; try { const resolver = new Resolver(envName); const [{ service, implementations, publishTopics, corsSites, env, ...provider }, reflection] = await Promise.all([getGlue(path, envName, resolver, glueFile), reflect(path)]); const [currentState, code] = await Promise.all([ getCurrentState(envName, service), stage(path, reflection.revision, implementations, service, Object.fromEntries([ ...reflection.http.map(fn => [fn.name, 'http']), ...reflection.timers.map(fn => [fn.name, 'timer']), ...reflection.events.map(fn => [fn.name, 'event']), ])), ]); const { region, host } = await sync(envName, service, currentState, reflection, publishTopics, corsSites, await env, Object.fromEntries(code.map(c => [c.fn, c.code])), provider); console.log('done.'); if (reflection.http.length !== 0) { console.log(); console.log(`hosting on ${host}`); } console.log(); console.log(`See logs here: ${logQueryLink(region, envName, service, [...reflection.http, ...reflection.timers, ...reflection.events].map(fn => fn.name), reflection.revision)}`); } catch (e) { const fileError = e; if (fileError.code === 'ENOENT' && fileError.path?.endsWith('glue.json')) { console.error("Glue not found. Try to see if there isn't a glue project you can clone next to this project."); process.exit(1); } throw e; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV0QyxNQUFNLENBQUMsRUFBRSxBQUFELEVBQUcsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFBO0FBQ3pELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUE7QUFDN0QsQ0FBQztBQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7QUFDbEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLFlBQVksQ0FBQTtBQUV0QyxJQUFJLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsUUFBUSxFQUFFLEVBQUUsVUFBVSxDQUFDLEdBQ3hGLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2xGLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzNDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO1FBQ2pDLEtBQUssQ0FDRCxJQUFJLEVBQ0osVUFBVSxDQUFDLFFBQVEsRUFDbkIsZUFBZSxFQUNmLE9BQU8sRUFDUCxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ2YsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQVUsQ0FBQztZQUN4RCxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBVSxDQUFDO1lBQzNELEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFVLENBQUM7U0FDOUQsQ0FBQyxDQUNMO0tBQ0osQ0FBQyxDQUFBO0lBRUYsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FDL0IsT0FBTyxFQUNQLE9BQU8sRUFDUCxZQUFZLEVBQ1osVUFBVSxFQUNWLGFBQWEsRUFDYixTQUFTLEVBQ1QsTUFBTSxHQUFHLEVBQ1QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ2pELFFBQVEsQ0FDWCxDQUFBO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUVwQixJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7SUFDYixPQUFPLENBQUMsR0FBRyxDQUNQLGtCQUFrQixZQUFZLENBQzFCLE1BQU0sRUFDTixPQUFPLEVBQ1AsT0FBTyxFQUNQLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQ25GLFVBQVUsQ0FBQyxRQUFRLENBQ3RCLEVBQUUsQ0FDTixDQUFBO0FBQ0wsQ0FBQztBQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDVCxNQUFNLFNBQVMsR0FBRyxDQUFxQyxDQUFBO0lBQ3ZELElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxPQUFPLENBQUMsS0FBSyxDQUNULDhGQUE4RixDQUNqRyxDQUFBO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuQixDQUFDO0lBQ0QsTUFBTSxDQUFDLENBQUE7QUFDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyByZWZsZWN0IH0gZnJvbSAnQHJpZGRhbmNlL2hvc3QvcmVmbGVjdCdcbmltcG9ydCB7IFJlc29sdmVyIH0gZnJvbSAnLi9saWIvYXdzL3Jlc29sdmUuanMnXG5pbXBvcnQgeyBsb2dRdWVyeUxpbmsgfSBmcm9tICcuL2xpYi9hd3Mvc2VydmljZXMvY2xvdWQtd2F0Y2guanMnXG5pbXBvcnQgeyBnZXRDdXJyZW50U3RhdGUsIHN5bmMgfSBmcm9tICcuL2xpYi9hd3Mvc3luYy5qcydcbmltcG9ydCB7IGdldEdsdWUgfSBmcm9tICcuL2xpYi9nbHVlLmpzJ1xuaW1wb3J0IHsgc3RhZ2UgfSBmcm9tICcuL2xpYi9zdGFnZS5qcydcblxuY29uc3QgWywgLCBwYXRoT3JFbnZBcmcsIGVudkFyZywgZ2x1ZUZpbGVdID0gcHJvY2Vzcy5hcmd2XG5pZiAoIXBhdGhPckVudkFyZykge1xuICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHNwZWNpZnkgdGFyZ2V0IGVudmlyb25tZW50IG5hbWUnKVxufVxuY29uc3QgcGF0aCA9IGVudkFyZyA/IHBhdGhPckVudkFyZyA6IHByb2Nlc3MuY3dkKClcbmNvbnN0IGVudk5hbWUgPSBlbnZBcmcgPz8gcGF0aE9yRW52QXJnXG5cbnRyeSB7XG4gICAgY29uc3QgcmVzb2x2ZXIgPSBuZXcgUmVzb2x2ZXIoZW52TmFtZSlcbiAgICBjb25zdCBbeyBzZXJ2aWNlLCBpbXBsZW1lbnRhdGlvbnMsIHB1Ymxpc2hUb3BpY3MsIGNvcnNTaXRlcywgZW52LCAuLi5wcm92aWRlciB9LCByZWZsZWN0aW9uXSA9XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFtnZXRHbHVlKHBhdGgsIGVudk5hbWUsIHJlc29sdmVyLCBnbHVlRmlsZSksIHJlZmxlY3QocGF0aCldKVxuICAgIGNvbnN0IFtjdXJyZW50U3RhdGUsIGNvZGVdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICBnZXRDdXJyZW50U3RhdGUoZW52TmFtZSwgc2VydmljZSksXG4gICAgICAgIHN0YWdlKFxuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHJlZmxlY3Rpb24ucmV2aXNpb24sXG4gICAgICAgICAgICBpbXBsZW1lbnRhdGlvbnMsXG4gICAgICAgICAgICBzZXJ2aWNlLFxuICAgICAgICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKFtcbiAgICAgICAgICAgICAgICAuLi5yZWZsZWN0aW9uLmh0dHAubWFwKGZuID0+IFtmbi5uYW1lLCAnaHR0cCddIGFzIGNvbnN0KSxcbiAgICAgICAgICAgICAgICAuLi5yZWZsZWN0aW9uLnRpbWVycy5tYXAoZm4gPT4gW2ZuLm5hbWUsICd0aW1lciddIGFzIGNvbnN0KSxcbiAgICAgICAgICAgICAgICAuLi5yZWZsZWN0aW9uLmV2ZW50cy5tYXAoZm4gPT4gW2ZuLm5hbWUsICdldmVudCddIGFzIGNvbnN0KSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICApLFxuICAgIF0pXG5cbiAgICBjb25zdCB7IHJlZ2lvbiwgaG9zdCB9ID0gYXdhaXQgc3luYyhcbiAgICAgICAgZW52TmFtZSxcbiAgICAgICAgc2VydmljZSxcbiAgICAgICAgY3VycmVudFN0YXRlLFxuICAgICAgICByZWZsZWN0aW9uLFxuICAgICAgICBwdWJsaXNoVG9waWNzLFxuICAgICAgICBjb3JzU2l0ZXMsXG4gICAgICAgIGF3YWl0IGVudixcbiAgICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKGNvZGUubWFwKGMgPT4gW2MuZm4sIGMuY29kZV0pKSxcbiAgICAgICAgcHJvdmlkZXIsXG4gICAgKVxuXG4gICAgY29uc29sZS5sb2coJ2RvbmUuJylcblxuICAgIGlmIChyZWZsZWN0aW9uLmh0dHAubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKClcbiAgICAgICAgY29uc29sZS5sb2coYGhvc3Rpbmcgb24gJHtob3N0fWApXG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coKVxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgU2VlIGxvZ3MgaGVyZTogJHtsb2dRdWVyeUxpbmsoXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICBlbnZOYW1lLFxuICAgICAgICAgICAgc2VydmljZSxcbiAgICAgICAgICAgIFsuLi5yZWZsZWN0aW9uLmh0dHAsIC4uLnJlZmxlY3Rpb24udGltZXJzLCAuLi5yZWZsZWN0aW9uLmV2ZW50c10ubWFwKGZuID0+IGZuLm5hbWUpLFxuICAgICAgICAgICAgcmVmbGVjdGlvbi5yZXZpc2lvbixcbiAgICAgICAgKX1gLFxuICAgIClcbn0gY2F0Y2ggKGUpIHtcbiAgICBjb25zdCBmaWxlRXJyb3IgPSBlIGFzIHsgY29kZT86IHN0cmluZzsgcGF0aD86IHN0cmluZyB9XG4gICAgaWYgKGZpbGVFcnJvci5jb2RlID09PSAnRU5PRU5UJyAmJiBmaWxlRXJyb3IucGF0aD8uZW5kc1dpdGgoJ2dsdWUuanNvbicpKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkdsdWUgbm90IGZvdW5kLiBUcnkgdG8gc2VlIGlmIHRoZXJlIGlzbid0IGEgZ2x1ZSBwcm9qZWN0IHlvdSBjYW4gY2xvbmUgbmV4dCB0byB0aGlzIHByb2plY3QuXCIsXG4gICAgICAgIClcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICAgIHRocm93IGVcbn1cbiJdfQ==