envilder
Version:
A CLI that securely centralizes your environment variables from AWS SSM as a single source of truth
90 lines • 4.74 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { inject, injectable } from 'inversify';
import { InvalidArgumentError } from '../../domain/errors/DomainErrors.js';
import { OperationMode } from '../../domain/OperationMode.js';
import { TYPES } from '../../types.js';
import { PullSsmToEnvCommand } from '../pullSsmToEnv/PullSsmToEnvCommand.js';
import { PushEnvToSsmCommand } from '../pushEnvToSsm/PushEnvToSsmCommand.js';
import { PushSingleCommand } from '../pushSingle/PushSingleCommand.js';
let DispatchActionCommandHandler = class DispatchActionCommandHandler {
constructor(pullHandler, pushHandler, pushSingleHandler) {
this.pullHandler = pullHandler;
this.pushHandler = pushHandler;
this.pushSingleHandler = pushSingleHandler;
}
handleCommand(command) {
return __awaiter(this, void 0, void 0, function* () {
switch (command.mode) {
case OperationMode.PUSH_SINGLE:
yield this.handlePushSingle(command);
break;
case OperationMode.PUSH_ENV_TO_SSM:
yield this.handlePush(command);
break;
case OperationMode.PULL_SSM_TO_ENV:
yield this.handlePull(command);
break;
default:
yield this.handlePull(command);
break;
}
});
}
handlePushSingle(command) {
return __awaiter(this, void 0, void 0, function* () {
if (!command.key || !command.value || !command.ssmPath) {
throw new InvalidArgumentError('Missing required arguments: --key, --value, and --ssm-path');
}
const pushSingleCommand = PushSingleCommand.create(command.key, command.value, command.ssmPath);
yield this.pushSingleHandler.handle(pushSingleCommand);
});
}
handlePush(command) {
return __awaiter(this, void 0, void 0, function* () {
this.validateMapAndEnvFileOptions(command);
const pushEnvToSsmCommand = PushEnvToSsmCommand.create(command.map, command.envfile);
yield this.pushHandler.handle(pushEnvToSsmCommand);
});
}
handlePull(command) {
return __awaiter(this, void 0, void 0, function* () {
this.validateMapAndEnvFileOptions(command);
const pullSsmToEnvCommand = PullSsmToEnvCommand.create(command.map, command.envfile);
yield this.pullHandler.handle(pullSsmToEnvCommand);
});
}
validateMapAndEnvFileOptions(command) {
if (!command.map || !command.envfile) {
throw new InvalidArgumentError('Missing required arguments: --map and --envfile');
}
}
};
DispatchActionCommandHandler = __decorate([
injectable(),
__param(0, inject(TYPES.PullSsmToEnvCommandHandler)),
__param(1, inject(TYPES.PushEnvToSsmCommandHandler)),
__param(2, inject(TYPES.PushSingleCommandHandler)),
__metadata("design:paramtypes", [Function, Function, Function])
], DispatchActionCommandHandler);
export { DispatchActionCommandHandler };
//# sourceMappingURL=DispatchActionCommandHandler.js.map