esa-cli
Version:
A CLI for operating Alibaba Cloud ESA Functions and Pages.
181 lines (180 loc) • 8.63 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 ESA, * as $ESA from '@alicloud/esa20240910';
import * as $OpenApi from '@alicloud/openapi-client';
import * as $Util from '@alicloud/tea-util';
import { getApiConfig } from '../utils/fileUtils/index.js';
import logger from './logger.js';
import { CLI_USER_AGENT } from './constants.js';
class Client {
constructor() {
this.callApi = (action, request) => __awaiter(this, void 0, void 0, function* () {
try {
logger.info(`Called api ${action.name}, Request: ${request ? JSON.stringify(request) : 'no request'}`);
const runtime = new $Util.RuntimeOptions({
connectTimeout: 10000,
readTimeout: 10000,
autoretry: true,
maxAttempts: 3
});
const response = request
? yield action(request, runtime)
: yield action(runtime);
return response;
}
catch (error) {
const err = error;
logger.error(`Code: ${err.code}, Message: ${err.message}}`);
logger.debug(`Data: ${JSON.stringify(err.data)}`);
throw err;
}
});
this.callOpenApi = (apiName, requestParams) => __awaiter(this, void 0, void 0, function* () {
logger.info(`Called api ${apiName} with openApi, Request: ${requestParams ? JSON.stringify(requestParams) : 'no request'}`);
try {
let params = {
action: apiName,
version: '2024-09-10',
protocol: 'https',
method: 'GET',
authType: 'AK',
bodyType: 'json',
reqBodyType: 'json',
style: 'RPC',
pathname: '/',
toMap: function () {
return this;
}
};
const request = new $OpenApi.OpenApiRequest(requestParams);
const runtime = new $Util.RuntimeOptions({
connectTimeout: 10000,
readTimeout: 10000,
autoretry: true,
maxAttempts: 3
});
const response = yield this.client.callApi(params, request, runtime);
return response;
}
catch (error) {
const err = error;
logger.error(`Code: ${err.code}, Message: ${err.message}}`);
logger.debug(`Data: ${JSON.stringify(err.data)}`);
throw err;
}
});
const config = getApiConfig();
this.client = Client.createClient(config);
}
static createClient(config) {
var _a, _b;
const apiConfig = new $OpenApi.Config({
accessKeyId: (_a = config.auth) === null || _a === void 0 ? void 0 : _a.accessKeyId,
accessKeySecret: (_b = config.auth) === null || _b === void 0 ? void 0 : _b.accessKeySecret,
endpoint: config.endpoint,
userAgent: CLI_USER_AGENT
});
return new ESA.default(apiConfig);
}
updateConfig(config) {
this.client = Client.createClient(config);
}
getErService() {
const request = new $ESA.GetErServiceRequest({});
return this.callApi(this.client.getErServiceWithOptions.bind(this.client), request);
}
getRoutineStagingCodeUploadInfo(params) {
const request = new $ESA.GetRoutineStagingCodeUploadInfoRequest(params);
return this.callApi(this.client.getRoutineStagingCodeUploadInfoWithOptions.bind(this.client), request);
}
commitRoutineStagingCode(params) {
const request = new $ESA.CommitRoutineStagingCodeRequest(params);
return this.callApi(this.client.commitRoutineStagingCodeWithOptions.bind(this.client), request);
}
publishRoutineCodeVersion(params) {
const request = new $ESA.PublishRoutineCodeVersionRequest(params);
return this.callApi(this.client.publishRoutineCodeVersionWithOptions.bind(this.client), request);
}
getMatchSite(params) {
return this.callOpenApi('getMatchSite', params);
}
deleteRoutine(params) {
const request = new $ESA.DeleteRoutineRequest(params);
return this.callApi(this.client.deleteRoutineWithOptions.bind(this.client), request);
}
listUserRoutines(params) {
return this.callApi(this.client.listUserRoutinesWithOptions.bind(this.client), new $ESA.ListUserRoutinesRequest(params));
}
deleteRoutineCodeVersion(params) {
const request = new $ESA.DeleteRoutineCodeVersionRequest(params);
return this.callApi(this.client.deleteRoutineCodeVersionWithOptions.bind(this.client), request);
}
createRoutineRelatedRoute(params) {
const request = new $ESA.CreateRoutineRelatedRouteRequest(params);
return this.callApi(this.client.createRoutineRelatedRouteWithOptions.bind(this.client), request);
}
deleteRoutineRelatedRoute(params) {
const request = new $ESA.DeleteRoutineRelatedRouteRequest(params);
return this.callApi(this.client.deleteRoutineRelatedRouteWithOptions.bind(this.client), request);
}
listSites(params) {
const request = new $ESA.ListSitesRequest(params);
return this.callApi(this.client.listSitesWithOptions.bind(this.client), request);
}
getRoutineStagingEnvIp() {
return this.callApi(this.client.getRoutineStagingEnvIpWithOptions.bind(this.client));
}
getRoutine(params) {
const request = new $ESA.GetRoutineRequest(params);
return this.callApi(this.client.getRoutineWithOptions.bind(this.client), request);
}
createRoutine(params) {
const request = new $ESA.CreateRoutineRequest(params);
return this.callApi(this.client.createRoutineWithOptions.bind(this.client), request);
}
createRoutineRelatedRecord(params) {
const request = new $ESA.CreateRoutineRelatedRecordRequest(params);
return this.callApi(this.client.createRoutineRelatedRecordWithOptions.bind(this.client), request);
}
deleteRoutineRelatedRecord(params) {
const request = new $ESA.DeleteRoutineRelatedRecordRequest(params);
return this.callApi(this.client.deleteRoutineRelatedRecordWithOptions.bind(this.client), request);
}
createRoutineRoute(params) {
const request = new $ESA.CreateRoutineRouteRequest(params);
const newRequest = Object.assign(request, { mode: 'simple' });
return this.callApi(this.client.createRoutineRouteWithOptions.bind(this.client), newRequest);
}
deleteRoutineRoute(params) {
const request = new $ESA.DeleteRoutineRouteRequest(params);
return this.callApi(this.client.deleteRoutineRouteWithOptions.bind(this.client), request);
}
getRoutineRoute(params) {
const request = new $ESA.GetRoutineRouteRequest(params);
return this.callApi(this.client.getRoutineRouteWithOptions.bind(this.client), request);
}
listSiteRoutes(params) {
const request = new $ESA.ListSiteRoutesRequest(params);
return this.callApi(this.client.listSiteRoutes.bind(this.client), request);
}
listRoutineRoutes(params) {
const request = new $ESA.ListRoutineRoutesRequest(params);
return this.callApi(this.client.listRoutineRoutes.bind(this.client), request);
}
updateRoutineRoute(params) {
const request = new $ESA.UpdateRoutineRouteRequest(params);
return this.callApi(this.client.updateRoutineRoute.bind(this.client), request);
}
listRoutineCodeVersions(params) {
const request = new $ESA.ListRoutineCodeVersionsRequest(params);
return this.callApi(this.client.listRoutineCodeVersions.bind(this.client), request);
}
}
export default new Client();