UNPKG

@tsclean/core

Version:

Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.

25 lines 3.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DeterministicUuidRegistry = void 0; class DeterministicUuidRegistry { static get(str, inc = 0) { const id = inc ? this.hashCode(`${str}_${inc}`) : this.hashCode(str); if (this.registry.has(id)) { return this.get(str, inc + 1); } this.registry.set(id, true); return id; } static clear() { this.registry.clear(); } static hashCode(s) { let h = 0; for (let i = 0; i < s.length; i++) h = (Math.imul(31, h) + s.charCodeAt(i)) | 0; return h.toString(); } } exports.DeterministicUuidRegistry = DeterministicUuidRegistry; DeterministicUuidRegistry.registry = new Map(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZXJtaW5pc3RpYy11dWlkLXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2luc3BlY3Rvci9kZXRlcm1pbmlzdGljLXV1aWQtcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSx5QkFBeUI7SUFHbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFXLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDN0IsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQVM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQy9CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7QUFyQkwsOERBc0JHO0FBckJ5QixrQ0FBUSxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERldGVybWluaXN0aWNVdWlkUmVnaXN0cnkge1xuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG4gIFxuICAgIHN0YXRpYyBnZXQoc3RyOiBzdHJpbmcsIGluYyA9IDApIHtcbiAgICAgIGNvbnN0IGlkID0gaW5jID8gdGhpcy5oYXNoQ29kZShgJHtzdHJ9XyR7aW5jfWApIDogdGhpcy5oYXNoQ29kZShzdHIpO1xuICAgICAgaWYgKHRoaXMucmVnaXN0cnkuaGFzKGlkKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQoc3RyLCBpbmMgKyAxKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVnaXN0cnkuc2V0KGlkLCB0cnVlKTtcbiAgICAgIHJldHVybiBpZDtcbiAgICB9XG4gIFxuICAgIHN0YXRpYyBjbGVhcigpIHtcbiAgICAgIHRoaXMucmVnaXN0cnkuY2xlYXIoKTtcbiAgICB9XG4gIFxuICAgIHByaXZhdGUgc3RhdGljIGhhc2hDb2RlKHM6IHN0cmluZykge1xuICAgICAgbGV0IGggPSAwO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKVxuICAgICAgICBoID0gKE1hdGguaW11bCgzMSwgaCkgKyBzLmNoYXJDb2RlQXQoaSkpIHwgMDtcbiAgICAgIHJldHVybiBoLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9Il19