54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
![]() |
import { RandomEngine } from "./RandomEngine";
|
||
|
import { JSRandomEngine } from "./JSRandomEngine";
|
||
|
|
||
|
export class RandomUIDGenerator
|
||
|
{
|
||
|
static readonly UID_CHARACTER_SET:string =
|
||
|
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||
|
|
||
|
static readonly UID_NUM_CHARACTERS:number = 16;
|
||
|
|
||
|
private _characterSet:string = RandomUIDGenerator.UID_CHARACTER_SET;
|
||
|
get characterSet(){ return this._characterSet; }
|
||
|
|
||
|
private _numCharacters:number = RandomUIDGenerator.UID_NUM_CHARACTERS;
|
||
|
get numCharacters(){ return this._numCharacters; }
|
||
|
|
||
|
set( characterSet:string, numCharacters:number )
|
||
|
{
|
||
|
this._characterSet = characterSet;
|
||
|
this._numCharacters = numCharacters;
|
||
|
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
static createUID( randomEngine:RandomEngine = null )
|
||
|
{
|
||
|
let id = "";
|
||
|
randomEngine = randomEngine ||JSRandomEngine.$;
|
||
|
|
||
|
for ( let i = 0; i < RandomUIDGenerator.UID_NUM_CHARACTERS; i++ )
|
||
|
{
|
||
|
let randomCharacter = randomEngine.fromString( RandomUIDGenerator.UID_CHARACTER_SET );
|
||
|
id += randomCharacter;
|
||
|
}
|
||
|
|
||
|
return id;
|
||
|
}
|
||
|
|
||
|
generate( randomEngine:RandomEngine = null )
|
||
|
{
|
||
|
let id = "";
|
||
|
randomEngine = randomEngine || JSRandomEngine.$;
|
||
|
|
||
|
for ( let i = 0; i < this._numCharacters; i++ )
|
||
|
{
|
||
|
let randomCharacter = randomEngine.fromString( this._characterSet );
|
||
|
id += randomCharacter;
|
||
|
}
|
||
|
|
||
|
return id;
|
||
|
}
|
||
|
}
|