feat(napi): support rust array to js array

This commit is contained in:
huzz 2022-08-11 22:47:13 +08:00 committed by LongYinan
parent 8784ed9459
commit fd191a4586
No known key found for this signature in database
GPG key ID: C3666B7FC82ADAD7
7 changed files with 52 additions and 0 deletions

View file

@ -26,6 +26,8 @@ Generated by [AVA](https://avajs.dev).
export function getNums(): Array<number>
export function sumNums(nums: Array<number>): number␊
export function toJsObj(): object␊
export function getNumArr(): number[]␊
export function getNestedNumArr(): number[][][]␊
export function readFileAsync(path: string): Promise<Buffer>
export function asyncMultiTwo(arg: number): Promise<number>
export function bigintAdd(a: bigint, b: bigint): bigint␊

View file

@ -105,6 +105,8 @@ import {
AnotherClassForEither,
receiveDifferentClass,
useTokioWithoutAsync,
getNumArr,
getNestedNumArr,
} from '../'
test('export const', (t) => {
@ -144,6 +146,8 @@ test('array', (t) => {
t.deepEqual(getWords(), ['foo', 'bar'])
t.is(sumNums([1, 2, 3, 4, 5]), 15)
t.deepEqual(getNumArr(), [1, 2])
t.deepEqual(getNestedNumArr(), [[[1]], [[1]]])
})
test('map', (t) => {

View file

@ -16,6 +16,8 @@ export function getWords(): Array<string>
export function getNums(): Array<number>
export function sumNums(nums: Array<number>): number
export function toJsObj(): object
export function getNumArr(): number[]
export function getNestedNumArr(): number[][][]
export function readFileAsync(path: string): Promise<Buffer>
export function asyncMultiTwo(arg: number): Promise<number>
export function bigintAdd(a: bigint, b: bigint): bigint

View file

@ -23,3 +23,13 @@ fn to_js_obj(env: Env) -> napi::Result<JsObject> {
arr.insert(42)?;
arr.coerce_to_object()
}
#[napi]
fn get_num_arr() -> [u32; 2] {
[1, 2]
}
#[napi]
fn get_nested_num_arr() -> [[[u32; 1]; 1]; 2] {
[[[1]], [[1]]]
}