tigerbeetle-node 0.14.157 → 0.14.159

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/translate.zig CHANGED
@@ -29,23 +29,39 @@ pub fn throw(env: c.napi_env, comptime message: [:0]const u8) TranslationError {
29
29
  return TranslationError.ExceptionThrown;
30
30
  }
31
31
 
32
- pub fn capture_undefined(env: c.napi_env) !c.napi_value {
32
+ pub fn capture_null(env: c.napi_env) !c.napi_value {
33
33
  var result: c.napi_value = undefined;
34
- if (c.napi_get_undefined(env, &result) != c.napi_ok) {
35
- return throw(env, "Failed to capture the value of \"undefined\".");
34
+ if (c.napi_get_null(env, &result) != c.napi_ok) {
35
+ return throw(env, "Failed to capture the value of \"null\".");
36
36
  }
37
37
 
38
38
  return result;
39
39
  }
40
40
 
41
- pub fn set_instance_data(
42
- env: c.napi_env,
43
- data: *anyopaque,
44
- finalize_callback: *const fn (env: c.napi_env, data: ?*anyopaque, hint: ?*anyopaque) callconv(.C) void,
45
- ) !void {
46
- if (c.napi_set_instance_data(env, data, finalize_callback, null) != c.napi_ok) {
47
- return throw(env, "Failed to initialize environment.");
41
+ pub fn extract_args(env: c.napi_env, info: c.napi_callback_info, comptime args: struct {
42
+ count: usize,
43
+ function: []const u8,
44
+ }) ![args.count]c.napi_value {
45
+ var argc = args.count;
46
+ var argv: [args.count]c.napi_value = undefined;
47
+ if (c.napi_get_cb_info(env, info, &argc, &argv, null, null) != c.napi_ok) {
48
+ return throw(
49
+ env,
50
+ std.fmt.comptimePrint("Failed to get args for {s}()\x00", .{args.function}),
51
+ );
48
52
  }
53
+
54
+ if (argc != args.count) {
55
+ return throw(
56
+ env,
57
+ std.fmt.comptimePrint("Function {s}() requires exactly {} arguments.\x00", .{
58
+ args.function,
59
+ args.count,
60
+ }),
61
+ );
62
+ }
63
+
64
+ return argv;
49
65
  }
50
66
 
51
67
  pub fn create_external(env: c.napi_env, context: *anyopaque) !c.napi_value {
@@ -70,40 +86,6 @@ pub fn value_external(
70
86
  return result;
71
87
  }
72
88
 
73
- pub const UserData = extern struct {
74
- env: c.napi_env,
75
- callback_reference: c.napi_ref,
76
- };
77
-
78
- /// This will create a reference in V8 with a ref_count of 1.
79
- /// This reference will be destroyed when we return the server response to JS.
80
- pub fn user_data_from_value(env: c.napi_env, value: c.napi_value) !UserData {
81
- var callback_type: c.napi_valuetype = undefined;
82
- if (c.napi_typeof(env, value, &callback_type) != c.napi_ok) {
83
- return throw(env, "Failed to check callback type.");
84
- }
85
- if (callback_type != c.napi_function) return throw(env, "Callback must be a Function.");
86
-
87
- var callback_reference: c.napi_ref = undefined;
88
- if (c.napi_create_reference(env, value, 1, &callback_reference) != c.napi_ok) {
89
- return throw(env, "Failed to create reference to callback.");
90
- }
91
-
92
- return UserData{
93
- .env = env,
94
- .callback_reference = callback_reference,
95
- };
96
- }
97
-
98
- pub fn globals(env: c.napi_env) !?*anyopaque {
99
- var data: ?*anyopaque = null;
100
- if (c.napi_get_instance_data(env, &data) != c.napi_ok) {
101
- return throw(env, "Failed to decode globals.");
102
- }
103
-
104
- return data;
105
- }
106
-
107
89
  pub fn slice_from_object(
108
90
  env: c.napi_env,
109
91
  object: c.napi_value,
@@ -136,49 +118,6 @@ pub fn slice_from_value(
136
118
  return @as([*]u8, @ptrCast(data.?))[0..data_length];
137
119
  }
138
120
 
139
- pub fn bytes_from_object(
140
- env: c.napi_env,
141
- object: c.napi_value,
142
- comptime length: u8,
143
- comptime key: [:0]const u8,
144
- ) ![length]u8 {
145
- var property: c.napi_value = undefined;
146
- if (c.napi_get_named_property(env, object, @as([*c]const u8, @ptrCast(key)), &property) != c.napi_ok) {
147
- return throw(env, key ++ " must be defined");
148
- }
149
-
150
- const data = try slice_from_value(env, property, key);
151
- if (data.len != length) {
152
- return throw(env, key ++ " has incorrect length.");
153
- }
154
-
155
- // Copy this out of V8 as the underlying data lifetime is not guaranteed.
156
- var result: [length]u8 = undefined;
157
- std.mem.copy(u8, result[0..], data[0..]);
158
-
159
- return result;
160
- }
161
-
162
- pub fn bytes_from_buffer(
163
- env: c.napi_env,
164
- buffer: c.napi_value,
165
- output: []u8,
166
- comptime key: [:0]const u8,
167
- ) !usize {
168
- const data = try slice_from_value(env, buffer, key);
169
- if (data.len < 1) {
170
- return throw(env, key ++ " must not be empty.");
171
- }
172
- if (data.len > output.len) {
173
- return throw(env, key ++ " exceeds max message size.");
174
- }
175
-
176
- // Copy this out of V8 as the underlying data lifetime is not guaranteed.
177
- std.mem.copy(u8, output[0..], data[0..]);
178
-
179
- return data.len;
180
- }
181
-
182
121
  pub fn u128_from_object(env: c.napi_env, object: c.napi_value, comptime key: [:0]const u8) !u128 {
183
122
  var property: c.napi_value = undefined;
184
123
  if (c.napi_get_named_property(env, object, @as([*c]const u8, @ptrCast(key)), &property) != c.napi_ok) {
@@ -261,24 +200,6 @@ pub fn u32_from_value(env: c.napi_env, value: c.napi_value, comptime name: [:0]c
261
200
  return result;
262
201
  }
263
202
 
264
- pub fn byte_slice_into_object(
265
- env: c.napi_env,
266
- object: c.napi_value,
267
- comptime key: [:0]const u8,
268
- value: []const u8,
269
- comptime error_message: [:0]const u8,
270
- ) !void {
271
- var result: c.napi_value = undefined;
272
- // create a copy that is managed by V8.
273
- if (c.napi_create_buffer_copy(env, value.len, value.ptr, null, &result) != c.napi_ok) {
274
- return throw(env, error_message ++ " Failed to allocate Buffer in V8.");
275
- }
276
-
277
- if (c.napi_set_named_property(env, object, @as([*c]const u8, @ptrCast(key)), result) != c.napi_ok) {
278
- return throw(env, error_message);
279
- }
280
- }
281
-
282
203
  pub fn u128_into_object(
283
204
  env: c.napi_env,
284
205
  object: c.napi_value,
@@ -359,22 +280,6 @@ pub fn create_object(env: c.napi_env, comptime error_message: [:0]const u8) !c.n
359
280
  return result;
360
281
  }
361
282
 
362
- fn create_buffer(
363
- env: c.napi_env,
364
- value: []const u8,
365
- comptime error_message: [:0]const u8,
366
- ) !c.napi_value {
367
- var data: ?*anyopaque = undefined;
368
- var result: c.napi_value = undefined;
369
- if (c.napi_create_buffer(env, value.len, &data, &result) != c.napi_ok) {
370
- return throw(env, error_message);
371
- }
372
-
373
- std.mem.copy(u8, @as([*]u8, @ptrCast(data.?))[0..value.len], value[0..value.len]);
374
-
375
- return result;
376
- }
377
-
378
283
  pub fn create_array(
379
284
  env: c.napi_env,
380
285
  length: u32,
@@ -430,25 +335,16 @@ pub fn call_function(
430
335
  env: c.napi_env,
431
336
  this: c.napi_value,
432
337
  callback: c.napi_value,
433
- argc: usize,
434
- argv: [*]c.napi_value,
435
- ) !void {
436
- const result = c.napi_call_function(env, this, callback, argc, argv, null);
437
- switch (result) {
338
+ args: []c.napi_value,
339
+ ) !c.napi_value {
340
+ var result: c.napi_value = undefined;
341
+ switch (c.napi_call_function(env, this, callback, args.len, args.ptr, &result)) {
438
342
  c.napi_ok => {},
439
343
  // the user's callback may throw a JS exception or call other functions that do so. We
440
344
  // therefore don't throw another error.
441
345
  c.napi_pending_exception => {},
442
346
  else => return throw(env, "Failed to invoke results callback."),
443
347
  }
444
- }
445
-
446
- pub fn scope(env: c.napi_env, comptime error_message: [:0]const u8) !c.napi_value {
447
- var result: c.napi_value = undefined;
448
- if (c.napi_get_global(env, &result) != c.napi_ok) {
449
- return throw(env, error_message);
450
- }
451
-
452
348
  return result;
453
349
  }
454
350
 
package/package-lock.json DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "name": "tigerbeetle-node",
3
- "version": "0.14.157",
4
- "lockfileVersion": 1,
5
- "requires": true,
6
- "dependencies": {
7
- "@types/node": {
8
- "version": "14.18.10",
9
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.10.tgz",
10
- "integrity": "sha512-6iihJ/Pp5fsFJ/aEDGyvT4pHGmCpq7ToQ/yf4bl5SbVAvwpspYJ+v3jO7n8UyjhQVHTy+KNszOozDdv+O6sovQ==",
11
- "dev": true
12
- },
13
- "node-api-headers": {
14
- "version": "0.0.2",
15
- "resolved": "https://registry.npmjs.org/node-api-headers/-/node-api-headers-0.0.2.tgz",
16
- "integrity": "sha512-YsjmaKGPDkmhoNKIpkChtCsPVaRE0a274IdERKnuc/E8K1UJdBZ4/mvI006OijlQZHCfpRNOH3dfHQs92se8gg==",
17
- "dev": true
18
- },
19
- "typescript": {
20
- "version": "4.5.5",
21
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz",
22
- "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
23
- "dev": true
24
- }
25
- }
26
- }