cnpmcore
Version:
Private NPM Registry for Enterprise
159 lines • 11.9 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); }
};
import { HTTPContext, Context, HTTPController, HTTPMethod, HTTPMethodEnum, HTTPParam, HTTPQuery, Inject } from 'egg';
import { ForbiddenError, NotFoundError, NotImplementedError, UnauthorizedError } from 'egg/errors';
import { SyncMode } from "../../common/constants.js";
import { FULLNAME_REG_STRING } from "../../common/PackageUtil.js";
import { isPkgManifest } from "../../core/entity/Package.js";
import { AbstractController } from "./AbstractController.js";
let ProxyCacheController = class ProxyCacheController extends AbstractController {
async listProxyCache(pageSize, pageIndex) {
if (this.config.cnpmcore.syncMode !== SyncMode.proxy) {
throw new ForbiddenError('proxy mode is not enabled');
}
return await this.proxyCacheRepository.listCachedFiles({
pageSize,
pageIndex,
});
}
async showProxyCaches(pageSize, pageIndex, fullname) {
if (this.config.cnpmcore.syncMode !== SyncMode.proxy) {
throw new ForbiddenError('proxy mode is not enabled');
}
return await this.proxyCacheRepository.listCachedFiles({
pageSize,
pageIndex,
}, fullname);
}
async refreshProxyCaches(fullname) {
if (this.config.cnpmcore.syncMode !== SyncMode.proxy) {
throw new ForbiddenError('proxy mode is not enabled');
}
const refreshList = await this.proxyCacheRepository.findProxyCaches(fullname);
if (refreshList.length === 0) {
throw new NotFoundError();
}
await this.cacheService.removeCache(fullname);
const taskList = refreshList
// only refresh package.json and abbreviated.json
.filter((i) => isPkgManifest(i.fileType))
.map((item) => {
const task = this.proxyCacheService.createTask(`${item.fullname}/${item.fileType}`, {
fullname: item.fullname,
fileType: item.fileType,
});
return task;
});
const tasks = await Promise.all(taskList);
return {
ok: true,
tasks,
};
}
async removeProxyCaches(fullname) {
if (this.config.cnpmcore.syncMode !== SyncMode.proxy) {
throw new ForbiddenError('proxy mode is not enabled');
}
const proxyCachesList = await this.proxyCacheRepository.findProxyCaches(fullname);
if (proxyCachesList.length === 0) {
throw new NotFoundError();
}
await this.cacheService.removeCache(fullname);
const removingList = proxyCachesList.map((item) => this.proxyCacheService.removeProxyCache(item.fullname, item.fileType, item.version));
await Promise.all(removingList);
return {
ok: true,
result: proxyCachesList,
};
}
async truncateProxyCaches(ctx) {
const isAdmin = await this.userRoleManager.isAdmin(ctx);
if (!isAdmin) {
throw new UnauthorizedError('only admin can do this');
}
if (this.config.cnpmcore.syncMode !== SyncMode.proxy) {
throw new ForbiddenError('proxy mode is not enabled');
}
throw new NotImplementedError('not implemented yet');
}
};
__decorate([
Inject(),
__metadata("design:type", Function)
], ProxyCacheController.prototype, "proxyCacheRepository", void 0);
__decorate([
Inject(),
__metadata("design:type", Function)
], ProxyCacheController.prototype, "proxyCacheService", void 0);
__decorate([
Inject(),
__metadata("design:type", Function)
], ProxyCacheController.prototype, "cacheService", void 0);
__decorate([
HTTPMethod({
method: HTTPMethodEnum.GET,
path: '/-/proxy-cache',
}),
__param(0, HTTPQuery()),
__param(1, HTTPQuery()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, Object]),
__metadata("design:returntype", Promise)
], ProxyCacheController.prototype, "listProxyCache", null);
__decorate([
HTTPMethod({
method: HTTPMethodEnum.GET,
path: `/-/proxy-cache/:fullname(${FULLNAME_REG_STRING})`,
}),
__param(0, HTTPQuery()),
__param(1, HTTPQuery()),
__param(2, HTTPParam()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, Object, String]),
__metadata("design:returntype", Promise)
], ProxyCacheController.prototype, "showProxyCaches", null);
__decorate([
HTTPMethod({
method: HTTPMethodEnum.PATCH,
path: `/-/proxy-cache/:fullname(${FULLNAME_REG_STRING})`,
}),
__param(0, HTTPParam()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", Promise)
], ProxyCacheController.prototype, "refreshProxyCaches", null);
__decorate([
HTTPMethod({
method: HTTPMethodEnum.DELETE,
path: `/-/proxy-cache/:fullname(${FULLNAME_REG_STRING})`,
}),
__param(0, HTTPParam()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", Promise)
], ProxyCacheController.prototype, "removeProxyCaches", null);
__decorate([
HTTPMethod({
method: HTTPMethodEnum.DELETE,
path: '/-/proxy-cache',
}),
__param(0, HTTPContext()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Context]),
__metadata("design:returntype", Promise)
], ProxyCacheController.prototype, "truncateProxyCaches", null);
ProxyCacheController = __decorate([
HTTPController()
], ProxyCacheController);
export { ProxyCacheController };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJveHlDYWNoZUNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9jb250cm9sbGVyL1Byb3h5Q2FjaGVDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3JILE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRW5HLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFLN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHdEQsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBcUIsU0FBUSxrQkFBa0I7SUFZcEQsQUFBTixLQUFLLENBQUMsY0FBYyxDQUNMLFFBQXFELEVBQ3JELFNBQXVEO1FBRXBFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyRCxNQUFNLElBQUksY0FBYyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDO1lBQ3JELFFBQVE7WUFDUixTQUFTO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQU1LLEFBQU4sS0FBSyxDQUFDLGVBQWUsQ0FDTixRQUFxRCxFQUNyRCxTQUF1RCxFQUN2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