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