onnxruntime/js/node
Yulong Wang f972d21e81
[js] upgrade dependencies and enable strict mode (#14930)
### Description
This PR includes the following changes:
- upgrade js dependencies
- enable STRICT mode for web assembly build.
- corresponding fix for cmake-js upgrade
- corresponsing fix for linter upgrade
- upgrade default typescript compile option of:
    - `moduleResolution`: from `node` to `node16`
    - `target`: from `es2017` to `es2020`
- fix ESM module import in commonJS source file

## change explanation

### changes to onnxruntime_webassembly.cmake
`-s WASM=1` and `-s LLD_REPORT_UNDEFINED` in latest version is
by-default and deprecated.

### changes to onnxruntime_node.cmake
The npm package `cmake-js` updated its way to find file `node.lib`.
previously it downloads this file from Node.js public release channel,
and now it generates it from a definition file.

The node.js release channel does not contain a windows/arm64 version, so
previously cmake-js will fail to download `node.lib` for that platform.
this is why we made special handling to download the unofficial binary
to build. now this is no longer needed so we removed that from the cmake
file.

### changes to tsconfig.json
`node16` module resolution supports async import and `es2020` as target
supports top level await.
2023-03-22 15:05:04 -07:00
..
lib [js/web] add 'xnnpack' to EP list (#12723) 2022-10-03 10:38:45 -07:00
script [js] upgrade dependencies and enable strict mode (#14930) 2023-03-22 15:05:04 -07:00
src Deprecate CustomApi and refactor public API for better safety and consistency (#13215) 2022-10-06 14:57:37 -07:00
test [js] upgrade dependencies and enable strict mode (#14930) 2023-03-22 15:05:04 -07:00
.gitignore [node.js binding] aggregate binaries for multiple platforms in single NPM package (#9501) 2021-10-25 20:16:10 -07:00
.npmignore [node.js binding] aggregate binaries for multiple platforms in single NPM package (#9501) 2021-10-25 20:16:10 -07:00
CMakeLists.txt [js] upgrade dependencies and enable strict mode (#14930) 2023-03-22 15:05:04 -07:00
package-lock.json [js] upgrade dependencies and enable strict mode (#14930) 2023-03-22 15:05:04 -07:00
package.json [js] upgrade dependencies and enable strict mode (#14930) 2023-03-22 15:05:04 -07:00
README.md Replace 'master' branch ref to 'main' in the code (#12547) 2022-08-22 10:48:12 -07:00
tsconfig.json

ONNX Runtime Node.js Binding

ONNX Runtime Node.js binding enables Node.js applications to run ONNX model inference.

Usage

Install the latest stable version:

npm install onnxruntime-node

Refer to ONNX Runtime JavaScript examples for samples and tutorials.

Requirements

ONNXRuntime works on Node.js v12.x+ or Electron v5.x+.

Following platforms are supported with pre-built binaries:

  • Windows x64 CPU NAPI_v3
  • Linux x64 CPU NAPI_v3
  • MacOS x64 CPU NAPI_v3

To use on platforms without pre-built binaries, you can build Node.js binding from source and consume it by npm install <onnxruntime_repo_root>/js/node/. See also instructions for building ONNX Runtime Node.js binding locally.

License

License information can be found here.