26 lines
702 B
JavaScript
26 lines
702 B
JavaScript
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
|