utilium 0.3.2 → 0.3.3

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/dist/struct.d.ts CHANGED
@@ -23,7 +23,7 @@ export declare function struct(options?: Partial<StructOptions>): (target: Class
23
23
  /**
24
24
  * Decorates a class member to be serialized
25
25
  */
26
- export declare function member(type: ValidPrimitiveType | ClassLike, length?: number): (target: object, context?: ClassMemberDecoratorContext | string | symbol) => void;
26
+ export declare function member(type: ValidPrimitiveType | ClassLike, length?: number): (target: object, { name }: ClassMemberDecoratorContext) => void;
27
27
  /**
28
28
  * Serializes a struct into a Uint8Array
29
29
  */
@@ -39,87 +39,87 @@ export declare function deserialize(instance: unknown, _buffer: ArrayBuffer | Ar
39
39
  */
40
40
  export declare const types: {
41
41
  int8: {
42
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
43
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
42
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
43
+ (target: object, context: ClassMemberDecoratorContext): void;
44
44
  };
45
45
  int16: {
46
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
47
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
46
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
47
+ (target: object, context: ClassMemberDecoratorContext): void;
48
48
  };
49
49
  int32: {
50
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
51
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
50
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
51
+ (target: object, context: ClassMemberDecoratorContext): void;
52
52
  };
53
53
  int64: {
54
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
55
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
54
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
55
+ (target: object, context: ClassMemberDecoratorContext): void;
56
56
  };
57
57
  uint8: {
58
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
59
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
58
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
59
+ (target: object, context: ClassMemberDecoratorContext): void;
60
60
  };
61
61
  uint16: {
62
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
63
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
62
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
63
+ (target: object, context: ClassMemberDecoratorContext): void;
64
64
  };
65
65
  uint32: {
66
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
67
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
66
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
67
+ (target: object, context: ClassMemberDecoratorContext): void;
68
68
  };
69
69
  uint64: {
70
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
71
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
70
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
71
+ (target: object, context: ClassMemberDecoratorContext): void;
72
72
  };
73
73
  float32: {
74
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
75
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
74
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
75
+ (target: object, context: ClassMemberDecoratorContext): void;
76
76
  };
77
77
  float64: {
78
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
79
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
78
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
79
+ (target: object, context: ClassMemberDecoratorContext): void;
80
80
  };
81
81
  Int8: {
82
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
83
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
82
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
83
+ (target: object, context: ClassMemberDecoratorContext): void;
84
84
  };
85
85
  Int16: {
86
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
87
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
86
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
87
+ (target: object, context: ClassMemberDecoratorContext): void;
88
88
  };
89
89
  Int32: {
90
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
91
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
90
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
91
+ (target: object, context: ClassMemberDecoratorContext): void;
92
92
  };
93
93
  Int64: {
94
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
95
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
94
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
95
+ (target: object, context: ClassMemberDecoratorContext): void;
96
96
  };
97
97
  Uint8: {
98
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
99
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
98
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
99
+ (target: object, context: ClassMemberDecoratorContext): void;
100
100
  };
101
101
  Uint16: {
102
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
103
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
102
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
103
+ (target: object, context: ClassMemberDecoratorContext): void;
104
104
  };
105
105
  Uint32: {
106
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
107
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
106
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
107
+ (target: object, context: ClassMemberDecoratorContext): void;
108
108
  };
109
109
  Uint64: {
110
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
111
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
110
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
111
+ (target: object, context: ClassMemberDecoratorContext): void;
112
112
  };
113
113
  Float32: {
114
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
115
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
114
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
115
+ (target: object, context: ClassMemberDecoratorContext): void;
116
116
  };
117
117
  Float64: {
118
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
119
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
118
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
119
+ (target: object, context: ClassMemberDecoratorContext): void;
120
120
  };
121
121
  char: {
122
- (length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
123
- (target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
122
+ (length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
123
+ (target: object, context: ClassMemberDecoratorContext): void;
124
124
  };
125
125
  };
package/dist/struct.js CHANGED
@@ -74,13 +74,15 @@ export function struct(options = {}) {
74
74
  * Decorates a class member to be serialized
75
75
  */
76
76
  export function member(type, length) {
77
- return function (target, context) {
78
- let name = typeof context == 'object' ? context.name : context;
77
+ return function (target, { name }) {
79
78
  if (typeof name == 'symbol') {
80
79
  console.warn('Symbol used for struct member name will be coerced to string: ' + name.toString());
81
80
  name = name.toString();
82
81
  }
83
- if ((typeof target != 'object' || typeof target != 'function') && !('constructor' in target)) {
82
+ if (typeof target != 'object' || typeof target != 'function') {
83
+ throw new TypeError('Invalid member for struct field');
84
+ }
85
+ if (!('constructor' in target)) {
84
86
  throw new TypeError('Invalid member for struct field');
85
87
  }
86
88
  target.constructor[init] ||= [];
@@ -166,13 +168,13 @@ export function deserialize(instance, _buffer) {
166
168
  }
167
169
  }
168
170
  function _member(type) {
169
- function _(targetOrLength, context) {
171
+ function decorator(targetOrLength, context) {
170
172
  if (typeof targetOrLength == 'number') {
171
173
  return member(type, targetOrLength);
172
174
  }
173
175
  return member(type)(targetOrLength, context);
174
176
  }
175
- return _;
177
+ return decorator;
176
178
  }
177
179
  /**
178
180
  * Shortcut types
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "utilium",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "Typescript utilies",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/struct.ts CHANGED
@@ -133,14 +133,17 @@ export function struct(options: Partial<StructOptions> = {}) {
133
133
  * Decorates a class member to be serialized
134
134
  */
135
135
  export function member(type: ValidPrimitiveType | ClassLike, length?: number) {
136
- return function (target: object, context?: ClassMemberDecoratorContext | string | symbol) {
137
- let name = typeof context == 'object' ? context.name : context;
136
+ return function (target: object, { name }: ClassMemberDecoratorContext) {
138
137
  if (typeof name == 'symbol') {
139
138
  console.warn('Symbol used for struct member name will be coerced to string: ' + name.toString());
140
139
  name = name.toString();
141
140
  }
142
141
 
143
- if ((typeof target != 'object' || typeof target != 'function') && !('constructor' in target)) {
142
+ if (typeof target != 'object' || typeof target != 'function') {
143
+ throw new TypeError('Invalid member for struct field');
144
+ }
145
+
146
+ if (!('constructor' in target)) {
144
147
  throw new TypeError('Invalid member for struct field');
145
148
  }
146
149
 
@@ -248,16 +251,16 @@ export function deserialize(instance: unknown, _buffer: ArrayBuffer | ArrayBuffe
248
251
  }
249
252
 
250
253
  function _member<T extends ValidPrimitiveType>(type: T) {
251
- function _(length?: number): (target: object, context?: string | symbol | ClassMemberDecoratorContext) => void;
252
- function _(target: object, context?: string | symbol | ClassMemberDecoratorContext): void;
253
- function _(targetOrLength: object | number, context?: string | symbol | ClassMemberDecoratorContext) {
254
+ function decorator(length?: number): (target: object, context: ClassMemberDecoratorContext) => void;
255
+ function decorator(target: object, context: ClassMemberDecoratorContext): void;
256
+ function decorator(targetOrLength: object | number, context?: ClassMemberDecoratorContext) {
254
257
  if (typeof targetOrLength == 'number') {
255
258
  return member(type, targetOrLength);
256
259
  }
257
260
 
258
261
  return member(type)(targetOrLength, context);
259
262
  }
260
- return _;
263
+ return decorator;
261
264
  }
262
265
 
263
266
  /**