@riddance/deploy
Version:
33 lines • 5.7 kB
JavaScript
import { reflect } from '@riddance/host/reflect';
import { Resolver } from './lib/aws/resolve.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, corsSites, env, ...provider } = await getGlue(path, envName, resolver, glueFile);
const [currentState, reflection, code] = await Promise.all([
getCurrentState(envName, service),
reflect(path),
stage(path, implementations, service),
]);
const host = await sync(envName, service, currentState, reflection, corsSites, await env, Object.fromEntries(code.map(c => [c.fn, c.code])), provider);
console.log('done.');
console.log(`hosting on ${host}`);
}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXRDLE1BQU0sQ0FBQyxFQUFFLEFBQUQsRUFBRyxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUE7QUFDekQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtBQUM3RCxDQUFDO0FBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQTtBQUNsRCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksWUFBWSxDQUFBO0FBRXRDLElBQUksQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3RDLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxNQUFNLE9BQU8sQ0FDM0UsSUFBSSxFQUNKLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxDQUNYLENBQUE7SUFFRCxNQUFNLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDdkQsZUFBZSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDakMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUNiLEtBQUssQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQztLQUN4QyxDQUFDLENBQUE7SUFFRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FDbkIsT0FBTyxFQUNQLE9BQU8sRUFDUCxZQUFZLEVBQ1osVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEdBQUcsRUFDVCxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDakQsUUFBUSxDQUNYLENBQUE7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRXBCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQ3JDLENBQUM7QUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ1QsTUFBTSxTQUFTLEdBQUcsQ0FBcUMsQ0FBQTtJQUN2RCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdkUsT0FBTyxDQUFDLEtBQUssQ0FDVCw4RkFBOEYsQ0FDakcsQ0FBQTtRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbkIsQ0FBQztJQUNELE1BQU0sQ0FBQyxDQUFBO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcblxuaW1wb3J0IHsgcmVmbGVjdCB9IGZyb20gJ0ByaWRkYW5jZS9ob3N0L3JlZmxlY3QnXG5pbXBvcnQgeyBSZXNvbHZlciB9IGZyb20gJy4vbGliL2F3cy9yZXNvbHZlLmpzJ1xuaW1wb3J0IHsgZ2V0Q3VycmVudFN0YXRlLCBzeW5jIH0gZnJvbSAnLi9saWIvYXdzL3N5bmMuanMnXG5pbXBvcnQgeyBnZXRHbHVlIH0gZnJvbSAnLi9saWIvZ2x1ZS5qcydcbmltcG9ydCB7IHN0YWdlIH0gZnJvbSAnLi9saWIvc3RhZ2UuanMnXG5cbmNvbnN0IFssICwgcGF0aE9yRW52QXJnLCBlbnZBcmcsIGdsdWVGaWxlXSA9IHByb2Nlc3MuYXJndlxuaWYgKCFwYXRoT3JFbnZBcmcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBzcGVjaWZ5IHRhcmdldCBlbnZpcm9ubWVudCBuYW1lJylcbn1cbmNvbnN0IHBhdGggPSBlbnZBcmcgPyBwYXRoT3JFbnZBcmcgOiBwcm9jZXNzLmN3ZCgpXG5jb25zdCBlbnZOYW1lID0gZW52QXJnID8/IHBhdGhPckVudkFyZ1xuXG50cnkge1xuICAgIGNvbnN0IHJlc29sdmVyID0gbmV3IFJlc29sdmVyKGVudk5hbWUpXG4gICAgY29uc3QgeyBzZXJ2aWNlLCBpbXBsZW1lbnRhdGlvbnMsIGNvcnNTaXRlcywgZW52LCAuLi5wcm92aWRlciB9ID0gYXdhaXQgZ2V0R2x1ZShcbiAgICAgICAgcGF0aCxcbiAgICAgICAgZW52TmFtZSxcbiAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgIGdsdWVGaWxlLFxuICAgIClcblxuICAgIGNvbnN0IFtjdXJyZW50U3RhdGUsIHJlZmxlY3Rpb24sIGNvZGVdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICBnZXRDdXJyZW50U3RhdGUoZW52TmFtZSwgc2VydmljZSksXG4gICAgICAgIHJlZmxlY3QocGF0aCksXG4gICAgICAgIHN0YWdlKHBhdGgsIGltcGxlbWVudGF0aW9ucywgc2VydmljZSksXG4gICAgXSlcblxuICAgIGNvbnN0IGhvc3QgPSBhd2FpdCBzeW5jKFxuICAgICAgICBlbnZOYW1lLFxuICAgICAgICBzZXJ2aWNlLFxuICAgICAgICBjdXJyZW50U3RhdGUsXG4gICAgICAgIHJlZmxlY3Rpb24sXG4gICAgICAgIGNvcnNTaXRlcyxcbiAgICAgICAgYXdhaXQgZW52LFxuICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoY29kZS5tYXAoYyA9PiBbYy5mbiwgYy5jb2RlXSkpLFxuICAgICAgICBwcm92aWRlcixcbiAgICApXG5cbiAgICBjb25zb2xlLmxvZygnZG9uZS4nKVxuXG4gICAgY29uc29sZS5sb2coYGhvc3Rpbmcgb24gJHtob3N0fWApXG59IGNhdGNoIChlKSB7XG4gICAgY29uc3QgZmlsZUVycm9yID0gZSBhcyB7IGNvZGU/OiBzdHJpbmc7IHBhdGg/OiBzdHJpbmcgfVxuICAgIGlmIChmaWxlRXJyb3IuY29kZSA9PT0gJ0VOT0VOVCcgJiYgZmlsZUVycm9yLnBhdGg/LmVuZHNXaXRoKCdnbHVlLmpzb24nKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJHbHVlIG5vdCBmb3VuZC4gVHJ5IHRvIHNlZSBpZiB0aGVyZSBpc24ndCBhIGdsdWUgcHJvamVjdCB5b3UgY2FuIGNsb25lIG5leHQgdG8gdGhpcyBwcm9qZWN0LlwiLFxuICAgICAgICApXG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgICB0aHJvdyBlXG59XG4iXX0=