chore: project setup and tooling cleanup (#26)

* add project setup

* add tools to eslint

* remove contributing.md

* update claude md

* chore: simplify CI to single Node.js version (22)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* use node 20

* adjust formatting

* fix linting

* format

* fix layout

* fix: align CI node version to .nvmrc (22), remove redundant gotcha

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: arkon <arkon.85@hotmail.com>
This commit is contained in:
Noah Waldner
2026-02-27 13:16:23 +01:00
committed by GitHub
co-authored by Claude Sonnet 4.6 arkon
parent 2b2829ebde
commit 480584de63
61 changed files with 4306 additions and 4013 deletions
+10 -16
View File
@@ -245,29 +245,23 @@ export class StaleExpirationMap<K, V> implements Disposable {
/**
* Get all keys (non-expired).
*/
keys(): IterableIterator<K> {
const self = this;
return (function* () {
for (const [key, entry] of self.entries) {
if (!self.isExpired(entry)) {
yield key;
}
*keys(): IterableIterator<K> {
for (const [key, entry] of this.entries) {
if (!this.isExpired(entry)) {
yield key;
}
})();
}
}
/**
* Get all values (non-expired).
*/
values(): IterableIterator<V> {
const self = this;
return (function* () {
for (const [, entry] of self.entries) {
if (!self.isExpired(entry)) {
yield entry.value;
}
*values(): IterableIterator<V> {
for (const [, entry] of this.entries) {
if (!this.isExpired(entry)) {
yield entry.value;
}
})();
}
}
/**