feat(napi-derive): implement instance_of for Class

This commit is contained in:
LongYinan 2022-08-17 15:11:32 +08:00
parent 8d0045f5b6
commit 711372e175
No known key found for this signature in database
GPG key ID: C3666B7FC82ADAD7
6 changed files with 39 additions and 3 deletions

View file

@ -267,6 +267,7 @@ Generated by [AVA](https://avajs.dev).
}␊
export class NinjaTurtle {␊
name: string␊
static isInstanceOf(value: unknown): boolean␊
/** Create your ninja turtle! 🐢 */␊
static newRaph(): NinjaTurtle␊
getMaskColor(): string␊

View file

@ -191,6 +191,7 @@ test('class', (t) => {
t.is(assets.get(1)?.filePath, 1)
const turtle = NinjaTurtle.newRaph()
t.is(turtle.returnThis(), turtle)
t.is(NinjaTurtle.isInstanceOf(turtle), true)
})
test('class factory', (t) => {

View file

@ -257,6 +257,7 @@ export class AnimalWithDefaultConstructor {
}
export class NinjaTurtle {
name: string
static isInstanceOf(value: unknown): boolean
/** Create your ninja turtle! 🐢 */
static newRaph(): NinjaTurtle
getMaskColor(): string

View file

@ -1,5 +1,5 @@
use napi::{
bindgen_prelude::{Buffer, ClassInstance, ObjectFinalize, This, Uint8Array},
bindgen_prelude::{Buffer, ClassInstance, ObjectFinalize, This, Uint8Array, Unknown},
Env, Result,
};
@ -214,6 +214,11 @@ pub struct NinjaTurtle {
#[napi]
impl NinjaTurtle {
#[napi]
pub fn is_instance_of(env: Env, value: Unknown) -> Result<bool> {
Self::instance_of(env, value)
}
/// Create your ninja turtle! 🐢
#[napi(factory)]
pub fn new_raph() -> Self {