onnxruntime/nodejs/lib/binding.ts
Yulong Wang 5dfc91db51
Node.js binding for ONNX Runtime (#3613)
* initial commit for Node.js binding

* add c++ code

* add inference session impl

* e2e working

* add settings.json

* add test data

* adjust binding declaration

* refine tensor constructor declaration

* update tests

* enable onnx tests

* simply refine readme

* refine cpp impl

* refine tests

* formatting

* add linting

* move bin folder

* fix linux build

* manually update test filter list

* update C++ API headers: fix crash in release build

* make (manually) prebuild work

* add test into prepack script

* specify prebuild runtime type (N-API)

* build.ts: update rebuild and include regex

* fix lazy load on electron.js

* update dev version, git link and binary host

* support session options and run options

* bump dev version

* update README

* add 1 example

* move folder

* adjust path

* update document for examples

* rename example 01

* add example 02

* add session option: log severity level

* add example 04

* resolve comments

* fix typo

* remove double guard in header files

* add copyright banner

* move BUILD outside from README

* consume test filter list from onnxruntime
2020-05-05 11:45:12 -07:00

39 lines
1.4 KiB
TypeScript

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
import {InferenceSession as InferenceSessionInterface} from './inference-session';
import {OnnxValue} from './onnx-value';
/**
* Binding exports a simple synchronized inference session object wrap.
*/
export declare namespace Binding {
export interface InferenceSession {
loadModel(modelPath: string, options: InferenceSessionInterface.SessionOptions): void;
loadModel(
buffer: ArrayBuffer, byteOffset: number, byteLength: number,
options: InferenceSessionInterface.SessionOptions): void;
readonly inputNames: string[];
readonly outputNames: string[];
run(feeds: InferenceSession.FeedsType, fetches: InferenceSession.FetchesType,
options: InferenceSession.RunOptions): InferenceSession.ReturnType;
}
export namespace InferenceSession {
type FeedsType = {[name: string]: OnnxValue};
type FetchesType = {[name: string]: OnnxValue | null};
type ReturnType = {[name: string]: OnnxValue};
type RunOptions = InferenceSessionInterface.RunOptions;
}
export interface InferenceSessionConstructor {
new(): InferenceSession;
}
}
// export native binding
export const binding =
// eslint-disable-next-line @typescript-eslint/no-require-imports, import/no-internal-modules
require('../bin/onnxruntime_binding.node') as {InferenceSession: Binding.InferenceSessionConstructor};