UNPKG

nukak

Version:

flexible and efficient ORM, with declarative JSON syntax and smart type-safety

14 lines 2.08 kB
/** * Decorator that ensures the decorated method is executed serially within the Querier instance. * It uses a private promise queue to prevent race conditions on the database connection. * Note: The decorated class must extend AbstractQuerier or implement a compatible serialize method. */ export function Serialized() { return (_target, _key, propDescriptor) => { const originalMethod = propDescriptor.value; propDescriptor.value = function (...args) { return this.serialize(() => originalMethod.apply(this, args)); }; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci9zZXJpYWxpemVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLENBQUMsT0FBZSxFQUFFLElBQVksRUFBRSxjQUFrQyxFQUFRLEVBQUU7UUFDakYsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUM1QyxjQUFjLENBQUMsS0FBSyxHQUFHLFVBQXFCLEdBQUcsSUFBVztZQUN4RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWNvcmF0b3IgdGhhdCBlbnN1cmVzIHRoZSBkZWNvcmF0ZWQgbWV0aG9kIGlzIGV4ZWN1dGVkIHNlcmlhbGx5IHdpdGhpbiB0aGUgUXVlcmllciBpbnN0YW5jZS5cbiAqIEl0IHVzZXMgYSBwcml2YXRlIHByb21pc2UgcXVldWUgdG8gcHJldmVudCByYWNlIGNvbmRpdGlvbnMgb24gdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24uXG4gKiBOb3RlOiBUaGUgZGVjb3JhdGVkIGNsYXNzIG11c3QgZXh0ZW5kIEFic3RyYWN0UXVlcmllciBvciBpbXBsZW1lbnQgYSBjb21wYXRpYmxlIHNlcmlhbGl6ZSBtZXRob2QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXJpYWxpemVkKCkge1xuICByZXR1cm4gKF90YXJnZXQ6IG9iamVjdCwgX2tleTogc3RyaW5nLCBwcm9wRGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKTogdm9pZCA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBwcm9wRGVzY3JpcHRvci52YWx1ZTtcbiAgICBwcm9wRGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICh0aGlzOiBhbnksIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKCkgPT4gb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncykpO1xuICAgIH07XG4gIH07XG59XG4iXX0=