UNPKG

cnpmcore

Version:

Private NPM Registry for Enterprise

95 lines 8.92 kB
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 { AccessLevel, Inject, SingletonProto } from 'egg'; import { Dist as DistEntity } from "../core/entity/Dist.js"; import { PackageVersionFile as PackageVersionFileEntity } from "../core/entity/PackageVersionFile.js"; import { AbstractRepository } from "./AbstractRepository.js"; import { ModelConvertor } from "./util/ModelConvertor.js"; let PackageVersionFileRepository = class PackageVersionFileRepository extends AbstractRepository { async createPackageVersionFile(file) { await this.PackageVersionFile.transaction(async (transaction) => { await Promise.all([ ModelConvertor.convertEntityToModel(file, this.PackageVersionFile, transaction), ModelConvertor.convertEntityToModel(file.dist, this.Dist, transaction), ]); }); } async findPackageVersionFile(packageVersionId, directory, name) { const model = await this.PackageVersionFile.findOne({ packageVersionId, directory, name, }); if (!model) return null; const distModel = await this.Dist.findOne({ distId: model.distId }); const dist = distModel && ModelConvertor.convertModelToEntity(distModel, DistEntity); return ModelConvertor.convertModelToEntity(model, PackageVersionFileEntity, { dist }); } async listPackageVersionFiles(packageVersionId, directory) { const isRoot = directory === '/'; const where = isRoot ? { packageVersionId } : { packageVersionId, directory: { $or: [{ $eq: directory }, { $like: `${directory}/%` }] }, }; // only return current directory's files and directories // https://github.com/cnpm/cnpmcore/issues/680 const models = await this.PackageVersionFile.find(where); const distIds = []; const prefix = isRoot ? directory : `${directory}/`; const subDirectories = new Set(); const needModels = []; for (const item of models) { if (item.directory === directory) { // sub file distIds.push(item.distId); needModels.push(item); } else { // only keep directory = '/' or sub directory like `/dist` but not `/dist/foo` // sub directory const subDirectoryName = item.directory.slice(prefix.length).split('/')[0]; subDirectories.add(`${prefix}${subDirectoryName}`); } } const distModels = await this.Dist.find({ distId: distIds }); const distEntitiesMap = new Map(); for (const distModel of distModels) { const dist = ModelConvertor.convertModelToEntity(distModel, DistEntity); distEntitiesMap.set(distModel.distId, dist); } const files = needModels.map((model) => { const dist = distEntitiesMap.get(model.distId); return ModelConvertor.convertModelToEntity(model, PackageVersionFileEntity, { dist }); }); return { files, directories: Array.from(subDirectories) }; } async hasPackageVersionFiles(packageVersionId) { const model = await this.PackageVersionFile.findOne({ packageVersionId }); return !!model; } }; __decorate([ Inject(), __metadata("design:type", Object) ], PackageVersionFileRepository.prototype, "PackageVersionFile", void 0); __decorate([ Inject(), __metadata("design:type", Object) ], PackageVersionFileRepository.prototype, "Dist", void 0); PackageVersionFileRepository = __decorate([ SingletonProto({ accessLevel: AccessLevel.PUBLIC, }) ], PackageVersionFileRepository); export { PackageVersionFileRepository }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZVZlcnNpb25GaWxlUmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FwcC9yZXBvc2l0b3J5L1BhY2thZ2VWZXJzaW9uRmlsZVJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRTFELE9BQU8sRUFBRSxJQUFJLElBQUksVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixJQUFJLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBS25ELElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTZCLFNBQVEsa0JBQWtCO0lBTWxFLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxJQUE4QjtRQUMzRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFO1lBQzlELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDaEIsY0FBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDO2dCQUMvRSxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQzthQUN2RSxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCLENBQUMsZ0JBQXdCLEVBQUUsU0FBaUIsRUFBRSxJQUFZO1FBQ3BGLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtC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