superjolt
Version:
AI-powered deployment platform with MCP support - Deploy JavaScript apps using natural language with Claude Desktop
76 lines • 3.75 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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.EnvSetCommand = void 0;
const nest_commander_1 = require("nest-commander");
const common_1 = require("@nestjs/common");
const api_service_1 = require("../services/api.service");
const auth_service_1 = require("../services/auth.service");
const logger_service_1 = require("../services/logger.service");
const authenticated_command_1 = require("./authenticated.command");
const project_1 = require("../utils/project");
let EnvSetCommand = class EnvSetCommand extends authenticated_command_1.AuthenticatedCommand {
apiService;
authService;
logger;
constructor(apiService, authService, logger) {
super();
this.apiService = apiService;
this.authService = authService;
this.logger = logger;
}
async execute(passedParams) {
try {
if (passedParams.length === 0) {
this.logger.error('Error: At least one KEY=VALUE pair is required');
this.logger.log('Usage: superjolt env:set KEY=VALUE [KEY2=VALUE2 ...]');
this.logger.log('Example: superjolt env:set DATABASE_URL=postgres://localhost API_KEY=secret');
process.exit(1);
}
const config = (0, project_1.readSuperjoltConfig)();
if (!config?.serviceId) {
this.logger.error('No service found. Deploy first with: superjolt deploy');
process.exit(1);
}
const envVars = {};
for (const param of passedParams) {
const match = param.match(/^([A-Za-z_][A-Za-z0-9_]*)=(.*)$/);
if (!match) {
this.logger.error(`Error: Invalid format '${param}'. Expected: KEY=VALUE`);
this.logger.log('Keys must start with a letter or underscore and contain only letters, numbers, and underscores');
process.exit(1);
}
envVars[match[1]] = match[2];
}
this.logger.log(`Setting ${Object.keys(envVars).length} environment variable(s)...`);
const response = await this.apiService.setEnvVars(config.serviceId, envVars);
this.logger.log(`✅ ${response.message}`);
this.logger.log('\n⚠️ Note: Run "superjolt deploy" for changes to take effect');
}
catch (error) {
this.logger.error(`\n${error.message}`);
process.exit(1);
}
}
};
exports.EnvSetCommand = EnvSetCommand;
exports.EnvSetCommand = EnvSetCommand = __decorate([
(0, common_1.Injectable)(),
(0, nest_commander_1.Command)({
name: 'env:set',
arguments: '[vars...]',
description: 'Set environment variables (format: KEY=VALUE)',
}),
__metadata("design:paramtypes", [api_service_1.ApiService,
auth_service_1.AuthService,
logger_service_1.LoggerService])
], EnvSetCommand);
//# sourceMappingURL=env-set.command.js.map