@twin.org/core 0.0.1-next.27 → 0.0.1-next.28

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.
@@ -2954,6 +2954,55 @@ class ErrorHelper {
2954
2954
  }
2955
2955
  }
2956
2956
 
2957
+ // Copyright 2024 IOTA Stiftung.
2958
+ // SPDX-License-Identifier: Apache-2.0.
2959
+ /**
2960
+ * The types the extracted data can be coerced to.
2961
+ */
2962
+ // eslint-disable-next-line @typescript-eslint/naming-convention
2963
+ const CoerceType = {
2964
+ /**
2965
+ * String.
2966
+ */
2967
+ String: "string",
2968
+ /**
2969
+ * Number.
2970
+ */
2971
+ Number: "number",
2972
+ /**
2973
+ * Integer.
2974
+ */
2975
+ Integer: "integer",
2976
+ /**
2977
+ * Boolean.
2978
+ */
2979
+ Boolean: "boolean",
2980
+ /**
2981
+ * Big Integer.
2982
+ */
2983
+ BigInt: "bigint",
2984
+ /**
2985
+ * Date.
2986
+ */
2987
+ Date: "date",
2988
+ /**
2989
+ * Date Time.
2990
+ */
2991
+ DateTime: "datetime",
2992
+ /**
2993
+ * Time.
2994
+ */
2995
+ Time: "time",
2996
+ /**
2997
+ * Object.
2998
+ */
2999
+ Object: "object",
3000
+ /**
3001
+ * Uint8Array.
3002
+ */
3003
+ Uint8Array: "uint8array"
3004
+ };
3005
+
2957
3006
  // Copyright 2024 IOTA Stiftung.
2958
3007
  // SPDX-License-Identifier: Apache-2.0.
2959
3008
  /**
@@ -3186,6 +3235,38 @@ class Coerce {
3186
3235
  }
3187
3236
  }
3188
3237
  }
3238
+ /**
3239
+ * Coerces a value based on the coercion type.
3240
+ * @param value The value to coerce.
3241
+ * @param type The coercion type to perform.
3242
+ * @returns The coerced value.
3243
+ */
3244
+ static byType(value, type) {
3245
+ switch (type) {
3246
+ case CoerceType.String:
3247
+ return Coerce.string(value);
3248
+ case CoerceType.Number:
3249
+ return Coerce.number(value);
3250
+ case CoerceType.Integer:
3251
+ return Coerce.integer(value);
3252
+ case CoerceType.BigInt:
3253
+ return Coerce.bigint(value);
3254
+ case CoerceType.Boolean:
3255
+ return Coerce.boolean(value);
3256
+ case CoerceType.Date:
3257
+ return Coerce.date(value);
3258
+ case CoerceType.DateTime:
3259
+ return Coerce.dateTime(value);
3260
+ case CoerceType.Time:
3261
+ return Coerce.time(value);
3262
+ case CoerceType.Object:
3263
+ return Coerce.object(value);
3264
+ case CoerceType.Uint8Array:
3265
+ return Coerce.uint8Array(value);
3266
+ default:
3267
+ return value;
3268
+ }
3269
+ }
3189
3270
  }
3190
3271
 
3191
3272
  // Copyright 2024 IOTA Stiftung.
@@ -4600,6 +4681,7 @@ exports.Base64Url = Base64Url;
4600
4681
  exports.BaseError = BaseError;
4601
4682
  exports.BitString = BitString;
4602
4683
  exports.Coerce = Coerce;
4684
+ exports.CoerceType = CoerceType;
4603
4685
  exports.ComponentFactory = ComponentFactory;
4604
4686
  exports.Compression = Compression;
4605
4687
  exports.CompressionType = CompressionType;
@@ -2952,6 +2952,55 @@ class ErrorHelper {
2952
2952
  }
2953
2953
  }
2954
2954
 
2955
+ // Copyright 2024 IOTA Stiftung.
2956
+ // SPDX-License-Identifier: Apache-2.0.
2957
+ /**
2958
+ * The types the extracted data can be coerced to.
2959
+ */
2960
+ // eslint-disable-next-line @typescript-eslint/naming-convention
2961
+ const CoerceType = {
2962
+ /**
2963
+ * String.
2964
+ */
2965
+ String: "string",
2966
+ /**
2967
+ * Number.
2968
+ */
2969
+ Number: "number",
2970
+ /**
2971
+ * Integer.
2972
+ */
2973
+ Integer: "integer",
2974
+ /**
2975
+ * Boolean.
2976
+ */
2977
+ Boolean: "boolean",
2978
+ /**
2979
+ * Big Integer.
2980
+ */
2981
+ BigInt: "bigint",
2982
+ /**
2983
+ * Date.
2984
+ */
2985
+ Date: "date",
2986
+ /**
2987
+ * Date Time.
2988
+ */
2989
+ DateTime: "datetime",
2990
+ /**
2991
+ * Time.
2992
+ */
2993
+ Time: "time",
2994
+ /**
2995
+ * Object.
2996
+ */
2997
+ Object: "object",
2998
+ /**
2999
+ * Uint8Array.
3000
+ */
3001
+ Uint8Array: "uint8array"
3002
+ };
3003
+
2955
3004
  // Copyright 2024 IOTA Stiftung.
2956
3005
  // SPDX-License-Identifier: Apache-2.0.
2957
3006
  /**
@@ -3184,6 +3233,38 @@ class Coerce {
3184
3233
  }
3185
3234
  }
3186
3235
  }
3236
+ /**
3237
+ * Coerces a value based on the coercion type.
3238
+ * @param value The value to coerce.
3239
+ * @param type The coercion type to perform.
3240
+ * @returns The coerced value.
3241
+ */
3242
+ static byType(value, type) {
3243
+ switch (type) {
3244
+ case CoerceType.String:
3245
+ return Coerce.string(value);
3246
+ case CoerceType.Number:
3247
+ return Coerce.number(value);
3248
+ case CoerceType.Integer:
3249
+ return Coerce.integer(value);
3250
+ case CoerceType.BigInt:
3251
+ return Coerce.bigint(value);
3252
+ case CoerceType.Boolean:
3253
+ return Coerce.boolean(value);
3254
+ case CoerceType.Date:
3255
+ return Coerce.date(value);
3256
+ case CoerceType.DateTime:
3257
+ return Coerce.dateTime(value);
3258
+ case CoerceType.Time:
3259
+ return Coerce.time(value);
3260
+ case CoerceType.Object:
3261
+ return Coerce.object(value);
3262
+ case CoerceType.Uint8Array:
3263
+ return Coerce.uint8Array(value);
3264
+ default:
3265
+ return value;
3266
+ }
3267
+ }
3187
3268
  }
3188
3269
 
3189
3270
  // Copyright 2024 IOTA Stiftung.
@@ -4588,4 +4669,4 @@ class Validation {
4588
4669
  }
4589
4670
  }
4590
4671
 
4591
- export { AlreadyExistsError, ArrayHelper, AsyncCache, Base32, Base58, Base64, Base64Url, BaseError, BitString, Coerce, ComponentFactory, Compression, CompressionType, ConflictError, Converter, EnvHelper, ErrorHelper, Factory, FilenameHelper, GeneralError, GuardError, Guards, HexHelper, I18n, Is, JsonHelper, NotFoundError, NotImplementedError, NotSupportedError, ObjectHelper, RandomHelper, StringHelper, UnauthorizedError, UnprocessableError, Url, Urn, Validation, ValidationError };
4672
+ export { AlreadyExistsError, ArrayHelper, AsyncCache, Base32, Base58, Base64, Base64Url, BaseError, BitString, Coerce, CoerceType, ComponentFactory, Compression, CompressionType, ConflictError, Converter, EnvHelper, ErrorHelper, Factory, FilenameHelper, GeneralError, GuardError, Guards, HexHelper, I18n, Is, JsonHelper, NotFoundError, NotImplementedError, NotSupportedError, ObjectHelper, RandomHelper, StringHelper, UnauthorizedError, UnprocessableError, Url, Urn, Validation, ValidationError };
@@ -24,6 +24,7 @@ export * from "./helpers/jsonHelper";
24
24
  export * from "./helpers/objectHelper";
25
25
  export * from "./helpers/randomHelper";
26
26
  export * from "./helpers/stringHelper";
27
+ export * from "./models/coerceType";
27
28
  export * from "./models/compressionType";
28
29
  export * from "./models/IComponent";
29
30
  export * from "./models/IError";
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The types the extracted data can be coerced to.
3
+ */
4
+ export declare const CoerceType: {
5
+ /**
6
+ * String.
7
+ */
8
+ readonly String: "string";
9
+ /**
10
+ * Number.
11
+ */
12
+ readonly Number: "number";
13
+ /**
14
+ * Integer.
15
+ */
16
+ readonly Integer: "integer";
17
+ /**
18
+ * Boolean.
19
+ */
20
+ readonly Boolean: "boolean";
21
+ /**
22
+ * Big Integer.
23
+ */
24
+ readonly BigInt: "bigint";
25
+ /**
26
+ * Date.
27
+ */
28
+ readonly Date: "date";
29
+ /**
30
+ * Date Time.
31
+ */
32
+ readonly DateTime: "datetime";
33
+ /**
34
+ * Time.
35
+ */
36
+ readonly Time: "time";
37
+ /**
38
+ * Object.
39
+ */
40
+ readonly Object: "object";
41
+ /**
42
+ * Uint8Array.
43
+ */
44
+ readonly Uint8Array: "uint8array";
45
+ };
46
+ /**
47
+ * The types the extracted data can be coerced to.
48
+ */
49
+ export type CoerceType = (typeof CoerceType)[keyof typeof CoerceType];
@@ -1,3 +1,4 @@
1
+ import { CoerceType } from "../models/coerceType";
1
2
  /**
2
3
  * Coerce an object from one type to another.
3
4
  */
@@ -72,4 +73,11 @@ export declare class Coerce {
72
73
  * @returns The value if it can be coerced.
73
74
  */
74
75
  static uint8Array(value: unknown): Uint8Array | undefined;
76
+ /**
77
+ * Coerces a value based on the coercion type.
78
+ * @param value The value to coerce.
79
+ * @param type The coercion type to perform.
80
+ * @returns The coerced value.
81
+ */
82
+ static byType(value: unknown, type?: CoerceType): unknown;
75
83
  }
package/docs/changelog.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # @twin.org/core - Changelog
2
2
 
3
- ## 0.0.1-next.27
3
+ ## 0.0.1-next.28
4
4
 
5
5
  - Initial Release
@@ -275,3 +275,31 @@ The value if it can be coerced.
275
275
  #### Throws
276
276
 
277
277
  TypeError If the value can not be coerced.
278
+
279
+ ***
280
+
281
+ ### byType()
282
+
283
+ > `static` **byType**(`value`, `type`?): `unknown`
284
+
285
+ Coerces a value based on the coercion type.
286
+
287
+ #### Parameters
288
+
289
+ ##### value
290
+
291
+ `unknown`
292
+
293
+ The value to coerce.
294
+
295
+ ##### type?
296
+
297
+ [`CoerceType`](../type-aliases/CoerceType.md)
298
+
299
+ The coercion type to perform.
300
+
301
+ #### Returns
302
+
303
+ `unknown`
304
+
305
+ The coerced value.
@@ -54,9 +54,11 @@
54
54
 
55
55
  ## Type Aliases
56
56
 
57
+ - [CoerceType](type-aliases/CoerceType.md)
57
58
  - [CompressionType](type-aliases/CompressionType.md)
58
59
 
59
60
  ## Variables
60
61
 
61
62
  - [ComponentFactory](variables/ComponentFactory.md)
63
+ - [CoerceType](variables/CoerceType.md)
62
64
  - [CompressionType](variables/CompressionType.md)
@@ -0,0 +1,5 @@
1
+ # Type Alias: CoerceType
2
+
3
+ > **CoerceType**: *typeof* [`CoerceType`](../variables/CoerceType.md)\[keyof *typeof* [`CoerceType`](../variables/CoerceType.md)\]
4
+
5
+ The types the extracted data can be coerced to.
@@ -0,0 +1,67 @@
1
+ # Variable: CoerceType
2
+
3
+ > `const` **CoerceType**: `object`
4
+
5
+ The types the extracted data can be coerced to.
6
+
7
+ ## Type declaration
8
+
9
+ ### String
10
+
11
+ > `readonly` **String**: `"string"` = `"string"`
12
+
13
+ String.
14
+
15
+ ### Number
16
+
17
+ > `readonly` **Number**: `"number"` = `"number"`
18
+
19
+ Number.
20
+
21
+ ### Integer
22
+
23
+ > `readonly` **Integer**: `"integer"` = `"integer"`
24
+
25
+ Integer.
26
+
27
+ ### Boolean
28
+
29
+ > `readonly` **Boolean**: `"boolean"` = `"boolean"`
30
+
31
+ Boolean.
32
+
33
+ ### BigInt
34
+
35
+ > `readonly` **BigInt**: `"bigint"` = `"bigint"`
36
+
37
+ Big Integer.
38
+
39
+ ### Date
40
+
41
+ > `readonly` **Date**: `"date"` = `"date"`
42
+
43
+ Date.
44
+
45
+ ### DateTime
46
+
47
+ > `readonly` **DateTime**: `"datetime"` = `"datetime"`
48
+
49
+ Date Time.
50
+
51
+ ### Time
52
+
53
+ > `readonly` **Time**: `"time"` = `"time"`
54
+
55
+ Time.
56
+
57
+ ### Object
58
+
59
+ > `readonly` **Object**: `"object"` = `"object"`
60
+
61
+ Object.
62
+
63
+ ### Uint8Array
64
+
65
+ > `readonly` **Uint8Array**: `"uint8array"` = `"uint8array"`
66
+
67
+ Uint8Array.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/core",
3
- "version": "0.0.1-next.27",
3
+ "version": "0.0.1-next.28",
4
4
  "description": "Helper methods/classes for data type checking/validation/guarding/error handling",
5
5
  "repository": {
6
6
  "type": "git",