Commit Graph

1234 Commits

Author SHA1 Message Date
renovate[bot] 6a9dbb5e05 chore(deps): update dependency @codspeed/vitest-plugin to v5 (#14215)
Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs
from Renovate will soon appear from 'Mend'. Learn more
[here](https://redirect.github.com/renovatebot/renovate/discussions/37842).

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@codspeed/vitest-plugin](https://codspeed.io)
([source](https://redirect.github.com/CodSpeedHQ/codspeed-node)) |
[`^4.0.0` ->
`^5.0.0`](https://renovatebot.com/diffs/npm/@codspeed%2fvitest-plugin/4.0.1/5.0.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@codspeed%2fvitest-plugin/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@codspeed%2fvitest-plugin/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@codspeed%2fvitest-plugin/4.0.1/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@codspeed%2fvitest-plugin/4.0.1/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>CodSpeedHQ/codspeed-node
(@&#8203;codspeed/vitest-plugin)</summary>

###
[`v5.0.0`](https://redirect.github.com/CodSpeedHQ/codspeed-node/releases/tag/v5.0.0)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/codspeed-node/compare/v4.0.1...v5.0.0)

#### 🎉 What's Changed

This major release brings support for our [Walltime
instrument](https://codspeed.io/docs/instruments/walltime), allowing you
to benchmark larger pieces of code more reliably by making use of
CodSpeed's [Macro
Runners](https://codspeed.io/docs/features/macro-runners).

Support for newer versions of `tinybench` and `vitest` have been added.
Feel free to visit our [node.js
documentation](https://codspeed.io/docs/benchmarks/nodejs/overview) for
more details.

Lastly, we now use our common
[instrument-hooks](https://redirect.github.com/CodSpeedHQ/instrument-hooks)
implementation to interact with our instruments.

#### 💥 Breaking Changes

- **tinybench**: Support for versions below v4 has been dropped. You
must upgrade to tinybench v4 or above.
⚠️ Since tinybench v4 drops support for CJS, ES modules are now required
to use the library.

#### 🚀 Migration Path

This is a **breaking change** because we updated the compatible versions
of underlying benchmarking libraries.\
For example, support for tinybench v3 and below has been dropped. We
recommend upgrading to tinybench v4 or above.

We recommend creating a dedicated PR to update your dependencies, and
create a new performance baseline for your code.

#### 📚 Details

- Bump node, bump tinybench, and add support of walltime runs for
tinybench by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;48](https://redirect.github.com/CodSpeedHQ/codspeed-node/pull/48)
- Add walltime support for vitest plugin by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;49](https://redirect.github.com/CodSpeedHQ/codspeed-node/pull/49)
- chore: bump vitest and rollup dev dependencies by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[#&#8203;52](https://redirect.github.com/CodSpeedHQ/codspeed-node/pull/52)

**Full Changelog**:
<https://github.com/CodSpeedHQ/codspeed-node/compare/v4.0.1...v5.0.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 9am on monday" in timezone
Asia/Shanghai, 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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjEzMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-28 20:54:47 +00:00
Boshen aa0689fe38 release(crates): v0.93.0 (#14194) 2025-09-28 14:13:41 +08:00
Masanori Tani 06b16a9a18 chore(infra): add publint (#13937)
close #13768 

Setup [publint](https://publint.dev/) and fix warnings.
target directory: `napi/` and `editor/vscode`. (I couldn’t determine
whether I should include the `npm/` directory or not.)

Co-authored-by: Boshen <boshenc@gmail.com>
2025-09-27 17:47:15 +08:00
overlookmotel 8c09592d2c test(napi/parser): align fixture version with other tasks (#14146)
#13465 aligned the version of `antd.js` used in different Rust tasks to v4.16.1. But it missed a couple of places in `napi/parser` tests/benchmarks. Align these to same version too.

Misalignment was problematic as the tasks using these fixtures all download the file to same location (`target` dir) and don't re-download if the file is already present. This lead to unpredictable results depending on which task you ran first, and so which version was downloaded.
2025-09-26 09:41:48 +00:00
overlookmotel c0c0c1755a refactor(napi/parser): remove unnecessary #[estree(field_order)] attr (#14144)
`span` is now automatically moved to be last field, so no need to specify field order explicitly here.
2025-09-26 10:34:51 +01:00
Boshen 1b3f437468 release(crates): v0.92.0 (#14067) 2025-09-24 12:18:07 +08:00
overlookmotel cc0019fb0a refactor(napi): move scripts into scripts directory (#14048)
Move all build scripts in `napi` packages into a `scripts` dir. These packages don't have root directories with tons of files like `napi/parser` and `apps/oxlint` do, but IMO it's preferable to have a consistent directory structure in all NAPI packages.

Also, rename these scripts from `.mjs` to `.js`, since these packages are ESM.
2025-09-23 14:47:41 +00:00
overlookmotel 2f9e16da2e fix(napi/minifier, napi/transformer): rename CommonJS file to .cjs (#14047)
`webcontainer-fallback.js` in `napi/minify` and `napi/transform` are CommonJS files, but these packages are ESM. Rename them to `webcontainer-fallback.cjs` to avoid module resolution errors/fallbacks.
2025-09-23 14:47:40 +00:00
overlookmotel bb040bc2d5 refactor(parser, linter): replace .mjs files with .js (#14045)
Now that `apps/oxlint` and `napi/parser` are both ESM packages (#13723 and #14042), we can use `.js` file extensions for all ESM files, rather than the mix of `.js` and `.mjs` file we had previously.

It's less confusing having to remember what's `.js` and what's `.mjs`, and avoids ugly workarounds like #14038 (`.d.mts`??).
2025-09-23 14:47:40 +00:00
overlookmotel b1da5d5ce6 feat(napi/parser)!: change oxc-parser to ESM (#14042)
Completion of the work begun in #13432. Make `oxc-parser` package fully ESM.

Aside from adding `"type": "module"` to `package.json`, only other change required is renaming `webcontainer-fallback.js` -> `webcontainer-fallback.cjs`. All other files already have the extension matching their ESM/CommonJS content.
2025-09-23 14:28:31 +00:00
overlookmotel 909a086f6e docs(parser): simplify example (#14044)
Pure refactor. Remove unnecessary `main` function, to clarify the example.
2025-09-23 13:15:33 +00:00
overlookmotel 55cd2f3058 test(parser): remove unused import (#14043) 2025-09-23 13:15:33 +00:00
Daniel Roe 1f4be382a8 fix(napi/parser): generate .d.mts extension for types (#14038)
the latest version of `oxc-parser` (on npm) does not have resolvable
types because the entry is `.mjs` and the types are `.d.ts` (these need
to match - `.d.mts`). you can see this in the failing CI for [this
renovate
PR](https://github.com/nuxt/nuxt/actions/runs/17940186619/job/51014702361?pr=33290)
but I'm happy to provide a more minimal reproduction if it helps

I also spotted that `napi/parser/test/visit.test.ts` was importing
`visitorKeys` which was not exported from the corresponding declaration,
so took the liberty to add that export as well.

let me know if this needs any changes 🙏 

I hope it helps

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: overlookmotel <theoverlookmotel@gmail.com>
2025-09-23 11:53:20 +01:00
overlookmotel e0be08b311 refactor(napi/parser): freeze visitorKeys export (#14012)
Freeze `visitorKeys` which `oxc-parser` exports. This follows TS-ESLint, and will be useful for `oxlint`.
2025-09-22 20:50:04 +00:00
Boshen cb55daa1c5 release(crates): v0.91.0 (#14000) 2025-09-22 19:24:10 +08:00
overlookmotel d49fb3b54d feat(napi/parser): add deserializeProgramOnly deserializer function (#13940)
Pure refactor. Add a function `deserializeProgramOnly` to generated deserializer code. This function is not used in `oxc-parser`, but is needed to be able to reuse the same code in Oxlint.
2025-09-22 11:08:46 +00:00
overlookmotel 56a385fe94 feat(napi/parser): add AST walker (#13930)
Add an AST visitor to `oxc-parser`.

```js
import { parseSync, Visitor } from 'oxc-parser';

const { program } = parseSync('test.js', 'let x = { y: z };');

const idents = [];
const visitor = new Visitor({
  Identifier(node) {
    idents.push(node.name);
  }
});

visitor.visit(program);

// Logs [ 'x', 'y', 'z' ]
console.log(idents);
```

Primarily we need a visitor for Oxlint plugins, but it's easier to develop and test in `oxc-parser`, so I thought I'd add it there first. Oxlint build process will copy the generated files for tree-walking from `napi/parser` dir, as it does with other files.

Notes:

* The `walk.mjs` file is large, so it's lazy-loaded only when user first constructs a `Visitor`. Adding `Visitor` to the package will not affect start-up time where user only uses `parseSync` etc.
* TS type definition for `Visitor` and the visitor object it takes are provided.
* Visitor supports enter and exit visitors e.g. `Program` and `Program:exit`.
* `src-js/visit/visitor.mjs` is copied from `apps/oxlint` with only minor modifications, and conversion from TS to JS. It'd be better if we only had this impl in one place, but that would require converting `oxc-parser` to TS and building with TSDown, like `oxlint` is. Leaving that for later - #13935.
2025-09-22 11:08:46 +00:00
overlookmotel 4ee94a3308 feat(napi/parser): export visitor keys (#13927)
Add visitor keys export to `oxc-parser` NPM package. This is useful in itself, but also the first step towards an ESTree walker.

Visitor keys are based on `@typescript-eslint/visitor-keys`.

It'd be ideal to generate visitor keys direct from Oxc's own types, but that's proving difficult due to all the custom serializers we use to translate to ESTree. So using the shortcut of borrowing from TS-ESLint for now.

Oxc's AST is slightly different from TS-ESTree (notably Oxc's AST adds `ParenthesizedExpression`). But apart from those few differences, TS-ESLint's AST and Oxc's are identical, and I made a PR to TS-ESLint earlier this year (https://github.com/typescript-eslint/typescript-eslint/pull/11279) to ensure visitor key order is correct, and matches Oxc.

To avoid adding a runtime dependency on `@typescript-eslint/visitor-keys`, extract the data from TS-ESLint in `oxc_ast_tools`, amend for Oxc/TS-ESTree differences, and re-output it as a simple object literal.

This approach will be faster at runtime, as the object's shape is consistent, and also avoids a dependency.
2025-09-22 11:08:46 +00:00
overlookmotel 80c2d03ab4 ci(release): fix release workflow for NAPI packages (#13979)
Fix (hopefully) the release workflow for NAPI packages, after it was broken by #13899.
2025-09-21 14:57:24 +00:00
overlookmotel 48062d06df refactor(napi/parser): itemize files in package.json (#13978)
#13899 made the `files` array in `package.json` for `napi/parser` package a short list of directories. Revert to an itemized list of all files to be included in NPM package.

This is for compatibility with the release workflow which checks the list of files in `package.json` against file system. It fails when `files` list contains directories.
2025-09-21 14:52:09 +00:00
overlookmotel 01859848b1 fix(napi/parser): raw transfer preserveParens option apply to TSParenthesizedType (#13964)
Partial fix for #13851.

Raw transfer `preserveParens` option remove `TSParenthesizedType`s from AST, same as #13855 removed `ParenthesizedExpression`s.

This is not used in `oxc-parser`, but the raw transfer `preserveParens` option is required in `oxlint` JS plugins, to align with TS-ESLint, which has no `TSParenthesizedType`s in its AST.
2025-09-21 10:13:02 +00:00
Boshen fb347da614 release(crates): v0.91.0 (#13961) 2025-09-21 13:23:09 +08:00
sapphi-red 6fcb0d05c6 fix(minifier)!: receive supported engines instead of ecmascript versions (#13933)
fixes https://github.com/oxc-project/oxc/issues/8905
2025-09-20 14:41:56 +00:00
Boshen 7eead3bda3 fix(napi/playground): only mangle only if mangle option is enabled (#13956)
fixes https://github.com/oxc-project/playground/issues/160
2025-09-20 12:43:26 +00:00
overlookmotel 7a50ad99be docs(napi/parser, napi/transform): correct README examples (#13934)
Docs were out of date. `oxc-parser` and `oxc-transform` packages are now ESM-only, so the code examples would no longer run. Correct them.
2025-09-19 19:58:04 +00:00
overlookmotel bd2fa90b8b fix(napi/parser): move browser.js file (#13918)
Fix something I missed in #13899. `browser.js` is auto-generated by NAPI-RS, so needs to be in `src-js` dir with the rest.
2025-09-19 09:19:55 +00:00
overlookmotel 329b7e7150 refactor(napi/parser): move scripts to scripts directory (#13900)
Continuation of #13899. Move scripts from root of `napi/parser` package into a `scripts` directory.
2025-09-19 08:46:43 +00:00
overlookmotel ac3e9e966a refactor(napi/parser): move JS code into src-js directory (#13899)
Pure refactor. Root of `napi/parser` was getting really crowded with tons of files, and I'm about to add a load more for the ESTree walker.

Move JS source files into a `src-js` directory, like in `apps/oxlint`, so that the root of the package is just config files and scripts.
2025-09-19 08:46:42 +00:00
overlookmotel 5ff91bc247 fix(napi/parser): fix example (#13887)
Import path in `napi/parser` example was wrong. The entry point is now `index.mjs`.
2025-09-18 16:27:43 +01:00
overlookmotel 2cef8ecbdd refactor(napi/parser): remove outdated comment (#13886)
Pure refactor. `wrap.cjs` no longer exists, so this comment is outdated. Remove it.
2025-09-18 16:27:43 +01:00
overlookmotel 21bbf959b8 fix(napi): rebuild bindings file for NAPI packages (#13889)
#13888 broke CI because it didn't run `pnpm build` to update version number in NAPI bindings files.

I don't think the published packages are broken, because it only matters if `NAPI_RS_ENFORCE_VERSION_CHECK` env is set.
2025-09-18 14:37:42 +00:00
Boshen d116504831 release(crates): v0.90.0 (#13888) 2025-09-18 22:07:37 +08:00
Boshen 70c402b9f9 feat(napi/transform): add async transform function (#13881)
## Summary

This PR adds an async transform function to the NAPI transform package, following the same pattern used in the parser package for consistency.

Closes #10900

## Changes

- Added `transformAsync` function that returns a Promise
- Implemented `TransformTask` struct with `napi::Task` trait
- Reuses existing transform logic from the synchronous version
- Added comprehensive tests to verify async behavior

## Test Plan

Added tests in `test/transform.test.ts` that verify:
- Async function works correctly
- Produces identical results to sync version
- Properly handles errors

All existing tests continue to pass.

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-09-18 12:44:53 +00:00
Copilot b52389a569 feat(node): Bump engines field to require Node.js 20.19.0+ for ESM support (#13879)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-09-18 20:10:11 +08:00
Boshen b1029ea2a5 feat(napi/playground): convert to ES modules and consolidate build scripts (#13871) 2025-09-18 15:50:50 +08:00
Boshen 3eaddf9e65 fix(napi/playground): linter always require cfg (#13870) 2025-09-18 14:47:18 +08:00
Boshen aad7c1840f feat(napi/playground): add configurable CFG generation (#13869)
## Summary
- Add `cfg` field to `OxcRunOptions` to control Control Flow Graph generation in semantic analysis
- Replace hardcoded `with_cfg(true)` calls with configurable `run_options.cfg` option
- Update TypeScript definitions to include the new `cfg` boolean field

## Motivation
Previously, CFG generation was always enabled (`with_cfg(true)`) in both the main semantic analysis and linter semantic analysis. This change allows users to control CFG generation for better performance when CFG data is not needed.

## Changes
- **napi/playground/src/options.rs**: Add `cfg: bool` field to `OxcRunOptions` struct
- **napi/playground/src/lib.rs**:
  - Update `build_semantic` method to use `run_options.cfg` instead of hardcoded `true`
  - Update `run_linter` method to use `run_options.cfg` instead of hardcoded `true`
- **napi/playground/index.d.ts**: Add `cfg: boolean` to TypeScript definitions

## Test plan
- [ ] Verify compilation succeeds
- [ ] Test NAPI playground with `cfg: true` (should work as before)
- [ ] Test NAPI playground with `cfg: false` (should skip CFG generation for better performance)

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-09-18 04:57:28 +00:00
Boshen ed03162cba feat(napi/playground): add configurable semantic error checking (#13868)
## Summary
- Added a new `semanticErrors` field to `OxcParserOptions` to allow users to control whether semantic syntax errors should be checked and reported
- Updated the `build_semantic` method to use this configuration option
- Semantic errors are now only collected when explicitly enabled through the configuration

## Changes
- Add `semantic_errors: bool` field to `OxcParserOptions` struct in `napi/playground/src/options.rs`
- Update `build_semantic` method in `napi/playground/src/lib.rs` to:
  - Accept `parser_options` parameter
  - Use `parser_options.semantic_errors` for `with_check_syntax_error()`
  - Conditionally collect errors based on the configuration
- Auto-generated TypeScript definitions updated to include the new field

## Test plan
Tested manually by creating a simple Node.js script that:
1. Parses code with duplicate variable declarations (semantic error)
2. Tests with `semanticErrors: true` - confirms error is reported
3. Tests with `semanticErrors: false` - confirms no error is reported

The feature works as expected, providing users with control over semantic error checking.

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-09-18 02:02:04 +00:00
overlookmotel 24a21b3185 feat(napi/parser): preserveParens option for raw transfer (#13855)
Partial fix for #13851.

Add a `preserveParens` argument to raw transfer `deserialize` functions. This is not useful in `oxc-parser`, but these generated files will be duplicated in `oxlint`, where this option is required to remove `ParenthesizedExpression`s from AST, to align with ESLint and TS-ESLint.
2025-09-17 11:38:40 +00:00
overlookmotel 42b100095e refactor(napi/parser): export functions directly (#13854)
Pure refactor. Export functions directly with `export function` instead of an additional `export { ... }` statement. This makes it easier to see which functions are exported and which are not.
2025-09-17 11:16:49 +00:00
overlookmotel 53d04dd1dc feat(linter): convert oxlint to NAPI app (#13723)
Convert `oxlint` to a NAPI package.

This PR:

1. Moves files from `napi/oxlint` into `apps/oxlint`.
2. Converts `oxlint` into a NAPI package.
3. Alters the [release workflow](https://github.com/oxc-project/oxc/pull/13723/files#diff-80cb497c859bbaf7756da6ced2bca3d31933affc96102983eee1ad7d4bcc60fd) and [script](https://github.com/oxc-project/oxc/pull/13723/files#diff-4c4b7045c68805aeeae7c0af94cf7cf7487cb0403496da974a6a23accdc457d0) for building `oxlint` packages.

Most of necessary code modifications and refactoring was done in previous PRs (#13701, #13712, #13722, #13745), so this PR only includes changes necessary for packaging as NAPI.

I've done my best to update release workflow, but am mostly "flying blind" without ability to test it, so very likely there are mistakes.

A few notes and oddities:

* I've kept the `oxlint` NPM package as CommonJS. We could probably switch to ESM, but I thought it better to minimize the changes in this PR.
* NAPI-RS creates `.node` files named with a `-msvc` postfix for Windows. The scripts here remove that postfix so that filename of `.node` files and NPM package names match for all platforms, for simplicity.
* `tasks/website` has a dependency on `oxlint` as a normal library. This resulted in linker errors, so have had to put all the NAPI stuff behind `napi` cargo feature. Tests for `tasks/website` are run separately in CI, to avoid feature unification turning on the `napi` feature for `website`.

I've made a few comments below for the parts which aren't fairly self-explanatory.
2025-09-17 09:20:21 +00:00
Boshen b68c5a202e feat(playground): add inject and replace plugins (#13805) 2025-09-16 14:37:04 +08:00
Boshen cc71b6d3b3 refactor(napi/playground): split run function for better control flow (#13787) 2025-09-16 12:10:07 +08:00
Boshen 9796ec12d7 fix(napi): fix binding files 2025-09-15 14:55:01 +08:00
Boshen de40f0bee0 release(crates): v0.89.0 (#13774) 2025-09-15 14:33:03 +08:00
renovate[bot] b4e9d2c379 chore(deps): lock file maintenance npm packages (#13758)
Co-authored-by: Boshen <boshenc@gmail.com>
2025-09-15 13:15:05 +08:00
Ari Perkkiö 341791e4e3 fix(parser): invalid main entrypoint in package.json (#13767)
In https://github.com/oxc-project/oxc/pull/13432 the filename was
changed but `main` remained as is. I'm now seeing following error in
Vitest:

```
⎯⎯⎯⎯⎯⎯ Unhandled Error ⎯⎯⎯⎯⎯⎯⎯
Error: Failed to resolve entry for package "oxc-parser". The package may have incorrect main/module/exports specified in its package.json.
1  |  import { parse as BabelParser } from "@babel/parser";
2  |  import { parse as AcornParser } from "acorn";
3  |  import { parseSync as OxcParser } from "oxc-parser";
   |                                          ^
4  |  import { parseAst as ViteParser } from "vite";
5  |  import { expectTypeOf, test } from "vitest";
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
```


https://github.com/AriPerkkio/ast-v8-to-istanbul/actions/runs/17722503037/job/50357275013?pr=86

See errors from https://publint.dev/oxc-parser@0.88.0.

Signed-off-by: Ari Perkkiö <ari.perkkio@gmail.com>
2025-09-15 13:14:35 +08:00
Boshen 369287abac release(crates): v0.88.0 (#13765)
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-09-15 11:01:32 +08:00
overlookmotel ab5139440b fix(raw_transfer): disable layout assertions on some 32-bit platforms (#13716)
Fixes #13694.

Some 32-bit platforms give `u64` and `f64` alignment of 8, and others alignment of 4. WASM32 uses alignment 8, and layout calculator assumes that.

Skip layout assertions for platforms where alignment is 4, because we know some layouts are wrong for those platforms, and it causes compilation failure in debug builds. But retain the assertions for other 32-bit platforms (notably WASM), to make sure they remain correct. This will make it easier to extend raw transfer support to WASM later on.
2025-09-12 06:23:59 +00:00
overlookmotel 5f56b09f7e docs(napi/oxlint): add comments (#13712)
Docs/comments only. Document all functions in `napi/oxlint` crate + update safety comment in `wrap_lint_file`.
2025-09-12 05:37:46 +00:00