mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
1c4f519e36
## What Ports the Relay `graphql` tagged template transform (babel-plugin-relay / swc_relay) as an individual napi transform, per #24914: - **`crates/oxc_relay`** — the core transform as its own crate (modeled on `oxc_react_compiler`): replaces `graphql` tagged templates with references to relay-compiler artifacts. Definition names are extracted textually like `swc_relay` (equivalent to `\b(fragment|mutation|query|subscription)\s+(\w+)` with `#` comments stripped; hand-rolled scanner, no regex dependency). - **`napi/transform-relay`** (`oxc-transform-relay`) — standalone napi package copied from the `napi/transform-react` template: parse → semantic → relay traverse → codegen. Only `graphql` tags are rewritten; TypeScript/JSX syntax is preserved untouched, so the output composes with any downstream toolchain. ## Options | option | default | behavior | |---|---|---| | `artifactDirectory` | unset | when set, the import path is computed lexically relative to the transformed file (babel-plugin-relay `getRelativeImportPath` semantics — swc emits absolute paths instead); unset → `./__generated__/` next to the file | | `language` | `javascript` | `typescript` imports `Name.graphql.ts`, otherwise `Name.graphql.js` | | `eagerEsModules` | `true` | hoisted default imports (babel-plugin-relay ≥ v17 parity); `false` emits inline `require()` (`@swc/plugin-relay` / Next.js behavior) | A `graphql` tag with no extractable definition name produces an error diagnostic (babel throws; swc silently skips). Not supported, documented in both READMEs: dev-mode artifact hash validation, `jsModuleFormat: "haste"`, `isDevVariableName`, swc's Next.js-specific `projects`/`pagesDir`, and GraphQL document validation. closes #24914 --- Implemented with Claude Code.
92 lines
2.4 KiB
JSON
92 lines
2.4 KiB
JSON
{
|
|
"name": "oxc-transform-relay",
|
|
"version": "0.144.0",
|
|
"description": "Oxc Relay Transform Node API",
|
|
"keywords": [
|
|
"graphql",
|
|
"javascript",
|
|
"oxc",
|
|
"relay",
|
|
"transform",
|
|
"typescript"
|
|
],
|
|
"homepage": "https://oxc.rs",
|
|
"bugs": "https://github.com/oxc-project/oxc/issues",
|
|
"license": "MIT",
|
|
"author": "Boshen and oxc contributors",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/oxc-project/oxc.git",
|
|
"directory": "napi/transform-relay"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/Boshen"
|
|
},
|
|
"files": [
|
|
"browser.js",
|
|
"index.d.ts",
|
|
"index.js",
|
|
"webcontainer-fallback.cjs"
|
|
],
|
|
"type": "module",
|
|
"sideEffects": false,
|
|
"main": "index.js",
|
|
"browser": "browser.js",
|
|
"publishConfig": {
|
|
"access": "public",
|
|
"registry": "https://registry.npmjs.org/"
|
|
},
|
|
"scripts": {
|
|
"build-dev": "napi build --esm --platform",
|
|
"build-test": "pnpm run build-dev --profile coverage",
|
|
"build": "pnpm run build-dev --features allocator --release",
|
|
"postbuild": "publint",
|
|
"postbuild-dev": "node scripts/patch.js",
|
|
"build-wasm": "pnpm run build-wasm-dev --release",
|
|
"build-wasm-dev": "pnpm run build-dev --target wasm32-wasip1-threads --dts transform-relay.wasi.d.cts",
|
|
"test": "vitest run --dir ./test"
|
|
},
|
|
"devDependencies": {
|
|
"@emnapi/core": "catalog:",
|
|
"@emnapi/runtime": "catalog:",
|
|
"@napi-rs/cli": "catalog:",
|
|
"@types/node": "catalog:",
|
|
"publint": "catalog:",
|
|
"vitest": "catalog:"
|
|
},
|
|
"napi": {
|
|
"binaryName": "transform-relay",
|
|
"packageName": "@oxc-transform-relay/binding",
|
|
"targets": [
|
|
"aarch64-apple-darwin",
|
|
"aarch64-linux-android",
|
|
"aarch64-pc-windows-msvc",
|
|
"aarch64-unknown-linux-gnu",
|
|
"aarch64-unknown-linux-musl",
|
|
"aarch64-unknown-linux-ohos",
|
|
"armv7-linux-androideabi",
|
|
"armv7-unknown-linux-gnueabihf",
|
|
"armv7-unknown-linux-musleabihf",
|
|
"i686-pc-windows-msvc",
|
|
"powerpc64le-unknown-linux-gnu",
|
|
"riscv64gc-unknown-linux-gnu",
|
|
"riscv64gc-unknown-linux-musl",
|
|
"s390x-unknown-linux-gnu",
|
|
"wasm32-wasip1-threads",
|
|
"x86_64-apple-darwin",
|
|
"x86_64-pc-windows-msvc",
|
|
"x86_64-unknown-freebsd",
|
|
"x86_64-unknown-linux-gnu",
|
|
"x86_64-unknown-linux-musl"
|
|
],
|
|
"wasm": {
|
|
"browser": {
|
|
"fs": false
|
|
}
|
|
}
|
|
},
|
|
"engines": {
|
|
"node": "^20.19.0 || >=22.12.0"
|
|
}
|
|
}
|