@decaf-ts/core
Version:
Core persistence module for the decaf framework
54 lines • 5.09 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);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.RamSequenceModel = void 0;
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
const model_1 = require("./../../model/index.cjs");
const identity_1 = require("./../../identity/index.cjs");
/**
* @description RAM sequence model for auto-incrementing values
* @summary A model class that represents a sequence in the RAM adapter. It stores the current value
* of a sequence that can be used for generating sequential identifiers for entities.
* The sequence is identified by its ID and maintains the current value.
* @param {ModelArg<Sequence>} seq - Initial sequence data
* @class Sequence
* @category Ram
* @example
* ```typescript
* // Create a new sequence
* const orderSequence = new Sequence({ id: 'order_seq', current: 1 });
*
* // Use the sequence to get the next value
* const nextOrderId = parseInt(orderSequence.current.toString()) + 1;
* orderSequence.current = nextOrderId;
* ```
*/
let RamSequenceModel = class RamSequenceModel extends model_1.BaseModel {
constructor(seq) {
super(seq);
}
};
exports.RamSequenceModel = RamSequenceModel;
__decorate([
(0, identity_1.pk)(),
__metadata("design:type", String)
], RamSequenceModel.prototype, "id", void 0);
__decorate([
(0, decorator_validation_1.required)(),
(0, model_1.index)(),
__metadata("design:type", Object)
], RamSequenceModel.prototype, "current", void 0);
exports.RamSequenceModel = RamSequenceModel = __decorate([
(0, model_1.table)("__RamSequence"),
(0, decorator_validation_1.model)(),
__metadata("design:paramtypes", [Object])
], RamSequenceModel);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtU2VxdWVuY2VNb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYW0vbW9kZWwvUmFtU2VxdWVuY2VNb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx5RUFBaUU7QUFFakUsbURBQXNEO0FBQ3RELHlEQUFvQztBQUVwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFHSSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFpQixTQUFRLGlCQUFTO0lBZTdDLFlBQVksR0FBZ0M7UUFDMUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztDQUNGLENBQUE7QUFsQlksNENBQWdCO0FBSzNCO0lBREMsSUFBQSxhQUFFLEdBQUU7OzRDQUNPO0FBUVo7SUFGQyxJQUFBLCtCQUFRLEdBQUU7SUFDVixJQUFBLGFBQUssR0FBRTs7aURBQ2tCOzJCQWJmLGdCQUFnQjtJQUY1QixJQUFBLGFBQUssRUFBQyxlQUFlLENBQUM7SUFDdEIsSUFBQSw0QkFBSyxHQUFFOztHQUNLLGdCQUFnQixDQWtCNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb2RlbCwgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgdHlwZSB7IE1vZGVsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQmFzZU1vZGVsLCBpbmRleCwgdGFibGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxcIjtcbmltcG9ydCB7IHBrIH0gZnJvbSBcIi4uLy4uL2lkZW50aXR5XCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJBTSBzZXF1ZW5jZSBtb2RlbCBmb3IgYXV0by1pbmNyZW1lbnRpbmcgdmFsdWVzXG4gKiBAc3VtbWFyeSBBIG1vZGVsIGNsYXNzIHRoYXQgcmVwcmVzZW50cyBhIHNlcXVlbmNlIGluIHRoZSBSQU0gYWRhcHRlci4gSXQgc3RvcmVzIHRoZSBjdXJyZW50IHZhbHVlXG4gKiBvZiBhIHNlcXVlbmNlIHRoYXQgY2FuIGJlIHVzZWQgZm9yIGdlbmVyYXRpbmcgc2VxdWVudGlhbCBpZGVudGlmaWVycyBmb3IgZW50aXRpZXMuXG4gKiBUaGUgc2VxdWVuY2UgaXMgaWRlbnRpZmllZCBieSBpdHMgSUQgYW5kIG1haW50YWlucyB0aGUgY3VycmVudCB2YWx1ZS5cbiAqIEBwYXJhbSB7TW9kZWxBcmc8U2VxdWVuY2U+fSBzZXEgLSBJbml0aWFsIHNlcXVlbmNlIGRhdGFcbiAqIEBjbGFzcyBTZXF1ZW5jZVxuICogQGNhdGVnb3J5IFJhbVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIG5ldyBzZXF1ZW5jZVxuICogY29uc3Qgb3JkZXJTZXF1ZW5jZSA9IG5ldyBTZXF1ZW5jZSh7IGlkOiAnb3JkZXJfc2VxJywgY3VycmVudDogMSB9KTtcbiAqXG4gKiAvLyBVc2UgdGhlIHNlcXVlbmNlIHRvIGdldCB0aGUgbmV4dCB2YWx1ZVxuICogY29uc3QgbmV4dE9yZGVySWQgPSBwYXJzZUludChvcmRlclNlcXVlbmNlLmN1cnJlbnQudG9TdHJpbmcoKSkgKyAxO1xuICogb3JkZXJTZXF1ZW5jZS5jdXJyZW50ID0gbmV4dE9yZGVySWQ7XG4gKiBgYGBcbiAqL1xuQHRhYmxlKFwiX19SYW1TZXF1ZW5jZVwiKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBSYW1TZXF1ZW5jZU1vZGVsIGV4dGVuZHMgQmFzZU1vZGVsIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcmltYXJ5IGtleSBpZGVudGlmaWVyIGZvciB0aGUgc2VxdWVuY2VcbiAgICovXG4gIEBwaygpXG4gIGlkITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3VycmVudCB2YWx1ZSBvZiB0aGUgc2VxdWVuY2VcbiAgICogVXNlZCB0byBnZW5lcmF0ZSB0aGUgbmV4dCBzZXF1ZW50aWFsIHZhbHVlXG4gICAqL1xuICBAcmVxdWlyZWQoKVxuICBAaW5kZXgoKVxuICBjdXJyZW50ITogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHNlcT86IE1vZGVsQXJnPFJhbVNlcXVlbmNlTW9kZWw+KSB7XG4gICAgc3VwZXIoc2VxKTtcbiAgfVxufVxuIl19