UNPKG

@decaf-ts/core

Version:

Core persistence module for the decaf framework

55 lines 2.55 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; }; 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