@decaf-ts/for-couchdb
Version:
template for ts projects
44 lines • 4.28 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);
};
import { model, required } from "@decaf-ts/decorator-validation";
import { BaseModel, pk, index, table } from "@decaf-ts/core";
import { CouchDBKeys } from "./../constants.js";
/**
* @description Model for CouchDB sequence records
* @summary Represents a sequence in CouchDB used for generating sequential IDs
* @param {ModelArg<Sequence>} [seq] - Optional initialization data for the sequence
* @class
* @example
* // Example of creating and using a Sequence
* const sequence = new Sequence({ id: 'user-seq', current: 1 });
* // Increment the sequence
* sequence.current = Number(sequence.current) + 1;
*/
let Sequence = class Sequence extends BaseModel {
constructor(seq) {
super(seq);
}
};
__decorate([
pk(),
__metadata("design:type", String)
], Sequence.prototype, "id", void 0);
__decorate([
required(),
index(),
__metadata("design:type", Object)
], Sequence.prototype, "current", void 0);
Sequence = __decorate([
table(CouchDBKeys.SEQUENCE),
model(),
__metadata("design:paramtypes", [Object])
], Sequence);
export { Sequence };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ291Y2hEQlNlcXVlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVsL0NvdWNoREJTZXF1ZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLDBCQUFxQjtBQUUzQzs7Ozs7Ozs7OztHQVVHO0FBR0ksSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFTLFNBQVEsU0FBUztJQWdCckMsWUFBWSxHQUF3QjtRQUNsQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDYixDQUFDO0NBQ0YsQ0FBQTtBQWJDO0lBREMsRUFBRSxFQUFFOztvQ0FDTztBQVFaO0lBRkMsUUFBUSxFQUFFO0lBQ1YsS0FBSyxFQUFFOzt5Q0FDa0I7QUFkZixRQUFRO0lBRnBCLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO0lBQzNCLEtBQUssRUFBRTs7R0FDSyxRQUFRLENBbUJwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTW9kZWxBcmcgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBtb2RlbCwgcmVxdWlyZWQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBCYXNlTW9kZWwsIHBrLCBpbmRleCwgdGFibGUgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvdWNoREJLZXlzIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNb2RlbCBmb3IgQ291Y2hEQiBzZXF1ZW5jZSByZWNvcmRzXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgc2VxdWVuY2UgaW4gQ291Y2hEQiB1c2VkIGZvciBnZW5lcmF0aW5nIHNlcXVlbnRpYWwgSURzXG4gKiBAcGFyYW0ge01vZGVsQXJnPFNlcXVlbmNlPn0gW3NlcV0gLSBPcHRpb25hbCBpbml0aWFsaXphdGlvbiBkYXRhIGZvciB0aGUgc2VxdWVuY2VcbiAqIEBjbGFzc1xuICogQGV4YW1wbGVcbiAqIC8vIEV4YW1wbGUgb2YgY3JlYXRpbmcgYW5kIHVzaW5nIGEgU2VxdWVuY2VcbiAqIGNvbnN0IHNlcXVlbmNlID0gbmV3IFNlcXVlbmNlKHsgaWQ6ICd1c2VyLXNlcScsIGN1cnJlbnQ6IDEgfSk7XG4gKiAvLyBJbmNyZW1lbnQgdGhlIHNlcXVlbmNlXG4gKiBzZXF1ZW5jZS5jdXJyZW50ID0gTnVtYmVyKHNlcXVlbmNlLmN1cnJlbnQpICsgMTtcbiAqL1xuQHRhYmxlKENvdWNoREJLZXlzLlNFUVVFTkNFKVxuQG1vZGVsKClcbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZSBleHRlbmRzIEJhc2VNb2RlbCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc2VxdWVuY2VcbiAgICogQHN1bW1hcnkgUHJpbWFyeSBrZXkgZm9yIHRoZSBzZXF1ZW5jZSByZWNvcmRcbiAgICovXG4gIEBwaygpXG4gIGlkITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlcXVlbmNlXG4gICAqIEBzdW1tYXJ5IEN1cnJlbnQgc2VxdWVuY2UgdmFsdWUgdGhhdCBjYW4gYmUgaW5jcmVtZW50ZWRcbiAgICovXG4gIEByZXF1aXJlZCgpXG4gIEBpbmRleCgpXG4gIGN1cnJlbnQhOiBzdHJpbmcgfCBudW1iZXI7XG5cbiAgY29uc3RydWN0b3Ioc2VxPzogTW9kZWxBcmc8U2VxdWVuY2U+KSB7XG4gICAgc3VwZXIoc2VxKTtcbiAgfVxufVxuIl19