codingjoe / codingjoe/esupgrade

Transformer: Map initialization patterns to getOrInsert APIs

Open
#143 0 comments 0 reactions 0 assignees View on GitHub
newly available
Dominant language
JavaScript
Stars
13
Forks
2
Avg merge
1d 5h
Merged PRs (30d)
6

Description

## Summary
Add a transformer that upgrades common Map get-or-init patterns to getOrInsert/getOrInsertComputed.

## Examples
```js
// before
if (!cache.has(key)) {
cache.set(key, []);
}
const value = cache.get(key);

// after
const value = cache.getOrInsert(key, []);
```

```js
// before
if (!cache.has(key)) {
cache.set(key, buildValue());
}
const value = cache.get(key);

// after
const value = cache.getOrInsertComputed(key, buildValue);
```

## Scope
- Baseline category: newly available.
- Preserve side-effect behavior; skip unsafe cases.

## Acceptance criteria
- Implement in src/newlyAvailable/
- Export from src/newlyAvailable.js
- Add tests in tests/newlyAvailable/
- Document in README.md

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.