@rotu/structview 0.10.3 → 0.11.1

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/README.md CHANGED
@@ -29,8 +29,8 @@ import {
29
29
  u8,
30
30
  } from "@rotu/structview"
31
31
 
32
- // defineStruct returns a new class, which can be extended with custom getters, setters, and methods
33
- // it's recommended to always extend even if you have no additional members, so you can benefit from declaration hoisting.
32
+ // defineStruct returns a new class, which can be extended with custom getters, setters, and methods.
33
+ // It's recommended to always extend even if you have no additional members, so your class has a name and so the declaration is hoisted.
34
34
  class Version extends defineStruct({
35
35
  major: u8(0),
36
36
  minor: u8(1),
package/esm/core.d.ts CHANGED
@@ -26,6 +26,7 @@ export declare class Struct {
26
26
  [dataViewSymbol]: DataView;
27
27
  get [Symbol.toStringTag](): string;
28
28
  static toDataView(o: Struct): DataView;
29
+ static [Symbol.hasInstance](instance: unknown): boolean;
29
30
  /**
30
31
  * Create a new Struct
31
32
  * @param arg options for creating the struct.
@@ -47,7 +48,8 @@ export declare class Struct {
47
48
  }
48
49
  /**
49
50
  * Subclass struct by adding the given property descriptors
50
- * @param propertyDescriptors properties to add to subclass instances
51
+ * @param propertyDescriptors properties to add to subclass instances.
52
+ * If enumerable is not specified, it will default to true.
51
53
  * @returns A new class, inheriting from `Struct`, with the new property descriptors added
52
54
  */
53
55
  export declare function defineStruct<const Props extends PropertyDescriptorMap>(propertyDescriptors: Props): SubclassWithProperties<typeof Struct, MixinFromProps<Props>>;
package/esm/core.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,cAAc,eAAgC,CAAA;AAE3D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAM1D;AACD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,UAAU,CAOZ;AAED;;;GAGG;AACH,qBAAa,MAAM;IACjB,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAA;IAC1B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;IACD,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;IAItC;;;;;;;;OAQG;gBAED,GAAG,EACC;QACA,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAC7B,GACC;QACA,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;QAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAC5B;CAyBN;AAsBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,qBAAqB,EACpE,mBAAmB,EAAE,KAAK,GACzB,sBAAsB,CAAC,OAAO,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,SAAS,MAAM,EAC7C,YAAY,EAAE;IACZ,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,oIAAoI;IACpI,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,GACA,iBAAiB,CAClB;IACE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB,GAAG,QAAQ,CAAC,IAAI,CAAC,CACnB,CAqDA"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,YAAY,CAAA;AAEnB,eAAO,MAAM,cAAc,eAAgC,CAAA;AAE3D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAM1D;AACD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,GACX,UAAU,CAOZ;AAED;;;GAGG;AACH,qBAAa,MAAM;IACjB,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAA;IAE1B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEjC;IAED,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ;IAItC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO;IAQvD;;;;;;;;OAQG;gBAED,GAAG,EACC;QACA,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAC7B,GACC;QACA,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;QAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAC5B;CAyBN;AAsBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,qBAAqB,EACpE,mBAAmB,EAAE,KAAK,GACzB,sBAAsB,CAAC,OAAO,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAmB9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,SAAS,MAAM,EAC7C,YAAY,EAAE;IACZ,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,oIAAoI;IACpI,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB,GACA,iBAAiB,CAClB;IACE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB,GAAG,QAAQ,CAAC,IAAI,CAAC,CACnB,CAqDA"}
package/esm/core.js CHANGED
@@ -47,6 +47,11 @@ export class Struct {
47
47
  static toDataView(o) {
48
48
  return o[dataViewSymbol];
49
49
  }
50
+ static [Symbol.hasInstance](instance) {
51
+ return (typeof instance === "object" &&
52
+ instance !== null &&
53
+ dataViewSymbol in instance);
54
+ }
50
55
  /**
51
56
  * Create a new Struct
52
57
  * @param arg options for creating the struct.
@@ -95,11 +100,22 @@ function subclassWithProperties(ctor, propertyDescriptors) {
95
100
  }
96
101
  /**
97
102
  * Subclass struct by adding the given property descriptors
98
- * @param propertyDescriptors properties to add to subclass instances
103
+ * @param propertyDescriptors properties to add to subclass instances.
104
+ * If enumerable is not specified, it will default to true.
99
105
  * @returns A new class, inheriting from `Struct`, with the new property descriptors added
100
106
  */
101
107
  export function defineStruct(propertyDescriptors) {
102
- return subclassWithProperties(Struct, propertyDescriptors);
108
+ function defaultEnumerable(descriptor) {
109
+ return Object.create(descriptor, {
110
+ enumerable: { value: descriptor.enumerable ?? true },
111
+ });
112
+ }
113
+ const newDescriptorEntries = Object.entries(propertyDescriptors).map(([name, value]) => [
114
+ name,
115
+ defaultEnumerable(value),
116
+ ]);
117
+ const newDescriptors = Object.fromEntries(newDescriptorEntries);
118
+ return subclassWithProperties(Struct, newDescriptors);
103
119
  }
104
120
  /**
105
121
  * Create a new struct subclass for an array of structs
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../src/fields.ts"],"names":[],"mappings":"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"}
package/esm/fields.js CHANGED
@@ -8,7 +8,6 @@ import { structBytes, structDataView } from "./core.js";
8
8
  */
9
9
  export function u8(fieldOffset) {
10
10
  return {
11
- enumerable: true,
12
11
  get() {
13
12
  return structDataView(this).getUint8(fieldOffset);
14
13
  },
@@ -22,7 +21,6 @@ export function u8(fieldOffset) {
22
21
  */
23
22
  export function u16(fieldOffset) {
24
23
  return {
25
- enumerable: true,
26
24
  get() {
27
25
  return structDataView(this).getUint16(fieldOffset, true);
28
26
  },
@@ -36,7 +34,6 @@ export function u16(fieldOffset) {
36
34
  */
37
35
  export function u32(fieldOffset) {
38
36
  return {
39
- enumerable: true,
40
37
  get() {
41
38
  return structDataView(this).getUint32(fieldOffset, true);
42
39
  },
@@ -50,7 +47,6 @@ export function u32(fieldOffset) {
50
47
  */
51
48
  export function u64(fieldOffset) {
52
49
  return {
53
- enumerable: true,
54
50
  get() {
55
51
  return structDataView(this).getBigUint64(fieldOffset, true);
56
52
  },
@@ -64,7 +60,6 @@ export function u64(fieldOffset) {
64
60
  */
65
61
  export function i8(fieldOffset) {
66
62
  return {
67
- enumerable: true,
68
63
  get() {
69
64
  return structDataView(this).getInt8(fieldOffset);
70
65
  },
@@ -78,7 +73,6 @@ export function i8(fieldOffset) {
78
73
  */
79
74
  export function i16(fieldOffset) {
80
75
  return {
81
- enumerable: true,
82
76
  get() {
83
77
  return structDataView(this).getInt16(fieldOffset, true);
84
78
  },
@@ -92,7 +86,6 @@ export function i16(fieldOffset) {
92
86
  */
93
87
  export function i32(fieldOffset) {
94
88
  return {
95
- enumerable: true,
96
89
  get() {
97
90
  return structDataView(this).getInt32(fieldOffset, true);
98
91
  },
@@ -106,7 +99,6 @@ export function i32(fieldOffset) {
106
99
  */
107
100
  export function i64(fieldOffset) {
108
101
  return {
109
- enumerable: true,
110
102
  get() {
111
103
  return structDataView(this).getBigInt64(fieldOffset, true);
112
104
  },
@@ -171,7 +163,6 @@ export function f16(fieldOffset) {
171
163
  throw new TypeError("float16 is not supported in this environment");
172
164
  }
173
165
  return {
174
- enumerable: true,
175
166
  get() {
176
167
  return structDataView(this).getFloat16(fieldOffset, true);
177
168
  },
@@ -185,7 +176,6 @@ export function f16(fieldOffset) {
185
176
  */
186
177
  export function f32(fieldOffset) {
187
178
  return {
188
- enumerable: true,
189
179
  get() {
190
180
  return structDataView(this).getFloat32(fieldOffset, true);
191
181
  },
@@ -199,7 +189,6 @@ export function f32(fieldOffset) {
199
189
  */
200
190
  export function f64(fieldOffset) {
201
191
  return {
202
- enumerable: true,
203
192
  get() {
204
193
  return structDataView(this).getFloat64(fieldOffset, true);
205
194
  },
@@ -215,7 +204,6 @@ export function string(fieldOffset, byteLength) {
215
204
  const TEXT_DECODER = new TextDecoder();
216
205
  const TEXT_ENCODER = new TextEncoder();
217
206
  return {
218
- enumerable: true,
219
207
  get() {
220
208
  const str = TEXT_DECODER.decode(structBytes(this, fieldOffset, fieldOffset + byteLength));
221
209
  // trim all trailing null characters
@@ -234,7 +222,6 @@ export function string(fieldOffset, byteLength) {
234
222
  */
235
223
  export function bool(fieldOffset) {
236
224
  return {
237
- enumerable: true,
238
225
  get() {
239
226
  return Boolean(structDataView(this).getUint8(fieldOffset));
240
227
  },
@@ -250,7 +237,6 @@ export function bool(fieldOffset) {
250
237
  */
251
238
  export function fromDataView(fieldGetter) {
252
239
  return {
253
- enumerable: true,
254
240
  get() {
255
241
  const dv = structDataView(this);
256
242
  return fieldGetter(dv);
@@ -289,7 +275,6 @@ export function substruct(ctor, byteOffset, bytelength) {
289
275
  export function typedArray(fieldOffset, kwargs) {
290
276
  const { length, species } = kwargs;
291
277
  return {
292
- enumerable: true,
293
278
  get() {
294
279
  const dv = structDataView(this);
295
280
  let lengthValue;
@@ -311,7 +296,6 @@ export function typedArray(fieldOffset, kwargs) {
311
296
  */
312
297
  export function u16be(fieldOffset) {
313
298
  return {
314
- enumerable: true,
315
299
  get() {
316
300
  return structDataView(this).getUint16(fieldOffset, false);
317
301
  },
@@ -325,7 +309,6 @@ export function u16be(fieldOffset) {
325
309
  */
326
310
  export function u32be(fieldOffset) {
327
311
  return {
328
- enumerable: true,
329
312
  get() {
330
313
  return structDataView(this).getUint32(fieldOffset, false);
331
314
  },
@@ -339,7 +322,6 @@ export function u32be(fieldOffset) {
339
322
  */
340
323
  export function u64be(fieldOffset) {
341
324
  return {
342
- enumerable: true,
343
325
  get() {
344
326
  return structDataView(this).getBigUint64(fieldOffset, false);
345
327
  },
@@ -353,7 +335,6 @@ export function u64be(fieldOffset) {
353
335
  */
354
336
  export function i16be(fieldOffset) {
355
337
  return {
356
- enumerable: true,
357
338
  get() {
358
339
  return structDataView(this).getInt16(fieldOffset, false);
359
340
  },
@@ -367,7 +348,6 @@ export function i16be(fieldOffset) {
367
348
  */
368
349
  export function i32be(fieldOffset) {
369
350
  return {
370
- enumerable: true,
371
351
  get() {
372
352
  return structDataView(this).getInt32(fieldOffset, false);
373
353
  },
@@ -381,7 +361,6 @@ export function i32be(fieldOffset) {
381
361
  */
382
362
  export function i64be(fieldOffset) {
383
363
  return {
384
- enumerable: true,
385
364
  get() {
386
365
  return structDataView(this).getBigInt64(fieldOffset, false);
387
366
  },
@@ -399,7 +378,6 @@ export function f16be(fieldOffset) {
399
378
  throw new TypeError("float16 is not supported in this environment");
400
379
  }
401
380
  return {
402
- enumerable: true,
403
381
  get() {
404
382
  return structDataView(this).getFloat16(fieldOffset, false);
405
383
  },
@@ -413,7 +391,6 @@ export function f16be(fieldOffset) {
413
391
  */
414
392
  export function f32be(fieldOffset) {
415
393
  return {
416
- enumerable: true,
417
394
  get() {
418
395
  return structDataView(this).getFloat32(fieldOffset, false);
419
396
  },
@@ -427,7 +404,6 @@ export function f32be(fieldOffset) {
427
404
  */
428
405
  export function f64be(fieldOffset) {
429
406
  return {
430
- enumerable: true,
431
407
  get() {
432
408
  return structDataView(this).getFloat64(fieldOffset, false);
433
409
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rotu/structview",
3
- "version": "0.10.3+dnt",
3
+ "version": "0.11.1+dnt",
4
4
  "description": "Read and write structured binary data with typesafe views",
5
5
  "repository": {
6
6
  "type": "git",