@qrsln/utils
Version:
1 lines • 8.24 kB
Source Map (JSON)
{"version":3,"file":"qrsln-utils-Core.mjs","sources":["../../../projects/utils/Core/src/Guid.ts","../../../projects/utils/Core/src/StopWatch.ts","../../../projects/utils/Core/qrsln-utils-Core.ts"],"sourcesContent":["/** @dynamic */\r\nexport class Guid {\r\n\r\n // public static Empty = '00000000-0000-0000-0000-000000000000';\r\n public static get Empty(): string {\r\n return '00000000-0000-0000-0000-000000000000';\r\n }\r\n\r\n public get Empty(): string {\r\n return Guid.Empty;\r\n }\r\n\r\n constructor(value?: string) {\r\n this.Value = Guid.Empty;\r\n\r\n if (value && Guid.IsValid(value)) {\r\n this.Value = value;\r\n }\r\n }\r\n\r\n private static validator = new RegExp('^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$', 'i');\r\n\r\n private readonly Value: string = this.Empty;\r\n\r\n public static Parse(guid: string): Guid {\r\n return new Guid(guid);\r\n }\r\n\r\n public static NewGuid(): Guid {\r\n return new Guid(Guid.Raw());\r\n }\r\n\r\n public static IsValid(guid: any): boolean {\r\n const value: string = guid.toString();\r\n return guid && (guid instanceof Guid || Guid.validator.test(value));\r\n }\r\n\r\n public static Raw(): string {\r\n return [Guid.Generate(2), Guid.Generate(1), Guid.Generate(1), Guid.Generate(1), Guid.Generate(3)].join('-');\r\n }\r\n\r\n private static Generate(count: number): string {\r\n let out = '';\r\n for (let i = 0; i < count; i++) {\r\n // tslint:disable-next-line:no-bitwise\r\n out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n }\r\n return out;\r\n }\r\n\r\n public Equals(other: Guid): boolean {\r\n // Comparing string `value` against provided `guid` will auto-call\r\n // toString on `guid` for comparison\r\n return Guid.IsValid(other) && this.Value === other.ToString();\r\n }\r\n\r\n public IsEmpty(): boolean {\r\n return this.Empty === Guid.Empty;\r\n }\r\n\r\n public ToString = (): string => this.Value;\r\n\r\n public ToJSON(): any {\r\n return {\r\n Value: this.Value,\r\n };\r\n }\r\n}\r\n\r\n/* usage\r\nimport {Guid} from '@qrsln/loot-box/Utils';\r\n...\r\n\r\n guid: Guid;\r\n\r\n GuidStringify = () => JSON.stringify(this.guid);\r\n\r\n Guid() {\r\n this.guid = new Guid();\r\n console.log(this.guid); // Guid {Value: \"00000000-0000-0000-0000-000000000000\"}\r\n console.log(this.guid.ToString()); // 00000000-0000-0000-0000-000000000000\r\n console.log(this.guid.ToJSON()); // {Value: \"00000000-0000-0000-0000-000000000000\"}\r\n console.log(JSON.stringify(this.guid)); // {Value: \"00000000-0000-0000-0000-000000000000\"}\r\n console.log('IsEmpty', this.guid.IsEmpty()); // true\r\n }\r\n\r\n GuidNew() {\r\n this.guid = Guid.NewGuid();\r\n console.log(this.guid); // Guid { Value: 'bb90ef83-1a7e-42b1-90ba-39cdebb6366c' }\r\n console.log(JSON.stringify(this.guid)); // \"bb90ef83-1a7e-42b1-90ba-39cdebb6366c\"\r\n }\r\n\r\n GuidCheck() {\r\n console.log('IsValid', Guid.IsValid(this.guid)); // true\r\n console.log(Guid.Empty); // 00000000-0000-0000-0000-000000000000\r\n console.log('IsValid Guid.IsValid(Guid.Empty)', Guid.IsValid(Guid.Empty)); // false\r\n console.log('Equals this.guid.Equals(this.guid));', this.guid.Equals(this.guid)); // true\r\n console.log('Equals this.guid.Equals(Guid.NewGuid())', this.guid.Equals(Guid.NewGuid())); // false\r\n }\r\n */\r\n","/** @dynamic */\r\nexport const Sleep = (ms?: number) => new Promise(resolve => setTimeout(resolve, ms));\r\n\r\n/** @dynamic */\r\nexport class StopWatch {\r\n private startTimeMillis = 0;\r\n private totalTimeMillis = 0;\r\n\r\n constructor() {\r\n }\r\n\r\n static StartNew(): StopWatch {\r\n const stopWatch = new StopWatch();\r\n stopWatch.Start();\r\n return stopWatch;\r\n }\r\n\r\n Reset(): void {\r\n this.startTimeMillis = 0;\r\n this.totalTimeMillis = 0;\r\n }\r\n\r\n Start(): void {\r\n this.startTimeMillis = Date.now();\r\n }\r\n\r\n Stop(): string {\r\n const lastTime: number = Date.now() - this.startTimeMillis;\r\n this.totalTimeMillis += lastTime;\r\n // console.log(this.totalTimeMillis, lastTime);\r\n return this.Elapsed;\r\n }\r\n\r\n // Get the elapsed time as a TimeSpan value.\r\n get Elapsed(): string {\r\n return this.TimeSpan(this.totalTimeMillis);\r\n }\r\n\r\n // Get the elapsed time as a TimeSpan value.\r\n get ElapsedMilliseconds(): number {\r\n return this.totalTimeMillis;\r\n }\r\n\r\n /**\r\n * Convert milliseconds to time string (hh:mm:ss:mss).\r\n * @param milliseconds Number\r\n * @return String\r\n */\r\n public TimeSpan = (milliseconds: number) => new Date(milliseconds).toISOString().slice(11, -1);\r\n}\r\n\r\n/*\r\nimport {Sleep, StopWatch} from '@qrsln/loot-box/Utils';\r\n\r\n(async () => {\r\n const watcher = StopWatch.StartNew();\r\n watcher.Stop();\r\n console.log(watcher.Elapsed);\r\n console.log(\"Tasks take \" + watcher.ElapsedMilliseconds + \" milliseconds\");\r\n\r\n const stopWatch = new StopWatch();\r\n stopWatch.Start();\r\n await Sleep(10000);\r\n stopWatch.Stop();\r\n // Get the elapsed time as a TimeSpan value.\r\n const ts = stopWatch.Elapsed;\r\n})();\r\n* */\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}