Skip to content

Commit a4aff16

Browse files
committed
fix(node_api): Fix functions
- Remove unfixable functions (Add to CONTRIBUTING.md file as TODO) - Add key types
1 parent 893b005 commit a4aff16

5 files changed

Lines changed: 227 additions & 110 deletions

File tree

CONTRIBUTING.md

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# Contributing
2+
3+
## TODO
4+
5+
### Unstable APIs
6+
7+
```go
8+
// filename: node_api.go
9+
10+
package napi
11+
12+
func BasicFinalize(env Env, finalizeData, finalizeHint unsafe.Pointer) Status {
13+
return Status(C.node_api_basic_finalize(
14+
C.napi_env(env),
15+
finalizeData,
16+
finalizeHint,
17+
))
18+
}
19+
20+
21+
func BasicEnv(env Env) Status {
22+
return Status(C.node_api_basic_env(C.napi_env(env)))
23+
}
24+
25+
26+
func PostFinalizer(env Env, finalizeData, finalizeHint unsafe.Pointer) Status {
27+
return Status(C.node_api_post_finalizer(
28+
C.napi_env(env),
29+
finalizeData,
30+
finalizeHint,
31+
))
32+
}
33+
34+
```
35+
36+
### Fix the following functions
37+
38+
```go
39+
// filename: node_api.go
40+
41+
package napi
42+
43+
/*
44+
#include <stdlib.h>
45+
#include <node/napi_api.h>
46+
*/
47+
import "C"
48+
import "unsafe"
49+
50+
// OpenCallbackScope Function to open a callback scope
51+
func OpenCallbackScope(env Env, resourceObject, context Value) (CallbackScope, Status) {
52+
var scope CallbackScope
53+
status := Status(C.napi_open_callback_scope(
54+
C.napi_env(env),
55+
C.napi_value(resourceObject),
56+
C.napi_value(context),
57+
(*C.napi_callback_scope)(unsafe.Pointer(&scope.scope)),
58+
))
59+
return scope, status
60+
}
61+
62+
func CreateExternalStringLatin1(env Env, str string, finalize Finalize, finalizeHint unsafe.Pointer) (Value, Status) {
63+
cstr := C.CString(str)
64+
defer C.free(unsafe.Pointer(cstr))
65+
66+
finalizer := FinalizeToFinalizer(finalize)
67+
var result Value
68+
status := Status(C.node_api_create_external_string_latin1(
69+
C.napi_env(env),
70+
cstr,
71+
C.size_t(len([]byte(str))),
72+
C.napi_finalize(unsafe.Pointer(&finalizer)),
73+
finalizeHint,
74+
(*C.napi_value)(unsafe.Pointer(&result)),
75+
))
76+
return result, status
77+
}
78+
79+
80+
func CreateExternalStringUtf16(env Env, str []uint16, finalize Finalize, finalizeHint unsafe.Pointer) (Value, Status) {
81+
var result Value
82+
finalizer := FinalizeToFinalizer(finalize)
83+
status := Status(C.node_api_create_external_string_utf16(
84+
C.napi_env(env),
85+
(*C.char16_t)(unsafe.Pointer(&str[0])),
86+
C.size_t(len(str)),
87+
C.napi_finalize(unsafe.Pointer(&finalizer)),
88+
finalizeHint,
89+
(*C.napi_value)(unsafe.Pointer(&result)),
90+
))
91+
return result, status
92+
}
93+
94+
95+
func CreateBufferFromArrayBuffer(env Env, arrayBuffer Value, byteOffset, length int) (Value, *byte, Status) {
96+
var result Value
97+
var data *byte
98+
status := Status(C.node_api_create_buffer_from_arraybuffer(
99+
C.napi_env(env),
100+
C.napi_value(arrayBuffer),
101+
C.size_t(byteOffset),
102+
C.size_t(length),
103+
unsafe.Pointer(&data),
104+
(*C.napi_value)(unsafe.Pointer(&result)),
105+
))
106+
return result, data, status
107+
}
108+
```

0 commit comments

Comments
 (0)