@decaf-ts/core
Version:
Core persistence module for the decaf framework
55 lines • 2.55 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.SequenceModel = void 0;
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
const BaseModel_1 = require("./BaseModel.cjs");
const decorators_1 = require("./decorators.cjs");
const decorators_2 = require("./../identity/decorators.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 SequenceModel = class SequenceModel extends BaseModel_1.BaseModel {
constructor(seq) {
super(seq);
}
};
exports.SequenceModel = SequenceModel;
__decorate([
(0, decorators_2.pk)({ type: "String", generated: false }),
__metadata("design:type", String)
], SequenceModel.prototype, "id", void 0);
__decorate([
(0, decorator_validation_1.required)(),
(0, decorators_1.index)(),
__metadata("design:type", Object)
], SequenceModel.prototype, "current", void 0);
exports.SequenceModel = SequenceModel = __decorate([
(0, decorators_1.table)("??sequence"),
(0, decorator_validation_1.model)(),
__metadata("design:paramtypes", [Object])
], SequenceModel);
//# sourceMappingURL=SequenceModel.js.map