esa-cli
Version:
A CLI for operating Alibaba Cloud ESA Functions and Pages.
75 lines (74 loc) • 3.38 kB
JavaScript
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 t from '../../i18n/index.js';
import { ApiService } from '../../libs/apiService.js';
import logger from '../../libs/logger.js';
import { validRoutine } from '../../utils/checkIsRoutineCreated.js';
import { getProjectConfig } from '../../utils/fileUtils/index.js';
import { checkDirectory, checkIsLoginSuccess } from '../utils.js';
const deleteDomain = {
command: 'delete <domain>',
describe: `🗑 ${t('domain_delete_describe').d('Delete a related domain')}`,
builder: (yargs) => {
return yargs.positional('domains', {
describe: t('domain_delete_positional_describe').d('The names of the related domains to delete'),
type: 'string',
array: true,
demandOption: true
});
},
handler: (argv) => __awaiter(void 0, void 0, void 0, function* () {
handleDeleteDomain(argv);
})
};
export default deleteDomain;
export function handleDeleteDomain(argv) {
return __awaiter(this, void 0, void 0, function* () {
var _a;
if (!checkDirectory()) {
return;
}
const projectConfig = getProjectConfig();
if (!projectConfig)
return logger.notInProject();
const isSuccess = yield checkIsLoginSuccess();
if (!isSuccess)
return;
yield validRoutine(projectConfig.name);
const server = yield ApiService.getInstance();
const req = { Name: projectConfig.name || '' };
const listRoutineRelatedRecordRes = yield server.listRoutineRelatedRecords(req);
if (!listRoutineRelatedRecordRes)
return;
const relatedRecords = ((_a = listRoutineRelatedRecordRes.data) === null || _a === void 0 ? void 0 : _a.RelatedRecords) || [];
const relatedDomain = argv.domain;
const matchedSite = relatedRecords.find((item) => {
return String(item.RecordName) === relatedDomain;
});
if (matchedSite === undefined) {
logger.error(t('domain_delete_not_found').d("Domain doesn't exist"));
return;
}
const record = {
RecordName: matchedSite.RecordName,
Name: projectConfig.name || '',
SiteId: matchedSite.SiteId,
SiteName: matchedSite.SiteName,
RecordId: matchedSite.RecordId
};
const res = yield server.deleteRoutineRelatedRecord(record);
if ((res === null || res === void 0 ? void 0 : res.data.Status) === 'OK') {
logger.success(t('domain_delete_success').d('Delete domain success'));
}
else {
logger.error(t('domain_delete_failed').d('Delete domain failed'));
}
});
}