cnpmcore
Version:
Private NPM Registry for Enterprise
119 lines • 10.1 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);
};
import { JSONBuilder } from '@cnpmjs/packument';
import { AccessLevel, Inject, SingletonProto } from 'egg';
let DistRepository = class DistRepository {
async findPackageVersionManifest(packageId, version) {
const packageVersion = await this.packageRepository.findPackageVersion(packageId, version);
if (packageVersion) {
const [packageVersionJson, readme] = await Promise.all([
this.readDistBytesToJSON(packageVersion.manifestDist),
this.readDistBytesToString(packageVersion.readmeDist),
]);
if (packageVersionJson) {
packageVersionJson.readme = readme;
}
return packageVersionJson;
}
}
async findPackageVersionManifestJSONBuilder(packageId, version, includeReadme = false) {
const packageVersion = await this.packageRepository.findPackageVersion(packageId, version);
if (packageVersion) {
// include readme
if (includeReadme) {
const [builder, readme] = await Promise.all([
this.readDistBytesToJSONBuilder(packageVersion.manifestDist),
this.readDistBytesToString(packageVersion.readmeDist),
]);
if (builder) {
builder.setIn(['readme'], readme);
}
return builder;
}
// only return manifest builder
return await this.readDistBytesToJSONBuilder(packageVersion.manifestDist);
}
}
async findPackageAbbreviatedManifest(packageId, version) {
const packageVersion = await this.packageRepository.findPackageVersion(packageId, version);
if (packageVersion) {
return await this.readDistBytesToJSON(packageVersion.abbreviatedDist);
}
}
async findPackageAbbreviatedManifestJSONBuilder(packageId, version) {
const packageVersion = await this.packageRepository.findPackageVersion(packageId, version);
if (packageVersion) {
return await this.readDistBytesToJSONBuilder(packageVersion.abbreviatedDist);
}
}
async readDistBytesToJSON(dist) {
const str = await this.readDistBytesToString(dist);
if (str) {
return JSON.parse(str);
}
}
async readDistBytesToString(dist) {
const bytes = await this.readDistBytes(dist);
if (!bytes)
return '';
return Buffer.from(bytes).toString('utf8');
}
async readDistBytes(dist) {
return await this.nfsAdapter.getBytes(dist.path);
}
async readDistBytesToBuffer(dist) {
const bytes = await this.readDistBytes(dist);
if (!bytes)
return undefined;
// if bytes is Uint8Array, should use zero copy to create a new Buffer
// https://nodejs.org/docs/latest-v24.x/api/buffer.html#static-method-bufferfromarraybuffer-byteoffset-length
return Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
}
async readDistBytesToJSONBuilder(dist) {
const bytes = await this.readDistBytesToBuffer(dist);
if (!bytes)
return undefined;
return new JSONBuilder(bytes);
}
async getDistStream(dist) {
return await this.nfsAdapter.getStream(dist.path);
}
async saveDist(dist, buf) {
if (typeof buf === 'string') {
return await this.nfsAdapter.uploadFile(dist.path, buf);
}
return await this.nfsAdapter.uploadBytes(dist.path, buf);
}
async destroyDist(dist) {
return await this.nfsAdapter.remove(dist.path);
}
async downloadDist(dist) {
return await this.nfsAdapter.getDownloadUrlOrStream(dist.path);
}
async downloadDistToFile(dist, file) {
// max up to 5mins
return await this.nfsAdapter.downloadFile(dist.path, file, 60_000 * 5);
}
};
__decorate([
Inject(),
__metadata("design:type", Function)
], DistRepository.prototype, "packageRepository", void 0);
__decorate([
Inject(),
__metadata("design:type", Function)
], DistRepository.prototype, "nfsAdapter", void 0);
DistRepository = __decorate([
SingletonProto({
accessLevel: AccessLevel.PUBLIC,
})
], DistRepository);
export { DistRepository };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzdFJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9hcHAvcmVwb3NpdG9yeS9EaXN0UmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBU25ELElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFPekIsS0FBSyxDQUFDLDBCQUEwQixDQUFDLFNBQWlCLEVBQUUsT0FBZTtRQUNqRSxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0YsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixNQUFNLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQWtCLGNBQWMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO2FBQ3RELENBQUMsQ0FBQztZQUNILElBQUksa0JBQWtCLEVBQUUsQ0FBQztnQkFDdkIsa0JBQWtCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQyxDQUFDO1lBQ0QsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxxQ0FBcUMsQ0FDekMsU0FBaUIsRUFDakIsT0FBZSxFQUNmLGFBQWEsR0FBRyxLQUFLO1FBRXJCLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzRixJQUFJLGNB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