cnpmcore
Version:
92 lines • 10 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 __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreateHookTriggerService = void 0;
const tegg_1 = require("@eggjs/tegg");
const AbstractService_1 = require("../../common/AbstractService");
const Hook_1 = require("../../common/enum/Hook");
const Task_1 = require("../../common/enum/Task");
const Task_2 = require("../entity/Task");
const HookRepository_1 = require("../../repository/HookRepository");
const PackageRepository_1 = require("../../repository/PackageRepository");
const p_map_1 = __importDefault(require("p-map"));
const TaskService_1 = require("./TaskService");
const LogUtil_1 = require("../../common/LogUtil");
const PackageUtil_1 = require("../../common/PackageUtil");
let CreateHookTriggerService = class CreateHookTriggerService extends AbstractService_1.AbstractService {
async executeTask(task) {
const { hookEvent } = task.data;
const [scope, name] = (0, PackageUtil_1.getScopeAndName)(hookEvent.fullname);
const pkg = await this.packageRepository.findPackage(scope, name);
if (!pkg) {
await this.taskService.finishTask(task, Task_1.TaskState.Success, `[${(0, LogUtil_1.isoNow)()}][Hooks] package ${hookEvent.fullname} not exits`);
return;
}
const startLog = [
`[${(0, LogUtil_1.isoNow)()}][Hooks] Start Create Trigger for ${pkg.fullname} ${task.data.hookEvent.changeId}`,
`[${(0, LogUtil_1.isoNow)()}][Hooks] change content ${JSON.stringify(task.data.hookEvent.change)}`,
];
await this.taskService.finishTask(task, Task_1.TaskState.Processing, startLog.join('\n'));
try {
await this.taskService.appendTaskLog(task, `[${(0, LogUtil_1.isoNow)()}][Hooks] PushHooks to ${Hook_1.HookType.Package} ${pkg.fullname}\n`);
await this.createTriggerByMethod(task, Hook_1.HookType.Package, pkg.fullname, hookEvent);
await this.taskService.appendTaskLog(task, `[${(0, LogUtil_1.isoNow)()}][Hooks] PushHooks to ${Hook_1.HookType.Scope} ${pkg.scope}\n`);
await this.createTriggerByMethod(task, Hook_1.HookType.Scope, pkg.scope, hookEvent);
const maintainers = await this.packageRepository.listPackageMaintainers(pkg.packageId);
for (const maintainer of maintainers) {
await this.taskService.appendTaskLog(task, `[${(0, LogUtil_1.isoNow)()}][Hooks] PushHooks to ${Hook_1.HookType.Owner} ${maintainer.name}\n`);
await this.createTriggerByMethod(task, Hook_1.HookType.Owner, maintainer.name, hookEvent);
}
await this.taskService.finishTask(task, Task_1.TaskState.Success, `[${(0, LogUtil_1.isoNow)()}][Hooks] create trigger succeed \n`);
}
catch (e) {
e.message = 'create trigger failed: ' + e.message;
await this.taskService.finishTask(task, Task_1.TaskState.Fail, `[${(0, LogUtil_1.isoNow)()}][Hooks] ${e.stack} \n`);
return;
}
}
async createTriggerByMethod(task, type, name, hookEvent) {
let hooks = await this.hookRepository.listHooksByTypeAndName(type, name);
while (hooks.length) {
await this.createTriggerTasks(hooks, hookEvent);
hooks = await this.hookRepository.listHooksByTypeAndName(type, name, hooks[hooks.length - 1].id);
await this.taskService.appendTaskLog(task, `[${(0, LogUtil_1.isoNow)()}][Hooks] PushHooks to ${type} ${name} ${hooks.length} \n`);
}
}
async createTriggerTasks(hooks, hookEvent) {
await (0, p_map_1.default)(hooks, async (hook) => {
const triggerHookTask = Task_2.Task.createTriggerHookTask(hookEvent, hook.hookId);
await this.taskService.createTask(triggerHookTask, true);
}, { concurrency: 5 });
}
};
exports.CreateHookTriggerService = CreateHookTriggerService;
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", HookRepository_1.HookRepository)
], CreateHookTriggerService.prototype, "hookRepository", void 0);
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", PackageRepository_1.PackageRepository)
], CreateHookTriggerService.prototype, "packageRepository", void 0);
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", TaskService_1.TaskService)
], CreateHookTriggerService.prototype, "taskService", void 0);
exports.CreateHookTriggerService = CreateHookTriggerService = __decorate([
(0, tegg_1.SingletonProto)({
accessLevel: tegg_1.AccessLevel.PUBLIC,
})
], CreateHookTriggerService);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlSG9va1RyaWdnZXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vYXBwL2NvcmUvc2VydmljZS9DcmVhdGVIb29rVHJpZ2dlclNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0NBQWtFO0FBQ2xFLGtFQUErRDtBQUMvRCxpREFBa0Q7QUFDbEQsaURBQW1EO0FBRW5ELHlDQUFzRDtBQUN0RCxvRUFBaUU7QUFDakUsMEVBQXVFO0FBQ3ZFLGtEQUF5QjtBQUV6QiwrQ0FBNEM7QUFDNUMsa0RBQThDO0FBQzlDLDBEQUEyRDtBQUtwRCxJQUFNLHdCQUF3QixHQUE5QixNQUFNLHdCQUF5QixTQUFRLGlDQUFlO0lBVTNELEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBb0I7UUFDcEMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDaEMsTUFBTSxDQUFFLEtBQUssRUFBRSxJQUFJLENBQUUsR0FBRyxJQUFBLDZCQUFlLEVBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLGdCQUFTLENBQUMsT0FBTyxFQUFFLElBQUksSUFBQSxnQkFBTSxHQUFFLG9CQUFvQixTQUFTLENBQUMsUUFBUSxZQUFZLENBQUMsQ0FBQztZQUMzSCxPQUFPO1NBQ1I7UUFFRCxNQUFNLFFBQVEsR0FBRztZQUNmLElBQUksSUFBQSxnQkFBTSxHQUFFLHFDQUFxQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUMv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