@pkmn/engine 0.1.0-dev.2c13d3ec → 0.1.0-dev.305a932f

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.
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/pkg/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/pkg/protocol.ts"],"names":[],"mappings":"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"}
package/build.zig CHANGED
@@ -35,6 +35,7 @@ pub fn build(b: *std.Build) !void {
35
35
  const strip = b.option(bool, "strip", "Strip debugging symbols from binary") orelse false;
36
36
  const pic = b.option(bool, "pic", "Force position independent code") orelse false;
37
37
  const emit_asm = b.option(bool, "emit-asm", "Output .s (assembly code)") orelse false;
38
+ const emit_ll = b.option(bool, "emit-ll", "Output .ll (LLVM IR)") orelse false;
38
39
 
39
40
  const cmd = b.findProgram(&.{"strip"}, &.{}) catch null;
40
41
 
@@ -65,16 +66,16 @@ pub fn build(b: *std.Build) !void {
65
66
  const addon = b.fmt("{s}.node", .{name});
66
67
  const lib = b.addSharedLibrary(.{
67
68
  .name = addon,
69
+ .main_pkg_path = .{ .path = "." },
68
70
  .root_source_file = .{ .path = "src/lib/binding/node.zig" },
69
71
  .optimize = optimize,
70
72
  .target = target,
71
73
  });
72
74
  lib.addOptions("build_options", options);
73
- lib.setMainPkgPath("./");
74
- lib.addSystemIncludePath(headers);
75
+ lib.addSystemIncludePath(.{ .path = headers });
75
76
  lib.linkLibC();
76
77
  if (node_import_lib) |il| {
77
- lib.addObjectFile(il);
78
+ lib.addObjectFile(.{ .path = il });
78
79
  } else if ((try std.zig.system.NativeTargetInfo.detect(target)).target.os.tag == .windows) {
79
80
  try std.io.getStdErr().writeAll("Must provide --node-import-library path on Windows\n");
80
81
  std.process.exit(1);
@@ -94,6 +95,7 @@ pub fn build(b: *std.Build) !void {
94
95
  } else if (wasm) {
95
96
  const lib = b.addSharedLibrary(.{
96
97
  .name = name,
98
+ .main_pkg_path = .{ .path = "." },
97
99
  .root_source_file = .{ .path = "src/lib/binding/wasm.zig" },
98
100
  .optimize = switch (optimize) {
99
101
  .ReleaseFast, .ReleaseSafe => .ReleaseSmall,
@@ -102,7 +104,6 @@ pub fn build(b: *std.Build) !void {
102
104
  .target = .{ .cpu_arch = .wasm32, .os_tag = .freestanding },
103
105
  });
104
106
  lib.addOptions("build_options", options);
105
- lib.setMainPkgPath("./");
106
107
  lib.stack_size = wasm_stack_size;
107
108
  lib.rdynamic = true;
108
109
  lib.strip = strip;
@@ -120,14 +121,14 @@ pub fn build(b: *std.Build) !void {
120
121
  } else if (dynamic) {
121
122
  const lib = b.addSharedLibrary(.{
122
123
  .name = name,
124
+ .main_pkg_path = .{ .path = "." },
123
125
  .root_source_file = .{ .path = "src/lib/binding/c.zig" },
124
126
  .version = try std.SemanticVersion.parse(version),
125
127
  .optimize = optimize,
126
128
  .target = target,
127
129
  });
128
130
  lib.addOptions("build_options", options);
129
- lib.setMainPkgPath("./");
130
- lib.addIncludePath("src/include");
131
+ lib.addIncludePath(.{ .path = "src/include" });
131
132
  maybeStrip(b, lib, b.getInstallStep(), strip, cmd);
132
133
  if (pic) lib.force_pic = pic;
133
134
  b.installArtifact(lib);
@@ -135,17 +136,30 @@ pub fn build(b: *std.Build) !void {
135
136
  } else {
136
137
  const lib = b.addStaticLibrary(.{
137
138
  .name = name,
139
+ .main_pkg_path = .{ .path = "." },
138
140
  .root_source_file = .{ .path = "src/lib/binding/c.zig" },
139
141
  .optimize = optimize,
140
142
  .target = target,
141
143
  });
142
144
  lib.addOptions("build_options", options);
143
- lib.setMainPkgPath("./");
144
- lib.addIncludePath("src/include");
145
+ lib.addIncludePath(.{ .path = "src/include" });
145
146
  lib.bundle_compiler_rt = true;
146
147
  maybeStrip(b, lib, b.getInstallStep(), strip, cmd);
147
148
  if (pic) lib.force_pic = pic;
148
- if (emit_asm) lib.emit_asm = .emit;
149
+ if (emit_asm) {
150
+ b.getInstallStep().dependOn(&b.addInstallFileWithDir(
151
+ lib.getEmittedAsm(),
152
+ .prefix,
153
+ b.fmt("{s}.s", .{name}),
154
+ ).step);
155
+ }
156
+ if (emit_ll) {
157
+ b.getInstallStep().dependOn(&b.addInstallFileWithDir(
158
+ lib.getEmittedLlvmIr(),
159
+ .prefix,
160
+ b.fmt("{s}.ll", .{name}),
161
+ ).step);
162
+ }
149
163
  b.installArtifact(lib);
150
164
  c = true;
151
165
  }
@@ -217,19 +231,19 @@ pub fn build(b: *std.Build) !void {
217
231
  fuzz_config.tool.name = "fuzz";
218
232
  const fuzz = tool(b, "src/test/fuzz.zig", fuzz_config);
219
233
 
234
+ const analyze = tool(b, "src/tools/analyze.zig", tools);
220
235
  const dump = tool(b, "src/tools/dump.zig", tools);
221
- const serde = tool(b, "src/tools/serde.zig", tools);
222
236
  const transitions = tool(b, "src/tools/transitions.zig", tools);
223
237
 
224
- const lint_exe =
225
- b.addExecutable(.{ .name = "lint", .root_source_file = .{ .path = "src/tools/lint.zig" } });
226
- if (tests.build) tests.step.dependOn(&lint_exe.step);
227
- const lint = b.addRunArtifact(lint_exe);
238
+ // FIXME: serde randomly fails to build in some release configurations
239
+ var hack = tools;
240
+ if (optimize != .Debug) hack.tool.tests = null;
241
+ const serde = tool(b, "src/tools/serde.zig", hack);
228
242
 
243
+ b.step("analyze", "Run LLVM analysis tool").dependOn(&analyze.step);
229
244
  b.step("benchmark", "Run benchmark code").dependOn(&benchmark.step);
230
245
  b.step("dump", "Run protocol dump tool").dependOn(&dump.step);
231
246
  b.step("fuzz", "Run fuzz tester").dependOn(&fuzz.step);
232
- b.step("lint", "Lint source files").dependOn(&lint.step);
233
247
  b.step("serde", "Run serialization/deserialization tool").dependOn(&serde.step);
234
248
  b.step("test", "Run all tests").dependOn(&tests.step);
235
249
  b.step("tools", "Install tools").dependOn(&ToolsStep.create(b, &exes).step);
@@ -263,12 +277,6 @@ const Config = struct {
263
277
  cmd: ?[]const u8,
264
278
  };
265
279
 
266
- const TESTS = .{
267
- "src/lib/common/test.zig",
268
- "src/lib/gen1/test.zig",
269
- "src/lib/gen2/test.zig",
270
- };
271
-
272
280
  const TestStep = struct {
273
281
  step: std.Build.Step,
274
282
  build: bool,
@@ -281,28 +289,29 @@ const TestStep = struct {
281
289
 
282
290
  const self = b.allocator.create(TestStep) catch @panic("OOM");
283
291
  const step = std.Build.Step.init(.{ .id = .custom, .name = "Run all tests", .owner = b });
284
- self.* = TestStep{ .step = step, .build = test_filter == null };
285
-
286
- const paths: []const []const u8 =
287
- if (test_file) |t| &.{t} else if (coverage != null) &.{"src/lib/test.zig"} else &TESTS;
288
- for (paths) |path| {
289
- const tests = b.addTest(.{
290
- .name = std.fs.path.basename(std.fs.path.dirname(path).?),
291
- .root_source_file = .{ .path = path },
292
- .optimize = config.optimize,
293
- .target = config.target,
294
- .filter = test_filter,
295
- });
296
- tests.setMainPkgPath("./");
297
- tests.addOptions("build_options", options);
298
- tests.single_threaded = true;
299
- maybeStrip(b, tests, &tests.step, config.strip, config.cmd);
300
- if (config.pic) tests.force_pic = config.pic;
301
- if (coverage) |c| {
302
- tests.setExecCmd(&.{ "kcov", "--include-pattern=src/lib", c, null });
303
- }
304
- self.step.dependOn(&b.addRunArtifact(tests).step);
292
+ self.* = .{ .step = step, .build = test_filter == null };
293
+
294
+ const path = test_file orelse "src/lib/test.zig";
295
+ const tests = b.addTest(.{
296
+ .name = b.fmt("{s}-{s}", .{
297
+ std.fs.path.basename(std.fs.path.dirname(path).?),
298
+ std.fs.path.stem(std.fs.path.basename(path)),
299
+ }),
300
+ .main_pkg_path = .{ .path = "." },
301
+ .root_source_file = .{ .path = path },
302
+ .optimize = config.optimize,
303
+ .target = config.target,
304
+ .filter = test_filter,
305
+ });
306
+ tests.addOptions("build_options", options);
307
+ tests.single_threaded = true;
308
+ maybeStrip(b, tests, &tests.step, config.strip, config.cmd);
309
+ if (config.pic) tests.force_pic = config.pic;
310
+ if (coverage) |c| {
311
+ tests.setExecCmd(&.{ "kcov", "--include-pattern=src/lib", c, null });
305
312
  }
313
+ self.step.dependOn(&b.addRunArtifact(tests).step);
314
+
306
315
  return self;
307
316
  }
308
317
  };
@@ -349,8 +358,8 @@ const ToolsStep = struct {
349
358
  pub fn create(b: *std.Build, exes: *std.ArrayList(*std.Build.CompileStep)) *ToolsStep {
350
359
  const self = b.allocator.create(ToolsStep) catch @panic("OOM");
351
360
  const step = std.Build.Step.init(.{ .id = .custom, .name = "Install tools", .owner = b });
352
- self.* = ToolsStep{ .step = step };
353
- for (exes.items) |t| self.step.dependOn(&b.addInstallArtifact(t).step);
361
+ self.* = .{ .step = step };
362
+ for (exes.items) |t| self.step.dependOn(&b.addInstallArtifact(t, .{}).step);
354
363
  return self;
355
364
  }
356
365
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pkmn/engine",
3
- "version": "0.1.0-dev.2c13d3ec",
3
+ "version": "0.1.0-dev.305a932f",
4
4
  "description": "A minimal, complete, Pokémon battle simulation engine optimized for performance",
5
5
  "repository": "github:pkmn/engine",
6
6
  "license": "MIT",
@@ -34,11 +34,18 @@
34
34
  "src/bin/install-pkmn-engine",
35
35
  "src/lib/binding/node.zig",
36
36
  "src/lib/binding/wasm.zig",
37
+ "src/lib/common/battle.zig",
37
38
  "src/lib/common/data.zig",
38
39
  "src/lib/common/debug.zig",
40
+ "src/lib/common/js.zig",
41
+ "src/lib/common/optional.zig",
39
42
  "src/lib/common/options.zig",
40
43
  "src/lib/common/protocol.zig",
44
+ "src/lib/common/rational.zig",
41
45
  "src/lib/common/rng.zig",
46
+ "src/lib/common/util.zig",
47
+ "src/lib/gen1/calc.zig",
48
+ "src/lib/gen1/chance.zig",
42
49
  "src/lib/gen1/data.zig",
43
50
  "src/lib/gen1/data/moves.zig",
44
51
  "src/lib/gen1/data/species.zig",
@@ -66,30 +73,30 @@
66
73
  "access": "public"
67
74
  },
68
75
  "dependencies": {
69
- "@pkmn/data": "^0.7.44",
70
- "@pkmn/protocol": "^0.6.12"
76
+ "@pkmn/data": "^0.7.50",
77
+ "@pkmn/protocol": "^0.6.13"
71
78
  },
72
79
  "devDependencies": {
73
- "@pkmn/eslint-config": "^3.2.0",
74
- "@pkmn/img": "^0.2.12",
80
+ "@pkmn/eslint-config": "^5.2.0",
81
+ "@pkmn/img": "^0.2.15",
75
82
  "@pkmn/sets": "^5.0.4",
76
- "@pkmn/sim": "0.7.44",
83
+ "@pkmn/sim": "0.7.50",
77
84
  "@types/html-minifier": "^4.0.2",
78
- "@types/jest": "^29.5.2",
85
+ "@types/jest": "^29.5.4",
79
86
  "@types/minimist": "^1.2.2",
80
87
  "@types/mustache": "^4.2.2",
81
- "@types/node": "^20.3.1",
82
- "@vitest/coverage-c8": "^0.32.2",
83
- "binaryen": "^113.0.0",
84
- "eslint": "^8.43.0",
88
+ "@types/node": "^20.5.9",
89
+ "@vitest/coverage-c8": "^0.33.0",
90
+ "binaryen": "^114.0.0",
91
+ "eslint": "^8.48.0",
85
92
  "html-minifier": "^4.0.0",
86
93
  "json-stringify-pretty-compact": "3.0.0",
87
94
  "minimist": "^1.2.8",
88
95
  "mustache": "^4.2.0",
89
96
  "source-map-support": "^0.5.21",
90
97
  "trakr": "^0.2.0",
91
- "typescript": "^5.1.3",
92
- "vitest": "^0.32.2"
98
+ "typescript": "^5.2.2",
99
+ "vitest": "^0.34.4"
93
100
  },
94
101
  "scripts": {
95
102
  "lint": "eslint --cache src --ext ts,js && eslint src/bin/*",
@@ -140,7 +147,8 @@
140
147
  "rules": {
141
148
  "no-control-regex": "off",
142
149
  "@typescript-eslint/no-empty-interface": "off",
143
- "@typescript-eslint/no-shadow": "off"
150
+ "@typescript-eslint/no-shadow": "off",
151
+ "@typescript-eslint/no-unsafe-declaration-merging": "off"
144
152
  }
145
153
  },
146
154
  {
@@ -156,7 +164,17 @@
156
164
  "src/test/benchmark*.ts"
157
165
  ],
158
166
  "rules": {
159
- "@typescript-eslint/no-unused-vars": "off"
167
+ "@typescript-eslint/no-unused-vars": "off",
168
+ "@typescript-eslint/no-redundant-type-constituents": "off"
169
+ }
170
+ },
171
+ {
172
+ "files": [
173
+ "src/pkg/protocol.test.ts"
174
+ ],
175
+ "rules": {
176
+ "jest/no-standalone-expect": "off",
177
+ "jest/no-conditional-expect": "off"
160
178
  }
161
179
  },
162
180
  {
@@ -10,7 +10,7 @@ const path = require('path');
10
10
  const {pipeline} = require('stream/promises');
11
11
  const tty = require('tty');
12
12
 
13
- const ZIG_VERSION = {major: 0, minor: 11, patch: 0, dev: 3859};
13
+ const ZIG_VERSION = {major: 0, minor: 11, patch: 0};
14
14
  const DEV = ZIG_VERSION.dev ? `-dev.${ZIG_VERSION.dev}` : '';
15
15
  const VERSION = `${ZIG_VERSION.major}.${ZIG_VERSION.minor}.${ZIG_VERSION.patch}${DEV}`;
16
16
  const INDEX = 'https://ziglang.org/download/index.json';
@@ -358,7 +358,7 @@ const downloadImportLib = async () => {
358
358
  // either the default options or whatever was passed in
359
359
  if (!configs.size) {
360
360
  node = true;
361
- const DEFAULT = ['-Dshowdown', '-Dlog', '-Dchance', '-Dcalc'];
361
+ const DEFAULT = ['-Dshowdown'];
362
362
  configs.set('node', {type: 'node', options: options || DEFAULT});
363
363
  configs.set('wasm', {type: 'wasm', options: options || DEFAULT});
364
364
  }
@@ -88,7 +88,7 @@ fn update(gen: anytype) c.napi_callback {
88
88
  assert(data != null);
89
89
 
90
90
  var buf = @as([*]u8, @ptrCast(data.?))[0..gen.LOGS_SIZE];
91
- var stream = pkmn.protocol.ByteStream{ .buffer = buf };
91
+ var stream: pkmn.protocol.ByteStream = .{ .buffer = buf };
92
92
  // TODO: extract out
93
93
  var opts = pkmn.battle.options(
94
94
  pkmn.protocol.FixedLog{ .writer = stream.writer() },
@@ -0,0 +1,17 @@
1
+ /// Stores state required by optional features to the engine that can be passed to a generation's
2
+ /// `Battle.update` function. All generations generically support protocol logging (enabled via
3
+ /// `-Dlog`), chance actions and probability tracking (enabled via `-Dchance`), and damage
4
+ /// computation and chance overrides (`-Dcalc`), though the concrete types for these features are
5
+ /// generation dependent.
6
+ pub fn Options(comptime Log: type, comptime Chance: type, comptime Calc: type) type {
7
+ return struct { log: Log, chance: Chance, calc: Calc };
8
+ }
9
+
10
+ /// Helper to create a battle `Options` object with the provided `log`, `chance`, and `calc`.
11
+ pub fn options(
12
+ log: anytype,
13
+ chance: anytype,
14
+ calc: anytype,
15
+ ) Options(@TypeOf(log), @TypeOf(chance), @TypeOf(calc)) {
16
+ return .{ .log = log, .chance = chance, .calc = calc };
17
+ }
@@ -27,17 +27,13 @@ test Player {
27
27
  }
28
28
 
29
29
  /// An identifier for a specific Pokémon in battle.
30
- pub const ID = packed struct {
30
+ pub const ID = packed struct(u8) {
31
31
  /// The one-indexed team slot of the Pokémon
32
32
  id: u3 = 0,
33
33
  /// The Pokémon's trainer.
34
34
  player: Player = .P1,
35
35
  _: u4 = 0,
36
36
 
37
- comptime {
38
- assert(@sizeOf(ID) == 1);
39
- }
40
-
41
37
  /// Converts the identifier into a number.
42
38
  pub inline fn int(self: ID) u4 {
43
39
  return @intCast(@as(u8, @bitCast(self)));
@@ -52,12 +48,12 @@ pub const ID = packed struct {
52
48
  test ID {
53
49
  try expectEqual(@as(u8, 0b0001), @as(u8, @bitCast(ID{ .player = .P1, .id = 1 })));
54
50
  try expectEqual(@as(u8, 0b1101), @as(u8, @bitCast(ID{ .player = .P2, .id = 5 })));
55
- const id = ID{ .player = .P2, .id = 4 };
51
+ const id: ID = .{ .player = .P2, .id = 4 };
56
52
  try expectEqual(id, ID.from(id.int()));
57
53
  }
58
54
 
59
55
  /// A choice made by a player during battle.
60
- pub const Choice = packed struct {
56
+ pub const Choice = packed struct(u8) {
61
57
  /// The choice type.
62
58
  type: Choice.Type = .Pass,
63
59
  /// The choice data:
@@ -73,10 +69,6 @@ pub const Choice = packed struct {
73
69
  Move,
74
70
  Switch,
75
71
  };
76
-
77
- comptime {
78
- assert(@sizeOf(Choice) == 1);
79
- }
80
72
  };
81
73
 
82
74
  test Choice {
@@ -89,7 +81,7 @@ test Choice {
89
81
  }
90
82
 
91
83
  /// The result of the battle - all results other than 'None' should be considered terminal.
92
- pub const Result = packed struct {
84
+ pub const Result = packed struct(u8) {
93
85
  /// The type of result from the perspective of Player 1.
94
86
  /// `Error` is not possible when in Pokémon Showdown compatibility mode.
95
87
  type: Result.Type = .None,
@@ -117,10 +109,6 @@ pub const Result = packed struct {
117
109
  pub const Error: Result = .{ .type = .Error };
118
110
  /// The default result.
119
111
  pub const Default: Result = .{ .p1 = .Move, .p2 = .Move };
120
-
121
- comptime {
122
- assert(@sizeOf(Result) == 1);
123
- }
124
112
  };
125
113
 
126
114
  test Result {
@@ -0,0 +1,118 @@
1
+ const std = @import("std");
2
+
3
+ const assert = std.debug.assert;
4
+
5
+ const c = @cImport({
6
+ @cDefine("NAPI_VERSION", "8");
7
+ @cInclude("node_api.h");
8
+ });
9
+
10
+ pub const Array = struct {
11
+ pub fn init(env: c.napi_env, o: struct { length: ?usize }) c.napi_value {
12
+ var result: c.napi_value = undefined;
13
+ assert(c.napi_ok == if (o.length) |n|
14
+ c.napi_create_array_with_length(env, n, &result)
15
+ else
16
+ c.napi_create_array(env, &result));
17
+ return result;
18
+ }
19
+
20
+ pub fn set(env: c.napi_env, array: c.napi_value, index: u32, value: c.napi_value) void {
21
+ assert(c.napi_set_element(env, array, index, value) == c.napi_ok);
22
+ }
23
+ };
24
+
25
+ pub const Boolean = struct {
26
+ pub fn init(env: c.napi_env, value: bool) c.napi_value {
27
+ var result: c.napi_value = undefined;
28
+ assert(c.napi_get_boolean(env, value, &result) == c.napi_ok);
29
+ return result;
30
+ }
31
+ };
32
+
33
+ pub const Number = struct {
34
+ pub fn init(env: c.napi_env, value: anytype) c.napi_value {
35
+ const T = @TypeOf(value);
36
+ var result: c.napi_value = undefined;
37
+ assert(c.napi_ok == switch (@typeInfo(T)) {
38
+ .Int => |info| switch (info.bits) {
39
+ 0...32 => switch (info.signedness) {
40
+ .signed => c.napi_create_int32(env, @as(i32, value), &result),
41
+ .unsigned => c.napi_create_uint32(env, @as(u32, value), &result),
42
+ },
43
+ 33...52 => c.napi_create_int64(env, @as(i64, value), &result),
44
+ else => @compileError("int can't be represented as JS number"),
45
+ },
46
+ else => @compileError("expected number, got: " ++ @typeName(T)),
47
+ });
48
+ return result;
49
+ }
50
+
51
+ pub fn get(env: c.napi_env, value: c.napi_value, comptime T: type) T {
52
+ switch (@typeInfo(T)) {
53
+ .Int => |info| switch (info.bits) {
54
+ 0...32 => switch (info.signedness) {
55
+ .signed => {
56
+ var result: i32 = undefined;
57
+ assert(c.napi_get_value_int32(env, value, &result) == c.napi_ok);
58
+ return if (info.bits == 32) result else @intCast(result);
59
+ },
60
+ .unsigned => {
61
+ var result: u32 = undefined;
62
+ assert(c.napi_get_value_uint32(env, value, &result) == c.napi_ok);
63
+ return if (info.bits == 32) result else @intCast(result);
64
+ },
65
+ },
66
+ 33...63 => {
67
+ var result: i64 = undefined;
68
+ assert(c.napi_get_value_int64(env, value, &result) == c.napi_ok);
69
+ return @intCast(result);
70
+ },
71
+ else => {
72
+ var result: i64 = undefined;
73
+ assert(c.napi_get_value_int64(env, value, &result) == c.napi_ok);
74
+ return switch (info.signedness) {
75
+ .signed => value,
76
+ .unsigned => if (0 <= value) @intCast(value) else unreachable,
77
+ };
78
+ },
79
+ },
80
+ else => @compileError("expected number, got: " ++ @typeName(T)),
81
+ }
82
+ }
83
+ };
84
+
85
+ pub const Object = struct {
86
+ pub fn init(env: c.napi_env) c.napi_value {
87
+ var result: c.napi_value = undefined;
88
+ assert(c.napi_create_object(env, &result) == c.napi_ok);
89
+ return result;
90
+ }
91
+ };
92
+
93
+ pub const Property = union(enum) {
94
+ method: c.napi_callback,
95
+ value: c.napi_value,
96
+
97
+ pub fn init(comptime name: [:0]const u8, property: Property) c.napi_property_descriptor {
98
+ return .{
99
+ .utf8name = name,
100
+ .name = null,
101
+ .method = switch (property) {
102
+ .method => |m| m,
103
+ .value => null,
104
+ },
105
+ .getter = null,
106
+ .setter = null,
107
+ .value = switch (property) {
108
+ .method => null,
109
+ .value => |v| v,
110
+ },
111
+ .attributes = switch (property) {
112
+ .method => c.napi_default,
113
+ .value => c.napi_enumerable,
114
+ },
115
+ .data = null,
116
+ };
117
+ }
118
+ };