You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
702 B
26 lines
702 B
3 weeks ago
|
import { DoubleIndexedKV } from './double-indexed-kv.js';
|
||
|
export class Registry {
|
||
|
constructor(generateIdentifier) {
|
||
|
this.generateIdentifier = generateIdentifier;
|
||
|
this.kv = new DoubleIndexedKV();
|
||
|
}
|
||
|
register(value, identifier) {
|
||
|
if (this.kv.getByValue(value)) {
|
||
|
return;
|
||
|
}
|
||
|
if (!identifier) {
|
||
|
identifier = this.generateIdentifier(value);
|
||
|
}
|
||
|
this.kv.set(identifier, value);
|
||
|
}
|
||
|
clear() {
|
||
|
this.kv.clear();
|
||
|
}
|
||
|
getIdentifier(value) {
|
||
|
return this.kv.getByValue(value);
|
||
|
}
|
||
|
getValue(identifier) {
|
||
|
return this.kv.getByKey(identifier);
|
||
|
}
|
||
|
}
|
||
|
//# sourceMappingURL=registry.js.map
|