UNPKG

@hlang-org/runtime

Version:

A FBP-Inspired language for universal applications.

34 lines 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const uuid_1 = require("uuid"); class UUIDManager { constructor() { this.uuidSet = new Set; } create() { const uuid = (0, uuid_1.v4)(); const result = this.validate(uuid); if (!result) { return this.create(); } this.uuidSet.add(uuid); return uuid; } validate(value) { if (!(0, uuid_1.validate)(value)) { console.warn(`uuid ${value} is invalid.`); return false; } if (this.uuidSet.has(value)) { console.warn(`${value} exists.`); return false; } return true; } delete(value) { this.uuidSet.delete(value); return this.uuidSet; } } exports.default = new UUIDManager(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91dWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQW9DO0FBRXBDLE1BQU0sV0FBVztJQUdmO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sSUFBSSxHQUFHLElBQUEsU0FBRSxHQUFFLENBQUM7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDWixJQUFJLENBQUMsSUFBQSxlQUFRLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxjQUFjLENBQUMsQ0FBQztZQUMxQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLENBQUM7WUFDakMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztDQUNGO0FBRUQsa0JBQWUsSUFBSSxXQUFXLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHY0LCB2YWxpZGF0ZSB9IGZyb20gJ3V1aWQnO1xuXG5jbGFzcyBVVUlETWFuYWdlciB7XG4gIHV1aWRTZXQ6IFNldDxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudXVpZFNldCA9IG5ldyBTZXQ7XG4gIH1cblxuICBjcmVhdGUoKSB7XG4gICAgY29uc3QgdXVpZCA9IHY0KCk7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy52YWxpZGF0ZSh1dWlkKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlKCk7XG4gICAgfVxuICAgIHRoaXMudXVpZFNldC5hZGQodXVpZCk7XG4gICAgcmV0dXJuIHV1aWQ7XG4gIH1cblxuICB2YWxpZGF0ZSh2YWx1ZSkge1xuICAgIGlmICghdmFsaWRhdGUodmFsdWUpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYHV1aWQgJHt2YWx1ZX0gaXMgaW52YWxpZC5gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXVpZFNldC5oYXModmFsdWUpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYCR7dmFsdWV9IGV4aXN0cy5gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBkZWxldGUodmFsdWUpIHtcbiAgICB0aGlzLnV1aWRTZXQuZGVsZXRlKHZhbHVlKTtcbiAgICByZXR1cm4gdGhpcy51dWlkU2V0O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBVVUlETWFuYWdlcigpO1xuIl19