cnpmcore
Version:
Private NPM Registry for Enterprise
122 lines • 8.35 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 { performance } from 'node:perf_hooks';
import { HTTPContext, HTTPController, HTTPMethod, HTTPMethodEnum, Inject } from 'egg';
import pkg from 'egg/package.json' with { type: 'json' };
import { AbstractController } from "./AbstractController.js";
const EggVersion = pkg.version;
const startTime = new Date();
let HomeController = class HomeController extends AbstractController {
// 2023-1-20
// 原有 LegacyInfo 字段继续保留,由于 ChangesStream 信息通过 registry 表配置,可能会过期
// 新增 upstream_registries 字段,展示上游源站 registry 信息列表
async showTotal() {
const totalData = await this.cacheService.getTotalData();
const data = {
last_package: totalData.lastPackage,
last_package_version: totalData.lastPackageVersion,
doc_count: totalData.packageCount,
doc_version_count: totalData.packageVersionCount,
download: totalData.download,
update_seq: totalData.lastChangeId,
sync_model: this.config.cnpmcore.syncMode,
sync_changes_steam: totalData.changesStream,
sync_binary: this.config.cnpmcore.enableSyncBinary,
instance_start_time: startTime,
node_version: process.version,
egg_version: EggVersion,
app_version: this.config.pkg.version,
engine: this.config.orm.client,
source_registry: this.config.cnpmcore.sourceRegistry,
changes_stream_registry: this.config.cnpmcore.changesStreamRegistry,
cache_time: totalData.cacheTime,
upstream_registries: totalData.upstreamRegistries,
};
return data;
}
// https://github.com/npm/cli/blob/latest/lib/utils/ping.js#L5
// https://registry.npmjs.org/-/ping?write=true
async ping(ctx) {
return {
pong: true,
use: performance.now() - ctx.performanceStarttime,
};
}
async miscPost(ctx) {
await this.homeService.misc(ctx.path);
}
async miscGet(ctx) {
await this.homeService.misc(ctx.path);
}
};
__decorate([
Inject(),
__metadata("design:type", Function)
], HomeController.prototype, "cacheService", void 0);
__decorate([
Inject(),
__metadata("design:type", Function)
], HomeController.prototype, "homeService", void 0);
__decorate([
HTTPMethod({
// GET /
// https://github.com/cnpm/cnpmjs.org/blob/master/docs/registry-api.md#schema
path: '/',
method: HTTPMethodEnum.GET,
})
// 2023-1-20
// 原有 LegacyInfo 字段继续保留,由于 ChangesStream 信息通过 registry 表配置,可能会过期
// 新增 upstream_registries 字段,展示上游源站 registry 信息列表
,
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", Promise)
], HomeController.prototype, "showTotal", null);
__decorate([
HTTPMethod({
// GET /-/ping
path: '/-/ping',
method: HTTPMethodEnum.GET,
}),
__param(0, HTTPContext()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Function]),
__metadata("design:returntype", Promise)
], HomeController.prototype, "ping", null);
__decorate([
HTTPMethod({
path: '/*',
method: HTTPMethodEnum.POST,
priority: Number.NEGATIVE_INFINITY,
}),
__param(0, HTTPContext()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Function]),
__metadata("design:returntype", Promise)
], HomeController.prototype, "miscPost", null);
__decorate([
HTTPMethod({
path: '/*',
method: HTTPMethodEnum.GET,
priority: Number.NEGATIVE_INFINITY,
}),
__param(0, HTTPContext()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Function]),
__metadata("design:returntype", Promise)
], HomeController.prototype, "miscGet", null);
HomeController = __decorate([
HTTPController()
], HomeController);
export { HomeController };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSG9tZUNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9jb250cm9sbGVyL0hvbWVDb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQWdCLFdBQVcsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDcEcsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFJekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFN0QsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztBQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0FBcUN0QixJQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFlLFNBQVEsa0JBQWtCO0lBZ0I5QyxBQUhOLFlBQVk7SUFDWixnRUFBZ0U7SUFDaEUsaURBQWlEO0lBQ2pELEtBQUssQ0FBQyxTQUFTO1FBQ2IsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pELE1BQU0sSUFBSSxHQUFrQjtZQUMxQixZQUFZLEVBQUUsU0FBUyxDQUFDLFdBQVc7WUFDbkMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLGtCQUFrQjtZQUNsRCxTQUFTLEVBQUUsU0FBUyxDQUFDLFlBQVk7WUFDakMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLG1CQUFtQjtZQUNoRCxRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDNUIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxZQUFZO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxR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