UNPKG

ts-std-lib

Version:
39 lines 1.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Guid = void 0; const tslib_1 = require("tslib"); const uuid_1 = require("uuid"); const Equality_1 = require("./Equality"); const IInspectable_1 = require("./IInspectable"); const JsonSerializable_1 = require("./Serialization/Json/JsonSerializable"); /** * A globally unique user identifer implementation * @see https://www.npmjs.com/package/uuid */ class Guid extends JsonSerializable_1.JsonSerializable { constructor(guid) { super(); if (guid && !this.isValid(guid)) { throw new Error('Invalid guid'); } this._guid = guid || (0, uuid_1.v4)(); } valueOf() { return this._guid; } [Equality_1.equals](other) { return this._guid === other._guid; } [IInspectable_1.inspect](_options) { return `<${Guid.name}> ${this._guid}`; } isValid(guid) { return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(guid); } } tslib_1.__decorate([ (0, JsonSerializable_1.jsonProperty)('guid'), tslib_1.__metadata("design:type", String) ], Guid.prototype, "_guid", void 0); exports.Guid = Guid; //# sourceMappingURL=Guid.js.map