Buckets:
| export class InternMap extends Map { | |
| constructor(entries, key = keyof) { | |
| super(); | |
| Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); | |
| if (entries != null) for (const [key, value] of entries) this.set(key, value); | |
| } | |
| get(key) { | |
| return super.get(intern_get(this, key)); | |
| } | |
| has(key) { | |
| return super.has(intern_get(this, key)); | |
| } | |
| set(key, value) { | |
| return super.set(intern_set(this, key), value); | |
| } | |
| delete(key) { | |
| return super.delete(intern_delete(this, key)); | |
| } | |
| } | |
| export class InternSet extends Set { | |
| constructor(values, key = keyof) { | |
| super(); | |
| Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}}); | |
| if (values != null) for (const value of values) this.add(value); | |
| } | |
| has(value) { | |
| return super.has(intern_get(this, value)); | |
| } | |
| add(value) { | |
| return super.add(intern_set(this, value)); | |
| } | |
| delete(value) { | |
| return super.delete(intern_delete(this, value)); | |
| } | |
| } | |
| function intern_get({_intern, _key}, value) { | |
| const key = _key(value); | |
| return _intern.has(key) ? _intern.get(key) : value; | |
| } | |
| function intern_set({_intern, _key}, value) { | |
| const key = _key(value); | |
| if (_intern.has(key)) return _intern.get(key); | |
| _intern.set(key, value); | |
| return value; | |
| } | |
| function intern_delete({_intern, _key}, value) { | |
| const key = _key(value); | |
| if (_intern.has(key)) { | |
| value = _intern.get(key); | |
| _intern.delete(key); | |
| } | |
| return value; | |
| } | |
| function keyof(value) { | |
| return value !== null && typeof value === "object" ? value.valueOf() : value; | |
| } | |
Xet Storage Details
- Size:
- 1.58 kB
- Xet hash:
- 91b50771ed27292be9fe3d66e2adcc520b4c0272a344a9d3f67a995fc2d7c227
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.