UNPKG

@decaf-ts/core

Version:

Core persistence module for the decaf framework

22 lines 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.final = final; /** * @description Creates a decorator that makes a method non-configurable * @summary This decorator prevents a method from being overridden by making it non-configurable. * It throws an error if used on anything other than a method. * @return {Function} A decorator function that can be applied to methods * @function final * @category Method Decorators */ function final() { return (target, propertyKey, descriptor) => { if (!descriptor) throw new Error("final decorator can only be used on methods"); if (descriptor?.configurable) { descriptor.configurable = false; } return descriptor; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsc0JBYUM7QUFyQkQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLEtBQUs7SUFDbkIsT0FBTyxDQUNMLE1BQWMsRUFDZCxXQUFpQixFQUNqQixVQUErQixFQUMvQixFQUFFO1FBQ0YsSUFBSSxDQUFDLFVBQVU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDakUsSUFBSSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDN0IsVUFBVSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDbEMsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgZGVjb3JhdG9yIHRoYXQgbWFrZXMgYSBtZXRob2Qgbm9uLWNvbmZpZ3VyYWJsZVxuICogQHN1bW1hcnkgVGhpcyBkZWNvcmF0b3IgcHJldmVudHMgYSBtZXRob2QgZnJvbSBiZWluZyBvdmVycmlkZGVuIGJ5IG1ha2luZyBpdCBub24tY29uZmlndXJhYmxlLlxuICogSXQgdGhyb3dzIGFuIGVycm9yIGlmIHVzZWQgb24gYW55dGhpbmcgb3RoZXIgdGhhbiBhIG1ldGhvZC5cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIGRlY29yYXRvciBmdW5jdGlvbiB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIG1ldGhvZHNcbiAqIEBmdW5jdGlvbiBmaW5hbFxuICogQGNhdGVnb3J5IE1ldGhvZCBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5hbCgpIHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IG9iamVjdCxcbiAgICBwcm9wZXJ0eUtleT86IGFueSxcbiAgICBkZXNjcmlwdG9yPzogUHJvcGVydHlEZXNjcmlwdG9yXG4gICkgPT4ge1xuICAgIGlmICghZGVzY3JpcHRvcilcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImZpbmFsIGRlY29yYXRvciBjYW4gb25seSBiZSB1c2VkIG9uIG1ldGhvZHNcIik7XG4gICAgaWYgKGRlc2NyaXB0b3I/LmNvbmZpZ3VyYWJsZSkge1xuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59XG4iXX0=