@@ -98,11 +98,29 @@ void Multiply(napi_env env, napi_callback_info info) {
9898 if (status != napi_ok) return ;
9999}
100100
101+ void External (napi_env env, napi_callback_info info) {
102+ static int8_t externalData[] = { 0 , 1 , 2 };
103+
104+ napi_value output_buffer;
105+ napi_status status = napi_create_external_arraybuffer (
106+ env, externalData, sizeof (externalData), nullptr , &output_buffer);
107+ if (status != napi_ok) return ;
108+
109+ napi_value output_array;
110+ status = napi_create_typedarray (
111+ env, napi_int8, sizeof (externalData) / sizeof (uint8_t ), output_buffer, 0 , &output_array);
112+ if (status != napi_ok) return ;
113+
114+ status = napi_set_return_value (env, info, output_array);
115+ if (status != napi_ok) return ;
116+ }
117+
101118void Init (napi_env env, napi_value exports, napi_value module ) {
102119 napi_status status;
103120
104121 napi_property_descriptor descriptors[] = {
105122 { " Multiply" , Multiply },
123+ { " External" , External },
106124 };
107125
108126 status = napi_define_properties (
0 commit comments