cnpmcore
Version:
61 lines • 4.63 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); }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChangesStreamController = void 0;
const tegg_1 = require("@eggjs/tegg");
const typebox_1 = require("@sinclair/typebox");
const AbstractController_1 = require("./AbstractController");
const ChangeRepository_1 = require("../../repository/ChangeRepository");
const ChangeRule = typebox_1.Type.Object({
since: typebox_1.Type.Integer({ minimum: 0 }),
});
let ChangesStreamController = class ChangesStreamController extends AbstractController_1.AbstractController {
// https://github.com/cnpm/cnpmcore/issues/70
async listChanges(ctx, since) {
const params = { since: since ? Number(since) : 0 };
ctx.tValidate(ChangeRule, params);
const limit = 1000;
const changes = await this.changeRepository.query(params.since, limit);
const results = changes.map(change => {
return {
seq: change.id,
type: change.type,
id: change.targetName,
changes: [change.data],
};
});
return { results };
}
};
exports.ChangesStreamController = ChangesStreamController;
__decorate([
(0, tegg_1.Inject)(),
__metadata("design:type", ChangeRepository_1.ChangeRepository)
], ChangesStreamController.prototype, "changeRepository", void 0);
__decorate([
(0, tegg_1.HTTPMethod)({
// /_changes?since=${since}
path: '/_changes',
method: tegg_1.HTTPMethodEnum.GET,
}),
__param(0, (0, tegg_1.Context)()),
__param(1, (0, tegg_1.HTTPQuery)()),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, String]),
__metadata("design:returntype", Promise)
], ChangesStreamController.prototype, "listChanges", null);
exports.ChangesStreamController = ChangesStreamController = __decorate([
(0, tegg_1.HTTPController)()
], ChangesStreamController);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hhbmdlc1N0cmVhbUNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9hcHAvcG9ydC9jb250cm9sbGVyL0NoYW5nZXNTdHJlYW1Db250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNDQVFxQjtBQUNyQiwrQ0FBeUM7QUFDekMsNkRBQTBEO0FBQzFELHdFQUFxRTtBQUVyRSxNQUFNLFVBQVUsR0FBRyxjQUFJLENBQUMsTUFBTSxDQUFDO0lBQzdCLEtBQUssRUFBRSxjQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO0NBQ3BDLENBQUMsQ0FBQztBQUdJLElBQU0sdUJBQXVCLEdBQTdCLE1BQU0sdUJBQXdCLFNBQVEsdUNBQWtCO0lBSTdELDZDQUE2QztJQU12QyxBQUFOLEtBQUssQ0FBQyxXQUFXLENBQVksR0FBZSxFQUFlLEtBQWE7UUFDdEUsTUFBTSxNQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BELEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQztRQUNuQixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25DLE9BQU87Z0JBQ0wsR0FBRyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNkLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxVQUFVO2dCQUNyQixPQUFPLEVBQUUsQ0FBRSxNQUFNLENBQUMsSUFBSSxDQUFFO2FBQ3pCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNyQixDQUFDO0NBQ0YsQ0FBQTtBQXpCWSwwREFBdUI7QUFFMUI7SUFEUCxJQUFBLGFBQU0sR0FBRTs4QkFDaUIsbUNBQWdCO2lFQUFDO0FBUXJDO0lBTEwsSUFBQSxpQkFBVSxFQUFDO1FBQ1YsMkJBQTJCO1FBQzNCLElBQUksRUFBRSxXQUFXO1FBQ2pCLE1BQU0sRUFBRSxxQkFBYyxDQUFDLEdBQUc7S0FDM0IsQ0FBQztJQUNpQixXQUFBLElBQUEsY0FBTyxHQUFFLENBQUE7SUFBbUIsV0FBQSxJQUFBLGdCQUFTLEdBQUUsQ0FBQTs7OzswREFjekQ7a0NBeEJVLHVCQUF1QjtJQURuQyxJQUFBLHFCQUFjLEdBQUU7R0FDSix1QkFBdUIsQ0F5Qm5DIn0=