UNPKG

cnpmcore

Version:
61 lines 5.33 kB
"use strict"; 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; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NpmChangesStream = void 0; const tegg_1 = require("@eggjs/tegg"); const egg_errors_1 = require("egg-errors"); const Registry_1 = require("../../../common/enum/Registry"); const AbstractChangesStream_1 = require("./AbstractChangesStream"); let NpmChangesStream = class NpmChangesStream extends AbstractChangesStream_1.AbstractChangeStream { async getInitialSince(registry) { const db = (new URL(registry.changeStream)).origin; const { status, data } = await this.httpclient.request(db, { followRedirect: true, timeout: 10000, dataType: 'json', }); const since = String(data.update_seq - 10); if (!data.update_seq) { throw new egg_errors_1.E500(`get getInitialSince failed: ${data.update_seq}`); } this.logger.warn('[NpmChangesStream.getInitialSince] GET %s status: %s, data: %j, since: %s', registry.name, registry.changeStream, status, data, since); return since; } async *fetchChanges(registry, since) { const db = this.getChangesStreamUrl(registry, since); const { res } = await this.httpclient.request(db, { streaming: true, timeout: 10000, }); let buf = ''; for await (const chunk of res) { const text = chunk.toString(); const lines = text.split('\n'); for (const line of lines) { const content = buf + line; const match = /"seq":(\d+),"id":"([^"]+)"/g.exec(content); const seq = match?.[1]; const fullname = match?.[2]; if (seq && fullname) { buf = ''; const change = { fullname, seq }; yield change; } else { buf += line; } } } } }; exports.NpmChangesStream = NpmChangesStream; exports.NpmChangesStream = NpmChangesStream = __decorate([ (0, tegg_1.SingletonProto)(), (0, AbstractChangesStream_1.RegistryChangesStream)(Registry_1.RegistryType.Npm) ], NpmChangesStream); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnBtQ2hhbmdlc1N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2FwcC9jb21tb24vYWRhcHRlci9jaGFuZ2VzU3RyZWFtL05wbUNoYW5nZXNTdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsc0NBQTZDO0FBQzdDLDJDQUFrQztBQUNsQyw0REFBNkQ7QUFFN0QsbUVBQTJHO0FBSXBHLElBQU0sZ0JBQWdCLEdBQXRCLE1BQU0sZ0JBQWlCLFNBQVEsNENBQW9CO0lBRXhELEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBa0I7UUFDdEMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbkQsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUN6RCxjQUFjLEVBQUUsSUFBSTtZQUNwQixPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxpQkFBSSxDQUFDLCtCQUErQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUNsRTtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDJFQUEyRSxFQUMxRixRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUEsQ0FBRSxZQUFZLENBQUMsUUFBa0IsRUFBRSxLQUFhO1FBQ25ELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ2hELFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFFSCxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLEtBQUssRUFBRSxNQUFNLEtBQUssSUFBSSxHQUFHLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFL0IsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7Z0JBQ3hCLE1BQU0sT0FBTyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLDZCQUE2QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixJQUFJLEdBQUcsSUFBSSxRQUFRLEVBQUU7b0JBQ25CLEdBQUcsR0FBRyxFQUFFLENBQUM7b0JBQ1QsTUFBTSxNQUFNLEdBQXdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDO29CQUN0RCxNQUFNLE1BQU0sQ0FBQztpQkFDZDtxQkFBTTtvQkFDTCxHQUFHLElBQUksSUFBSSxDQUFDO2lCQUNiO2FBQ0Y7U0FDRjtJQUNILENBQUM7Q0FFRixDQUFBO0FBOUNZLDRDQUFnQjsyQkFBaEIsZ0JBQWdCO0lBRjVCLElBQUEscUJBQWMsR0FBRTtJQUNoQixJQUFBLDZDQUFxQixFQUFDLHVCQUFZLENBQUMsR0FBRyxDQUFDO0dBQzNCLGdCQUFnQixDQThDNUIifQ==