@decaf-ts/db-decorators
Version:
Agnostic database decorators and repository
23 lines • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.id = id;
const decorator_validation_1 = require("@decaf-ts/decorator-validation");
const validation_1 = require("./../validation/index.cjs");
const constants_1 = require("./../model/constants.cjs");
const decoration_1 = require("@decaf-ts/decoration");
/**
* @description Decorator that marks a property as an ID field
* @summary Creates a composite decorator that marks a property as required, readonly, and as the ID field for database operations
* @return {PropertyDecorator} A decorator that can be applied to class properties
* @function id
* @category Property Decorators
*/
function id() {
function idDecorator() {
return function idDecorator(model, prop) {
return (0, decoration_1.propMetadata)(decoration_1.Metadata.key(constants_1.DBKeys.ID, prop), {})(model, prop);
};
}
return (0, decoration_1.apply)((0, decorator_validation_1.required)(), (0, validation_1.readonly)(), idDecorator());
}
//# sourceMappingURL=decorators.js.map