Commit Graph

8 Commits

Author SHA1 Message Date
renovate d4aeb0982c chore(deps): update dependency oxlint to v1.39.0 (#17924)
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|---|---|
| [oxlint](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`1.38.0` → `1.39.0`](https://renovatebot.com/diffs/npm/oxlint/1.38.0/1.39.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/1.39.0?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/1.39.0?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/1.38.0/1.39.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/1.38.0/1.39.0?slim=true) |

---

### Release Notes

<details>
<summary>oxc-project/oxc (oxlint)</summary>

### [`v1.39.0`](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v1.38.0...oxlint_v1.39.0)

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v1.38.0...oxlint_v1.39.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/oxc-project/oxc).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
2026-01-12 11:13:36 +00:00
overlookmotel fd8e9c67f5 perf(linter/plugins): speed up cloning JSON objects (#16997)
Follow-on after #16962.

Small optimization to `deepCloneJsonObject`. Iterate through keys of `cloned` instead of `obj`.

Benchmark shows this is marginally faster (0.3%):

https://benchmarklab.azurewebsites.net/Benchmarks/ShowResult/622556
2025-12-17 10:59:14 +00:00
overlookmotel 4c4de62b1e refactor(linter/plugins): introduce methods for deep cloning JSON values (#16962)
Add methods for deep cloning JSON values, objects, and arrays. These are used in the next PR (#16930).
2025-12-16 23:03:44 +00:00
overlookmotel da509be78a refactor(linter/plugins): convert global properties to vars with TSDown plugin, instead of manually (#16961)
Previously we had a pattern of destructuring properties of global objects into top-level vars. e.g.:

```js
const { keys: ObjectKeys, hasOwn } = Object,
  { isArray } = Array;
```

Doing this is more performant, but it makes the code harder to read.

Instead, write code normally, and use a TSDown plugin to convert:

```js
const keys = Object.keys(obj);
```

to:

```js
import { ObjectKeys } from "../utils/globals.ts";
const keys = ObjectKeys(obj);
```

Defining all the destructured globals in a single file (`utils/globals.ts`) is advantageous for bundle size. If the TSDown plugin created top level `const ObjectKeys = Object.keys;` statements in each file, then you can end up with this in bundle as minifier doesn't de-duplicate:

```js
const ObjectKeys = Object.keys;
const ObjectKeys$1 = Object.keys;
const ObjectKeys$2 = Object.keys;
```

The globals we use have to be manually added to `utils/globals.ts`, but TSDown plugin warns when this needs to be done, and doesn't generate a broken build in the meantime.

This plugin is run in debug builds too, so that the tests will catch any bugs.
2025-12-16 17:33:37 +00:00
overlookmotel 8881d7f6a2 refactor(linter/plugins): split JSON deep freeze into multiple functions (#16216)
Pure refactor. Split JSON merging into multiple functions, exposing `deepFreezeJsonObject` and `deepFreezeJsonArray` methods. These are needed for merging rule options (#16217).
2025-11-27 22:32:35 +00:00
overlookmotel abdbba7bd5 ci(lint): enable typescript/consistent-indexed-object-style rule (#16209)
Enable `typescript/consistent-indexed-object-style` Oxlint rule to enforce consistent style in our TS code.
2025-11-27 16:00:17 +00:00
Boshen 523a30a016 style(all): apply oxfmt default options (#16091)
Embrace the defaults!

---------

Co-authored-by: Yuji Sugiura <y.sugiura.0316@gmail.com>
2025-11-25 15:56:24 +09:00
overlookmotel 53bf16ad61 refactor(linter/plugins): improve types for settings (#15695)
Improve types for `settings`. `settings` is deserialized from JSON, so can only contain a limited set of values.
2025-11-14 12:48:25 +00:00