Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,9 @@ jobs:
export CC=clang
export CFLAGS="-fuse-ld=lld"
pnpm --filter=@oxc-node/core build --target s390x-unknown-linux-gnu --use-napi-cross
- host: ubuntu-latest
target: aarch64-unknown-linux-ohos
build: pnpm --filter=@oxc-node/core build --target aarch64-unknown-linux-ohos
- host: ubuntu-latest
target: wasm32-wasip1-threads
build: pnpm --filter=@oxc-node/core build --target wasm32-wasip1-threads
Expand Down Expand Up @@ -149,14 +152,17 @@ jobs:
- uses: goto-bus-stop/setup-zig@abea47f85e598557f500fa1fd2ab7464fcb39406 # v2.2.1
if: ${{ contains(matrix.settings.target, 'musl') }}
with:
version: 0.14.0
version: 0.14.1
- name: Install cargo-zigbuild
uses: taiki-e/install-action@c07504cae06f832dc8de08911c9a9c5cddb0d2d3 # v2.56.13
if: ${{ contains(matrix.settings.target, 'musl') }}
env:
GITHUB_TOKEN: ${{ github.token }}
with:
tool: cargo-zigbuild
- name: Setup OpenHarmony toolchain
if: ${{ contains(matrix.settings.target, 'ohos') }}
uses: openharmony-rs/setup-ohos-sdk@10564ad8040178be4aa02e0d3a2c25c32779fa3f # v0.2
- name: Setup toolchain
run: ${{ matrix.settings.setup }}
if: ${{ matrix.settings.setup }}
Expand Down
10 changes: 5 additions & 5 deletions packages/core/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,8 @@ export declare class Output {
sourceMap(): string | null
}

export function transform(path: string, source: string | Uint8Array): Output

export function transformAsync(path: string, source: string | Uint8Array): Promise<Output>

export declare class OxcTransformer {
constructor(cwd?: string)
constructor(cwd?: string | undefined | null)
transform(path: string, source: string | Uint8Array): Output
transformAsync(path: string, source: string | Uint8Array | Buffer): Promise<Output>
}
Expand Down Expand Up @@ -62,3 +58,7 @@ export interface ResolveFnOutput {
url: string
importAttributes?: Record<string, string> | null
}

export declare function transform(path: string, source: string | Uint8Array): Output

export declare function transformAsync(path: string, source: string | Uint8Array | Buffer): Promise<unknown>
207 changes: 112 additions & 95 deletions packages/core/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ function requireNative() {
} catch (e) {
loadErrors.push(e)
}

} else if (process.arch === 'arm') {
try {
return require('./oxc-node.android-arm-eabi.node')
Expand All @@ -94,7 +93,6 @@ function requireNative() {
} catch (e) {
loadErrors.push(e)
}

} else {
loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
}
Expand All @@ -110,7 +108,6 @@ function requireNative() {
} catch (e) {
loadErrors.push(e)
}

} else if (process.arch === 'ia32') {
try {
return require('./oxc-node.win32-ia32-msvc.node')
Expand All @@ -122,7 +119,6 @@ function requireNative() {
} catch (e) {
loadErrors.push(e)
}

} else if (process.arch === 'arm64') {
try {
return require('./oxc-node.win32-arm64-msvc.node')
Expand All @@ -134,22 +130,20 @@ function requireNative() {
} catch (e) {
loadErrors.push(e)
}

} else {
loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
}
} else if (process.platform === 'darwin') {
try {
return require('./oxc-node.darwin-universal.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-darwin-universal')
} catch (e) {
loadErrors.push(e)
}

return require('./oxc-node.darwin-universal.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-darwin-universal')
} catch (e) {
loadErrors.push(e)
}
if (process.arch === 'x64') {
try {
return require('./oxc-node.darwin-x64.node')
Expand All @@ -161,7 +155,6 @@ function requireNative() {
} catch (e) {
loadErrors.push(e)
}

} else if (process.arch === 'arm64') {
try {
return require('./oxc-node.darwin-arm64.node')
Expand All @@ -173,7 +166,6 @@ function requireNative() {
} catch (e) {
loadErrors.push(e)
}

} else {
loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
}
Expand All @@ -189,7 +181,6 @@ function requireNative() {
} catch (e) {
loadErrors.push(e)
}

} else if (process.arch === 'arm64') {
try {
return require('./oxc-node.freebsd-arm64.node')
Expand All @@ -201,141 +192,167 @@ function requireNative() {
} catch (e) {
loadErrors.push(e)
}

} else {
loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
}
} else if (process.platform === 'linux') {
if (process.arch === 'x64') {
if (isMusl()) {
try {
return require('./oxc-node.linux-x64-musl.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-x64-musl')
} catch (e) {
loadErrors.push(e)
}

return require('./oxc-node.linux-x64-musl.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-x64-musl')
} catch (e) {
loadErrors.push(e)
}
} else {
try {
return require('./oxc-node.linux-x64-gnu.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-x64-gnu')
} catch (e) {
loadErrors.push(e)
}

return require('./oxc-node.linux-x64-gnu.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-x64-gnu')
} catch (e) {
loadErrors.push(e)
}
}
} else if (process.arch === 'arm64') {
if (isMusl()) {
try {
return require('./oxc-node.linux-arm64-musl.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-arm64-musl')
} catch (e) {
loadErrors.push(e)
}

return require('./oxc-node.linux-arm64-musl.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-arm64-musl')
} catch (e) {
loadErrors.push(e)
}
} else {
try {
return require('./oxc-node.linux-arm64-gnu.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-arm64-gnu')
} catch (e) {
loadErrors.push(e)
}

return require('./oxc-node.linux-arm64-gnu.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-arm64-gnu')
} catch (e) {
loadErrors.push(e)
}
}
} else if (process.arch === 'arm') {
if (isMusl()) {
try {
return require('./oxc-node.linux-arm-musleabihf.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-arm-musleabihf')
} catch (e) {
loadErrors.push(e)
return require('./oxc-node.linux-arm-musleabihf.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-arm-musleabihf')
} catch (e) {
loadErrors.push(e)
}
} else {
try {
return require('./oxc-node.linux-arm-gnueabihf.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-arm-gnueabihf')
} catch (e) {
loadErrors.push(e)
}
}

} else if (process.arch === 'riscv64') {
if (isMusl()) {
try {
return require('./oxc-node.linux-riscv64-musl.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-riscv64-musl')
} catch (e) {
loadErrors.push(e)
}
} else {
try {
return require('./oxc-node.linux-arm-gnueabihf.node')
return require('./oxc-node.linux-riscv64-gnu.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-riscv64-gnu')
} catch (e) {
loadErrors.push(e)
}
}
} else if (process.arch === 'ppc64') {
try {
return require('./oxc-node.linux-ppc64-gnu.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-arm-gnueabihf')
return require('@oxc-node/core-linux-ppc64-gnu')
} catch (e) {
loadErrors.push(e)
}

}
} else if (process.arch === 'riscv64') {
if (isMusl()) {
try {
return require('./oxc-node.linux-riscv64-musl.node')
} else if (process.arch === 's390x') {
try {
return require('./oxc-node.linux-s390x-gnu.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-riscv64-musl')
return require('@oxc-node/core-linux-s390x-gnu')
} catch (e) {
loadErrors.push(e)
}

} else {
try {
return require('./oxc-node.linux-riscv64-gnu.node')
} else {
loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
}
} else if (process.platform === 'openharmony') {
if (process.arch === 'arm64') {
try {
return require('./oxc-node.linux-arm64-ohos.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-riscv64-gnu')
return require('@oxc-node/core-linux-arm64-ohos')
} catch (e) {
loadErrors.push(e)
}

}
} else if (process.arch === 'ppc64') {
} else if (process.arch === 'x64') {
try {
return require('./oxc-node.linux-ppc64-gnu.node')
return require('./oxc-node.linux-x64-ohos.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-ppc64-gnu')
return require('@oxc-node/core-linux-x64-ohos')
} catch (e) {
loadErrors.push(e)
}

} else if (process.arch === 's390x') {
} else if (process.arch === 'arm') {
try {
return require('./oxc-node.linux-s390x-gnu.node')
return require('./oxc-node.linux-arm-ohos.node')
} catch (e) {
loadErrors.push(e)
}
try {
return require('@oxc-node/core-linux-s390x-gnu')
return require('@oxc-node/core-linux-arm-ohos')
} catch (e) {
loadErrors.push(e)
}

} else {
loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
}
} else {
loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
Expand Down Expand Up @@ -377,9 +394,9 @@ if (!nativeBinding) {

module.exports = nativeBinding
module.exports.Output = nativeBinding.Output
module.exports.transform = nativeBinding.transform
module.exports.transformAsync = nativeBinding.transformAsync
module.exports.OxcTransformer = nativeBinding.OxcTransformer
module.exports.createResolve = nativeBinding.createResolve
module.exports.initTracing = nativeBinding.initTracing
module.exports.load = nativeBinding.load
module.exports.transform = nativeBinding.transform
module.exports.transformAsync = nativeBinding.transformAsync
2 changes: 2 additions & 0 deletions packages/core/oxc-node.wasi-browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,5 @@ export const OxcTransformer = __napiModule.exports.OxcTransformer
export const createResolve = __napiModule.exports.createResolve
export const initTracing = __napiModule.exports.initTracing
export const load = __napiModule.exports.load
export const transform = __napiModule.exports.transform
export const transformAsync = __napiModule.exports.transformAsync
Loading
Loading