@polkadot/types-codec 9.14.2 → 10.1.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.
Files changed (229) hide show
  1. package/abstract/Array.d.ts +1 -1
  2. package/abstract/Array.js +136 -155
  3. package/abstract/Base.d.ts +1 -1
  4. package/abstract/Base.js +95 -113
  5. package/abstract/Int.d.ts +1 -1
  6. package/abstract/Int.js +209 -220
  7. package/abstract/Object.d.ts +1 -1
  8. package/abstract/Object.js +29 -45
  9. package/abstract/index.d.ts +3 -3
  10. package/abstract/index.js +3 -6
  11. package/base/Compact.d.ts +1 -1
  12. package/base/Compact.js +149 -166
  13. package/base/DoNotConstruct.d.ts +1 -1
  14. package/base/DoNotConstruct.js +62 -65
  15. package/base/Enum.d.ts +1 -1
  16. package/base/Enum.js +347 -383
  17. package/base/Int.d.ts +2 -2
  18. package/base/Int.js +14 -18
  19. package/base/Null.d.ts +1 -1
  20. package/base/Null.js +68 -82
  21. package/base/Option.d.ts +1 -1
  22. package/base/Option.js +217 -227
  23. package/base/Result.d.ts +2 -2
  24. package/base/Result.js +54 -67
  25. package/base/Tuple.d.ts +2 -2
  26. package/base/Tuple.js +100 -102
  27. package/base/UInt.d.ts +2 -2
  28. package/base/UInt.js +11 -15
  29. package/base/Vec.d.ts +2 -2
  30. package/base/Vec.js +88 -90
  31. package/base/VecAny.d.ts +2 -2
  32. package/base/VecAny.js +8 -12
  33. package/base/VecFixed.d.ts +2 -2
  34. package/base/VecFixed.js +63 -71
  35. package/base/index.d.ts +12 -12
  36. package/base/index.js +12 -15
  37. package/bundle.d.ts +7 -7
  38. package/bundle.js +7 -10
  39. package/cjs/abstract/Array.js +138 -159
  40. package/cjs/abstract/Base.js +96 -117
  41. package/cjs/abstract/Int.js +215 -238
  42. package/cjs/abstract/Object.js +30 -49
  43. package/cjs/abstract/index.js +8 -25
  44. package/cjs/base/Compact.js +151 -173
  45. package/cjs/base/DoNotConstruct.js +63 -70
  46. package/cjs/base/Enum.js +350 -396
  47. package/cjs/base/Int.js +16 -24
  48. package/cjs/base/Null.js +70 -86
  49. package/cjs/base/Option.js +220 -234
  50. package/cjs/base/Result.js +56 -71
  51. package/cjs/base/Tuple.js +103 -109
  52. package/cjs/base/UInt.js +13 -19
  53. package/cjs/base/Vec.js +94 -101
  54. package/cjs/base/VecAny.js +10 -16
  55. package/cjs/base/VecFixed.js +66 -79
  56. package/cjs/base/index.js +26 -88
  57. package/cjs/bundle.js +11 -86
  58. package/cjs/detectOther.js +2 -10
  59. package/cjs/detectPackage.js +6 -11
  60. package/cjs/extended/BTreeMap.js +10 -16
  61. package/cjs/extended/BTreeSet.js +162 -178
  62. package/cjs/extended/BitVec.js +70 -77
  63. package/cjs/extended/Bytes.js +59 -62
  64. package/cjs/extended/HashMap.js +10 -16
  65. package/cjs/extended/Linkage.js +50 -60
  66. package/cjs/extended/Map.js +176 -181
  67. package/cjs/extended/OptionBool.js +65 -68
  68. package/cjs/extended/Range.js +37 -46
  69. package/cjs/extended/RangeInclusive.js +13 -21
  70. package/cjs/extended/Type.js +14 -22
  71. package/cjs/extended/U8aFixed.js +33 -43
  72. package/cjs/extended/WrapperKeepOpaque.js +99 -99
  73. package/cjs/extended/WrapperOpaque.js +19 -28
  74. package/cjs/extended/index.js +31 -108
  75. package/cjs/index.js +4 -16
  76. package/cjs/native/Bool.js +101 -116
  77. package/cjs/native/Date.js +125 -151
  78. package/cjs/native/Float.js +95 -114
  79. package/cjs/native/Json.js +102 -124
  80. package/cjs/native/Raw.js +128 -150
  81. package/cjs/native/Set.js +200 -220
  82. package/cjs/native/Struct.data.js +2 -9
  83. package/cjs/native/Struct.js +238 -251
  84. package/cjs/native/Text.js +137 -149
  85. package/cjs/native/index.js +21 -78
  86. package/cjs/packageInfo.js +2 -16
  87. package/cjs/primitive/F32.js +8 -11
  88. package/cjs/primitive/F64.js +8 -11
  89. package/cjs/primitive/I128.js +8 -11
  90. package/cjs/primitive/I16.js +8 -11
  91. package/cjs/primitive/I256.js +8 -11
  92. package/cjs/primitive/I32.js +8 -11
  93. package/cjs/primitive/I64.js +8 -11
  94. package/cjs/primitive/I8.js +8 -11
  95. package/cjs/primitive/U128.js +8 -11
  96. package/cjs/primitive/U16.js +8 -11
  97. package/cjs/primitive/U256.js +8 -11
  98. package/cjs/primitive/U32.js +8 -11
  99. package/cjs/primitive/U64.js +8 -11
  100. package/cjs/primitive/U8.js +8 -11
  101. package/cjs/primitive/USize.js +7 -13
  102. package/cjs/primitive/index.js +47 -199
  103. package/cjs/types/codec.js +2 -1
  104. package/cjs/types/helpers.js +2 -1
  105. package/cjs/types/index.js +6 -48
  106. package/cjs/types/interfaces.js +2 -1
  107. package/cjs/types/registry.js +2 -1
  108. package/cjs/utils/compareArray.js +12 -17
  109. package/cjs/utils/compareMap.js +23 -26
  110. package/cjs/utils/compareSet.js +17 -23
  111. package/cjs/utils/decodeU8a.js +63 -74
  112. package/cjs/utils/index.js +24 -91
  113. package/cjs/utils/mapToTypeMap.js +13 -18
  114. package/cjs/utils/sanitize.js +198 -204
  115. package/cjs/utils/sortValues.js +39 -49
  116. package/cjs/utils/typeToConstructor.js +8 -11
  117. package/cjs/utils/typesToMap.js +10 -16
  118. package/cjs/utils/util.js +6 -11
  119. package/detectOther.js +0 -5
  120. package/detectPackage.js +2 -7
  121. package/extended/BTreeMap.d.ts +2 -2
  122. package/extended/BTreeMap.js +8 -11
  123. package/extended/BTreeSet.d.ts +1 -1
  124. package/extended/BTreeSet.js +159 -172
  125. package/extended/BitVec.d.ts +2 -2
  126. package/extended/BitVec.js +67 -71
  127. package/extended/Bytes.d.ts +2 -2
  128. package/extended/Bytes.js +56 -57
  129. package/extended/HashMap.d.ts +2 -2
  130. package/extended/HashMap.js +8 -11
  131. package/extended/Linkage.d.ts +4 -4
  132. package/extended/Linkage.js +46 -51
  133. package/extended/Map.d.ts +1 -1
  134. package/extended/Map.js +173 -174
  135. package/extended/OptionBool.d.ts +3 -3
  136. package/extended/OptionBool.js +62 -62
  137. package/extended/Range.d.ts +2 -2
  138. package/extended/Range.js +35 -40
  139. package/extended/RangeInclusive.d.ts +2 -2
  140. package/extended/RangeInclusive.js +11 -16
  141. package/extended/Type.d.ts +2 -2
  142. package/extended/Type.js +12 -17
  143. package/extended/U8aFixed.d.ts +2 -2
  144. package/extended/U8aFixed.js +30 -36
  145. package/extended/WrapperKeepOpaque.d.ts +2 -2
  146. package/extended/WrapperKeepOpaque.js +96 -92
  147. package/extended/WrapperOpaque.d.ts +2 -2
  148. package/extended/WrapperOpaque.js +17 -23
  149. package/extended/index.d.ts +14 -14
  150. package/extended/index.js +14 -17
  151. package/index.d.ts +2 -2
  152. package/index.js +2 -5
  153. package/native/Bool.d.ts +1 -1
  154. package/native/Bool.js +99 -111
  155. package/native/Date.d.ts +1 -1
  156. package/native/Date.js +123 -144
  157. package/native/Float.d.ts +1 -1
  158. package/native/Float.js +93 -108
  159. package/native/Json.d.ts +1 -1
  160. package/native/Json.js +100 -114
  161. package/native/Raw.d.ts +1 -1
  162. package/native/Raw.js +126 -146
  163. package/native/Set.d.ts +1 -1
  164. package/native/Set.js +197 -211
  165. package/native/Struct.d.ts +1 -1
  166. package/native/Struct.data.js +0 -3
  167. package/native/Struct.js +235 -242
  168. package/native/Text.d.ts +1 -1
  169. package/native/Text.js +135 -144
  170. package/native/index.d.ts +8 -8
  171. package/native/index.js +8 -11
  172. package/package.json +8 -5
  173. package/packageInfo.js +1 -11
  174. package/primitive/F32.d.ts +2 -2
  175. package/primitive/F32.js +6 -7
  176. package/primitive/F64.d.ts +2 -2
  177. package/primitive/F64.js +6 -7
  178. package/primitive/I128.d.ts +2 -2
  179. package/primitive/I128.js +6 -7
  180. package/primitive/I16.d.ts +2 -2
  181. package/primitive/I16.js +6 -7
  182. package/primitive/I256.d.ts +2 -2
  183. package/primitive/I256.js +6 -7
  184. package/primitive/I32.d.ts +2 -2
  185. package/primitive/I32.js +6 -7
  186. package/primitive/I64.d.ts +2 -2
  187. package/primitive/I64.js +6 -7
  188. package/primitive/I8.d.ts +2 -2
  189. package/primitive/I8.js +6 -7
  190. package/primitive/U128.d.ts +2 -2
  191. package/primitive/U128.js +6 -7
  192. package/primitive/U16.d.ts +2 -2
  193. package/primitive/U16.js +6 -7
  194. package/primitive/U256.d.ts +2 -2
  195. package/primitive/U256.js +6 -7
  196. package/primitive/U32.d.ts +2 -2
  197. package/primitive/U32.js +6 -7
  198. package/primitive/U64.d.ts +2 -2
  199. package/primitive/U64.js +6 -7
  200. package/primitive/U8.d.ts +2 -2
  201. package/primitive/U8.js +6 -7
  202. package/primitive/USize.d.ts +2 -2
  203. package/primitive/USize.js +5 -9
  204. package/primitive/index.d.ts +15 -15
  205. package/primitive/index.js +15 -18
  206. package/types/codec.d.ts +3 -3
  207. package/types/helpers.d.ts +1 -1
  208. package/types/index.d.ts +4 -4
  209. package/types/index.js +4 -7
  210. package/types/interfaces.d.ts +2 -2
  211. package/types/registry.d.ts +3 -3
  212. package/utils/compareArray.js +7 -11
  213. package/utils/compareMap.js +18 -19
  214. package/utils/compareSet.js +12 -16
  215. package/utils/decodeU8a.d.ts +1 -1
  216. package/utils/decodeU8a.js +54 -61
  217. package/utils/index.d.ts +9 -9
  218. package/utils/index.js +9 -12
  219. package/utils/mapToTypeMap.d.ts +1 -1
  220. package/utils/mapToTypeMap.js +9 -13
  221. package/utils/sanitize.d.ts +1 -1
  222. package/utils/sanitize.js +182 -185
  223. package/utils/sortValues.d.ts +1 -1
  224. package/utils/sortValues.js +32 -36
  225. package/utils/typeToConstructor.d.ts +1 -1
  226. package/utils/typeToConstructor.js +3 -4
  227. package/utils/typesToMap.d.ts +1 -1
  228. package/utils/typesToMap.js +5 -8
  229. package/utils/util.js +1 -4
package/base/Option.js CHANGED
@@ -1,48 +1,50 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
1
+ var _Option_Type, _Option_raw;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
4
3
  import { isCodec, isNull, isU8a, isUndefined, u8aToHex } from '@polkadot/util';
5
- import { typeToConstructor } from "../utils/index.js";
6
- import { Null } from "./Null.js";
4
+ import { typeToConstructor } from '../utils/index.js';
5
+ import { Null } from './Null.js';
7
6
  function noopSetDefinition(d) {
8
- return d;
7
+ return d;
9
8
  }
10
9
  class None extends Null {
11
- /**
12
- * @description Returns the base runtime type name for this instance
13
- */
14
- toRawType() {
15
- return 'None';
16
- }
10
+ /**
11
+ * @description Returns the base runtime type name for this instance
12
+ */
13
+ toRawType() {
14
+ return 'None';
15
+ }
17
16
  }
18
-
19
17
  /** @internal */
20
18
  function decodeOption(registry, Type, value) {
21
- if (value instanceof Type) {
22
- // don't re-create, use as it (which also caters for derived types)
23
- return value;
24
- } else if (value instanceof Option) {
25
- if (value.value instanceof Type) {
26
- // same instance, return it
27
- return value.value;
28
- } else if (value.isNone) {
29
- // internal is None, we are also none
30
- return new None(registry);
31
- }
32
-
33
- // convert the actual value into known
34
- return new Type(registry, value.value);
35
- } else if (isNull(value) || isUndefined(value) || value === '0x' || value instanceof None) {
36
- // anyhting empty we pass as-is
37
- return new None(registry);
38
- } else if (isU8a(value)) {
39
- // the isU8a check happens last in the if-tree - since the wrapped value
40
- // may be an instance of it, so Type and Option checks go in first
41
- return !value.length || value[0] === 0 ? new None(registry) : new Type(registry, value.subarray(1));
42
- }
43
- return new Type(registry, value);
19
+ if (value instanceof Type) {
20
+ // don't re-create, use as it (which also caters for derived types)
21
+ return value;
22
+ }
23
+ else if (value instanceof Option) {
24
+ if (value.value instanceof Type) {
25
+ // same instance, return it
26
+ return value.value;
27
+ }
28
+ else if (value.isNone) {
29
+ // internal is None, we are also none
30
+ return new None(registry);
31
+ }
32
+ // convert the actual value into known
33
+ return new Type(registry, value.value);
34
+ }
35
+ else if (isNull(value) || isUndefined(value) || value === '0x' || value instanceof None) {
36
+ // anyhting empty we pass as-is
37
+ return new None(registry);
38
+ }
39
+ else if (isU8a(value)) {
40
+ // the isU8a check happens last in the if-tree - since the wrapped value
41
+ // may be an instance of it, so Type and Option checks go in first
42
+ return !value.length || value[0] === 0
43
+ ? new None(registry)
44
+ : new Type(registry, value.subarray(1));
45
+ }
46
+ return new Type(registry, value);
44
47
  }
45
-
46
48
  /**
47
49
  * @name Option
48
50
  * @description
@@ -52,193 +54,181 @@ function decodeOption(registry, Type, value) {
52
54
  * with a value if/as required/found.
53
55
  */
54
56
  export class Option {
55
- #Type;
56
- #raw;
57
- constructor(registry, typeName, value, {
58
- definition,
59
- setDefinition = noopSetDefinition
60
- } = {}) {
61
- const Type = definition || setDefinition(typeToConstructor(registry, typeName));
62
- const decoded = isU8a(value) && value.length && !isCodec(value) ? value[0] === 0 ? new None(registry) : new Type(registry, value.subarray(1)) : decodeOption(registry, Type, value);
63
- this.registry = registry;
64
- this.#Type = Type;
65
- this.#raw = decoded;
66
- if (decoded != null && decoded.initialU8aLength) {
67
- this.initialU8aLength = 1 + decoded.initialU8aLength;
68
- }
69
- }
70
- static with(Type) {
71
- let definition;
72
- const setDefinition = d => {
73
- definition = d;
74
- return d;
75
- };
76
- return class extends Option {
77
- constructor(registry, value) {
78
- super(registry, Type, value, {
79
- definition,
80
- setDefinition
81
- });
82
- }
83
- };
84
- }
85
-
86
- /**
87
- * @description The length of the value when encoded as a Uint8Array
88
- */
89
- get encodedLength() {
90
- // boolean byte (has value, doesn't have) along with wrapped length
91
- return 1 + this.#raw.encodedLength;
92
- }
93
-
94
- /**
95
- * @description returns a hash of the contents
96
- */
97
- get hash() {
98
- return this.registry.hash(this.toU8a());
99
- }
100
-
101
- /**
102
- * @description Checks if the Option has no value
103
- */
104
- get isEmpty() {
105
- return this.isNone;
106
- }
107
-
108
- /**
109
- * @description Checks if the Option has no value
110
- */
111
- get isNone() {
112
- return this.#raw instanceof None;
113
- }
114
-
115
- /**
116
- * @description Checks if the Option has a value
117
- */
118
- get isSome() {
119
- return !this.isNone;
120
- }
121
-
122
- /**
123
- * @description The actual value for the Option
124
- */
125
- get value() {
126
- return this.#raw;
127
- }
128
-
129
- /**
130
- * @description Compares the value of the input to see if there is a match
131
- */
132
- eq(other) {
133
- if (other instanceof Option) {
134
- return this.isSome === other.isSome && this.value.eq(other.value);
135
- }
136
- return this.value.eq(other);
137
- }
138
-
139
- /**
140
- * @description Returns a breakdown of the hex encoding for this Codec
141
- */
142
- inspect() {
143
- if (this.isNone) {
144
- return {
145
- outer: [new Uint8Array([0])]
146
- };
147
- }
148
- const {
149
- inner,
150
- outer = []
151
- } = this.#raw.inspect();
152
- return {
153
- inner,
154
- outer: [new Uint8Array([1]), ...outer]
155
- };
156
- }
157
-
158
- /**
159
- * @description Returns a hex string representation of the value
160
- */
161
- toHex() {
162
- // This attempts to align with the JSON encoding - actually in this case
163
- // the isSome value is correct, however the `isNone` may be problematic
164
- return this.isNone ? '0x' : u8aToHex(this.toU8a().subarray(1));
165
- }
166
-
167
- /**
168
- * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
169
- */
170
- toHuman(isExtended) {
171
- return this.#raw.toHuman(isExtended);
172
- }
173
-
174
- /**
175
- * @description Converts the Object to JSON, typically used for RPC transfers
176
- */
177
- toJSON() {
178
- return this.isNone ? null : this.#raw.toJSON();
179
- }
180
-
181
- /**
182
- * @description Converts the value in a best-fit primitive form
183
- */
184
- toPrimitive() {
185
- return this.isNone ? null : this.#raw.toPrimitive();
186
- }
187
-
188
- /**
189
- * @description Returns the base runtime type name for this instance
190
- */
191
- toRawType(isBare) {
192
- const wrapped = this.registry.getClassName(this.#Type) || new this.#Type(this.registry).toRawType();
193
- return isBare ? wrapped : `Option<${wrapped}>`;
194
- }
195
-
196
- /**
197
- * @description Returns the string representation of the value
198
- */
199
- toString() {
200
- return this.#raw.toString();
201
- }
202
-
203
- /**
204
- * @description Encodes the value as a Uint8Array as per the SCALE specifications
205
- * @param isBare true when the value has none of the type-specific prefixes (internal)
206
- */
207
- toU8a(isBare) {
208
- if (isBare) {
209
- return this.#raw.toU8a(true);
210
- }
211
- const u8a = new Uint8Array(this.encodedLength);
212
- if (this.isSome) {
213
- u8a.set([1]);
214
- u8a.set(this.#raw.toU8a(), 1);
215
- }
216
- return u8a;
217
- }
218
-
219
- /**
220
- * @description Returns the value that the Option represents (if available), throws if null
221
- */
222
- unwrap() {
223
- if (this.isNone) {
224
- throw new Error('Option: unwrapping a None value');
225
- }
226
- return this.#raw;
227
- }
228
-
229
- /**
230
- * @description Returns the value that the Option represents (if available) or defaultValue if none
231
- * @param defaultValue The value to return if the option isNone
232
- */
233
- unwrapOr(defaultValue) {
234
- return this.isSome ? this.unwrap() : defaultValue;
235
- }
236
-
237
- /**
238
- * @description Returns the value that the Option represents (if available) or defaultValue if none
239
- * @param defaultValue The value to return if the option isNone
240
- */
241
- unwrapOrDefault() {
242
- return this.isSome ? this.unwrap() : new this.#Type(this.registry);
243
- }
244
- }
57
+ constructor(registry, typeName, value, { definition, setDefinition = noopSetDefinition } = {}) {
58
+ _Option_Type.set(this, void 0);
59
+ _Option_raw.set(this, void 0);
60
+ const Type = definition || setDefinition(typeToConstructor(registry, typeName));
61
+ const decoded = isU8a(value) && value.length && !isCodec(value)
62
+ ? value[0] === 0
63
+ ? new None(registry)
64
+ : new Type(registry, value.subarray(1))
65
+ : decodeOption(registry, Type, value);
66
+ this.registry = registry;
67
+ __classPrivateFieldSet(this, _Option_Type, Type, "f");
68
+ __classPrivateFieldSet(this, _Option_raw, decoded, "f");
69
+ if (decoded?.initialU8aLength) {
70
+ this.initialU8aLength = 1 + decoded.initialU8aLength;
71
+ }
72
+ }
73
+ static with(Type) {
74
+ let definition;
75
+ const setDefinition = (d) => {
76
+ definition = d;
77
+ return d;
78
+ };
79
+ return class extends Option {
80
+ constructor(registry, value) {
81
+ super(registry, Type, value, { definition, setDefinition });
82
+ }
83
+ };
84
+ }
85
+ /**
86
+ * @description The length of the value when encoded as a Uint8Array
87
+ */
88
+ get encodedLength() {
89
+ // boolean byte (has value, doesn't have) along with wrapped length
90
+ return 1 + __classPrivateFieldGet(this, _Option_raw, "f").encodedLength;
91
+ }
92
+ /**
93
+ * @description returns a hash of the contents
94
+ */
95
+ get hash() {
96
+ return this.registry.hash(this.toU8a());
97
+ }
98
+ /**
99
+ * @description Checks if the Option has no value
100
+ */
101
+ get isEmpty() {
102
+ return this.isNone;
103
+ }
104
+ /**
105
+ * @description Checks if the Option has no value
106
+ */
107
+ get isNone() {
108
+ return __classPrivateFieldGet(this, _Option_raw, "f") instanceof None;
109
+ }
110
+ /**
111
+ * @description Checks if the Option has a value
112
+ */
113
+ get isSome() {
114
+ return !this.isNone;
115
+ }
116
+ /**
117
+ * @description The actual value for the Option
118
+ */
119
+ get value() {
120
+ return __classPrivateFieldGet(this, _Option_raw, "f");
121
+ }
122
+ /**
123
+ * @description Compares the value of the input to see if there is a match
124
+ */
125
+ eq(other) {
126
+ if (other instanceof Option) {
127
+ return (this.isSome === other.isSome) && this.value.eq(other.value);
128
+ }
129
+ return this.value.eq(other);
130
+ }
131
+ /**
132
+ * @description Returns a breakdown of the hex encoding for this Codec
133
+ */
134
+ inspect() {
135
+ if (this.isNone) {
136
+ return { outer: [new Uint8Array([0])] };
137
+ }
138
+ const { inner, outer = [] } = __classPrivateFieldGet(this, _Option_raw, "f").inspect();
139
+ return {
140
+ inner,
141
+ outer: [new Uint8Array([1]), ...outer]
142
+ };
143
+ }
144
+ /**
145
+ * @description Returns a hex string representation of the value
146
+ */
147
+ toHex() {
148
+ // This attempts to align with the JSON encoding - actually in this case
149
+ // the isSome value is correct, however the `isNone` may be problematic
150
+ return this.isNone
151
+ ? '0x'
152
+ : u8aToHex(this.toU8a().subarray(1));
153
+ }
154
+ /**
155
+ * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information
156
+ */
157
+ toHuman(isExtended) {
158
+ return __classPrivateFieldGet(this, _Option_raw, "f").toHuman(isExtended);
159
+ }
160
+ /**
161
+ * @description Converts the Object to JSON, typically used for RPC transfers
162
+ */
163
+ toJSON() {
164
+ return this.isNone
165
+ ? null
166
+ : __classPrivateFieldGet(this, _Option_raw, "f").toJSON();
167
+ }
168
+ /**
169
+ * @description Converts the value in a best-fit primitive form
170
+ */
171
+ toPrimitive() {
172
+ return this.isNone
173
+ ? null
174
+ : __classPrivateFieldGet(this, _Option_raw, "f").toPrimitive();
175
+ }
176
+ /**
177
+ * @description Returns the base runtime type name for this instance
178
+ */
179
+ toRawType(isBare) {
180
+ const wrapped = this.registry.getClassName(__classPrivateFieldGet(this, _Option_Type, "f")) || new (__classPrivateFieldGet(this, _Option_Type, "f"))(this.registry).toRawType();
181
+ return isBare
182
+ ? wrapped
183
+ : `Option<${wrapped}>`;
184
+ }
185
+ /**
186
+ * @description Returns the string representation of the value
187
+ */
188
+ toString() {
189
+ return __classPrivateFieldGet(this, _Option_raw, "f").toString();
190
+ }
191
+ /**
192
+ * @description Encodes the value as a Uint8Array as per the SCALE specifications
193
+ * @param isBare true when the value has none of the type-specific prefixes (internal)
194
+ */
195
+ toU8a(isBare) {
196
+ if (isBare) {
197
+ return __classPrivateFieldGet(this, _Option_raw, "f").toU8a(true);
198
+ }
199
+ const u8a = new Uint8Array(this.encodedLength);
200
+ if (this.isSome) {
201
+ u8a.set([1]);
202
+ u8a.set(__classPrivateFieldGet(this, _Option_raw, "f").toU8a(), 1);
203
+ }
204
+ return u8a;
205
+ }
206
+ /**
207
+ * @description Returns the value that the Option represents (if available), throws if null
208
+ */
209
+ unwrap() {
210
+ if (this.isNone) {
211
+ throw new Error('Option: unwrapping a None value');
212
+ }
213
+ return __classPrivateFieldGet(this, _Option_raw, "f");
214
+ }
215
+ /**
216
+ * @description Returns the value that the Option represents (if available) or defaultValue if none
217
+ * @param defaultValue The value to return if the option isNone
218
+ */
219
+ unwrapOr(defaultValue) {
220
+ return this.isSome
221
+ ? this.unwrap()
222
+ : defaultValue;
223
+ }
224
+ /**
225
+ * @description Returns the value that the Option represents (if available) or defaultValue if none
226
+ * @param defaultValue The value to return if the option isNone
227
+ */
228
+ unwrapOrDefault() {
229
+ return this.isSome
230
+ ? this.unwrap()
231
+ : new (__classPrivateFieldGet(this, _Option_Type, "f"))(this.registry);
232
+ }
233
+ }
234
+ _Option_Type = new WeakMap(), _Option_raw = new WeakMap();
package/base/Result.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { Codec, CodecClass, IResult, Registry } from '../types';
2
- import { Enum } from './Enum';
1
+ import type { Codec, CodecClass, IResult, Registry } from '../types/index.js';
2
+ import { Enum } from './Enum.js';
3
3
  /**
4
4
  * @name Result
5
5
  * @description
package/base/Result.js CHANGED
@@ -1,76 +1,63 @@
1
- // Copyright 2017-2023 @polkadot/types-codec authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
- import { Enum } from "./Enum.js";
5
-
1
+ import { Enum } from './Enum.js';
6
2
  /**
7
3
  * @name Result
8
4
  * @description
9
5
  * A Result maps to the Rust Result type, that can either wrap a success or error value
10
6
  */
11
7
  export class Result extends Enum {
12
- constructor(registry, Ok, Err, value) {
13
- // NOTE This is order-dependent, Ok (with index 0) needs to be first
14
- // eslint-disable-next-line sort-keys
15
- super(registry, {
16
- Ok,
17
- Err
18
- }, value);
19
- }
20
- static with(Types) {
21
- return class extends Result {
22
- constructor(registry, value) {
23
- super(registry, Types.Ok, Types.Err, value);
24
- }
25
- };
26
- }
27
-
28
- /**
29
- * @description Returns the wrapper Err value (if isErr)
30
- */
31
- get asErr() {
32
- if (!this.isErr) {
33
- throw new Error('Cannot extract Err value from Ok result, check isErr first');
8
+ constructor(registry, Ok, Err, value) {
9
+ // NOTE This is order-dependent, Ok (with index 0) needs to be first
10
+ // eslint-disable-next-line sort-keys
11
+ super(registry, { Ok, Err }, value);
34
12
  }
35
- return this.value;
36
- }
37
-
38
- /**
39
- * @description Returns the wrapper Ok value (if isOk)
40
- */
41
- get asOk() {
42
- if (!this.isOk) {
43
- throw new Error('Cannot extract Ok value from Err result, check isOk first');
13
+ static with(Types) {
14
+ return class extends Result {
15
+ constructor(registry, value) {
16
+ super(registry, Types.Ok, Types.Err, value);
17
+ }
18
+ };
19
+ }
20
+ /**
21
+ * @description Returns the wrapper Err value (if isErr)
22
+ */
23
+ get asErr() {
24
+ if (!this.isErr) {
25
+ throw new Error('Cannot extract Err value from Ok result, check isErr first');
26
+ }
27
+ return this.value;
28
+ }
29
+ /**
30
+ * @description Returns the wrapper Ok value (if isOk)
31
+ */
32
+ get asOk() {
33
+ if (!this.isOk) {
34
+ throw new Error('Cannot extract Ok value from Err result, check isOk first');
35
+ }
36
+ return this.value;
37
+ }
38
+ /**
39
+ * @description Checks if the Result has no value
40
+ */
41
+ get isEmpty() {
42
+ return this.isOk && this.value.isEmpty;
43
+ }
44
+ /**
45
+ * @description Checks if the Result wraps an Err value
46
+ */
47
+ get isErr() {
48
+ return !this.isOk;
49
+ }
50
+ /**
51
+ * @description Checks if the Result wraps an Ok value
52
+ */
53
+ get isOk() {
54
+ return this.index === 0;
55
+ }
56
+ /**
57
+ * @description Returns the base runtime type name for this instance
58
+ */
59
+ toRawType() {
60
+ const Types = this._toRawStruct();
61
+ return `Result<${Types.Ok},${Types.Err}>`;
44
62
  }
45
- return this.value;
46
- }
47
-
48
- /**
49
- * @description Checks if the Result has no value
50
- */
51
- get isEmpty() {
52
- return this.isOk && this.value.isEmpty;
53
- }
54
-
55
- /**
56
- * @description Checks if the Result wraps an Err value
57
- */
58
- get isErr() {
59
- return !this.isOk;
60
- }
61
-
62
- /**
63
- * @description Checks if the Result wraps an Ok value
64
- */
65
- get isOk() {
66
- return this.index === 0;
67
- }
68
-
69
- /**
70
- * @description Returns the base runtime type name for this instance
71
- */
72
- toRawType() {
73
- const Types = this._toRawStruct();
74
- return `Result<${Types.Ok},${Types.Err}>`;
75
- }
76
63
  }
package/base/Tuple.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { AnyTupleValue, Codec, CodecClass, Inspect, ITuple, Registry } from '../types';
2
- import { AbstractArray } from '../abstract/Array';
1
+ import type { AnyTupleValue, Codec, CodecClass, Inspect, ITuple, Registry } from '../types/index.js';
2
+ import { AbstractArray } from '../abstract/Array.js';
3
3
  type TupleType = (CodecClass | string);
4
4
  type TupleTypes = TupleType[] | {
5
5
  [index: string]: CodecClass | string;