@joookiwi/type 1.0.0

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 (53) hide show
  1. package/README.md +107 -0
  2. package/dist/boolean (false).d.ts +28 -0
  3. package/dist/boolean (false).d.ts.map +1 -0
  4. package/dist/boolean (true).d.ts +29 -0
  5. package/dist/boolean (true).d.ts.map +1 -0
  6. package/dist/boolean.d.ts +42 -0
  7. package/dist/boolean.d.ts.map +1 -0
  8. package/dist/empty.d.ts +51 -0
  9. package/dist/empty.d.ts.map +1 -0
  10. package/dist/index.d.ts +23 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/mixed.d.ts +594 -0
  13. package/dist/mixed.d.ts.map +1 -0
  14. package/dist/nullable.d.ts +769 -0
  15. package/dist/nullable.d.ts.map +1 -0
  16. package/dist/numeric (-1).d.ts +86 -0
  17. package/dist/numeric (-1).d.ts.map +1 -0
  18. package/dist/numeric (0).d.ts +88 -0
  19. package/dist/numeric (0).d.ts.map +1 -0
  20. package/dist/numeric (1).d.ts +88 -0
  21. package/dist/numeric (1).d.ts.map +1 -0
  22. package/dist/numeric (2).d.ts +84 -0
  23. package/dist/numeric (2).d.ts.map +1 -0
  24. package/dist/numeric (bigint).d.ts +41 -0
  25. package/dist/numeric (bigint).d.ts.map +1 -0
  26. package/dist/numeric (number).d.ts +42 -0
  27. package/dist/numeric (number).d.ts.map +1 -0
  28. package/dist/numeric.d.ts +51 -0
  29. package/dist/numeric.d.ts.map +1 -0
  30. package/dist/string (individual).d.ts +33 -0
  31. package/dist/string (individual).d.ts.map +1 -0
  32. package/dist/string.d.ts +43 -0
  33. package/dist/string.d.ts.map +1 -0
  34. package/dist/symbol.d.ts +38 -0
  35. package/dist/symbol.d.ts.map +1 -0
  36. package/package.json +65 -0
  37. package/src/boolean (false).ts +30 -0
  38. package/src/boolean (true).ts +31 -0
  39. package/src/boolean.ts +45 -0
  40. package/src/empty.ts +57 -0
  41. package/src/index.ts +23 -0
  42. package/src/mixed.ts +642 -0
  43. package/src/nullable.ts +837 -0
  44. package/src/numeric (-1).ts +88 -0
  45. package/src/numeric (0).ts +90 -0
  46. package/src/numeric (1).ts +90 -0
  47. package/src/numeric (2).ts +86 -0
  48. package/src/numeric (bigint).ts +44 -0
  49. package/src/numeric (number).ts +45 -0
  50. package/src/numeric.ts +55 -0
  51. package/src/string (individual).ts +35 -0
  52. package/src/string.ts +59 -0
  53. package/src/symbol.ts +40 -0
@@ -0,0 +1,88 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ /**
9
+ * A type-alias for <b>-1</b> (as a {@link Number} or a {@link BigInt})
10
+ * as a primitive
11
+ *
12
+ * @see Numeric
13
+ * @see MinusOneNumber
14
+ * @see MinusOneBigInt
15
+ */
16
+ export type MinusOne<T extends | -1 | -1n = | -1 | -1n, > = T
17
+ /**
18
+ * A type-alias for the {@link Number} <b>-1</b>
19
+ * as a primitive
20
+ *
21
+ * @see MinusOne
22
+ */
23
+ export type MinusOneNumber<T extends -1 = -1, > = T
24
+ /**
25
+ * A type-alias for the {@link BigInt} <b>-1</b>
26
+ * as a primitive
27
+ *
28
+ * @see MinusOne
29
+ */
30
+ export type MinusOneBigInt<T extends -1n = -1n, > = T
31
+
32
+ /**
33
+ * A type-alias for <b>-1</b> (as a {@link Number} or a {@link BigInt})
34
+ * in a {@link String} template
35
+ *
36
+ * @see MinusOne
37
+ * @see MinusOneNumber
38
+ * @see MinusOneBigInt
39
+ * @see Template
40
+ * @see TemplateOrMinusOne
41
+ * @see NumericTemplate
42
+ * @see NumberTemplate
43
+ * @see BigIntTemplate
44
+ */
45
+ export type MinusOneTemplate<T extends | -1 | -1n = | -1 | -1n, > = `${T}`
46
+
47
+ /**
48
+ * A type-alias for <b>-1</b> (as a {@link Number} or a {@link BigInt})
49
+ * as a primitive or in a {@link String} template
50
+ *
51
+ * @see MinusOne
52
+ * @see MinusOneNumber
53
+ * @see MinusOneBigInt
54
+ * @see Template
55
+ * @see MinusOneTemplate
56
+ * @see TemplateOrMinusOneNumber
57
+ * @see TemplateOrMinusOneBigInt
58
+ * @see TemplateOrNumeric
59
+ * @see TemplateOrNumber
60
+ * @see TemplateOrBigInt
61
+ */
62
+ export type TemplateOrMinusOne<T extends | -1 | -1n = | -1 | -1n, > = | T | `${T}`
63
+ /**
64
+ * A type-alias for the {@link Number} <b>-1</b>
65
+ * as a primitive or in a {@link String} template
66
+ *
67
+ * @see MinusOne
68
+ * @see MinusOneNumber
69
+ * @see Template
70
+ * @see MinusOneTemplate
71
+ * @see TemplateOrMinusOne
72
+ * @see TemplateOrNumeric
73
+ * @see TemplateOrNumber
74
+ */
75
+ export type TemplateOrMinusOneNumber<T extends -1 = -1, > = | T | `${T}`
76
+ /**
77
+ * A type-alias for the {@link BigInt} <b>-1</b>
78
+ * as a primitive or in a {@link String} template
79
+ *
80
+ * @see MinusOne
81
+ * @see MinusOneBigInt
82
+ * @see Template
83
+ * @see MinusOneTemplate
84
+ * @see TemplateOrMinusOne
85
+ * @see TemplateOrNumeric
86
+ * @see TemplateOrBigInt
87
+ */
88
+ export type TemplateOrMinusOneBigInt<T extends -1n = -1n, > = | T | `${T}`
@@ -0,0 +1,90 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ /**
9
+ * A type-alias for <b>0</b> (as a {@link Number} or a {@link BigInt})
10
+ * as a primitive
11
+ *
12
+ * @see Numeric
13
+ * @see MinusOneNumber
14
+ * @see MinusOneBigInt
15
+ */
16
+ export type Zero<T extends | 0 | 0n = | 0 | 0n, > = T
17
+ /**
18
+ * A type-alias for the {@link Number} <b>0</b>
19
+ * as a primitive
20
+ *
21
+ * @see Zero
22
+ */
23
+ export type ZeroNumber<T extends 0 = 0, > = T
24
+ /**
25
+ * A type-alias for the {@link BigInt} <b>0</b>
26
+ * as a primitive
27
+ *
28
+ * @see Zero
29
+ */
30
+ export type ZeroBigInt<T extends 0n = 0n, > = T
31
+
32
+ /**
33
+ * A type-alias for <b>0</b> (as a {@link Number} or a {@link BigInt})
34
+ * in a {@link String} template
35
+ *
36
+ * @see Zero
37
+ * @see ZeroNumber
38
+ * @see ZeroBigInt
39
+ * @see Template
40
+ * @see TemplateOrZero
41
+ * @see TemplateOrZeroNumber
42
+ * @see TemplateOrZeroBigInt
43
+ * @see NumericTemplate
44
+ * @see NumberTemplate
45
+ * @see BigIntTemplate
46
+ */
47
+ export type ZeroTemplate<T extends | 0 | 0n = | 0 | 0n, > = `${T}`
48
+
49
+ /**
50
+ * A type-alias for <b>0</b> (as a {@link Number} or a {@link BigInt})
51
+ * as a primitive or in a {@link String} template
52
+ *
53
+ * @see Zero
54
+ * @see ZeroNumber
55
+ * @see ZeroBigInt
56
+ * @see Template
57
+ * @see ZeroTemplate
58
+ * @see TemplateOrZeroNumber
59
+ * @see TemplateOrZeroBigInt
60
+ * @see TemplateOrNumeric
61
+ * @see TemplateOrNumber
62
+ * @see TemplateOrBigInt
63
+ */
64
+ export type TemplateOrZero<T extends | 0 | 0n = | 0 | 0n, > = | T | `${T}`
65
+ /**
66
+ * A type-alias for the {@link Number} <b>0</b>
67
+ * as a primitive or in a {@link String} template
68
+ *
69
+ * @see Zero
70
+ * @see ZeroNumber
71
+ * @see Template
72
+ * @see ZeroTemplate
73
+ * @see TemplateOrZero
74
+ * @see TemplateOrNumeric
75
+ * @see TemplateOrNumber
76
+ */
77
+ export type TemplateOrZeroNumber<T extends 0 = 0, > = | T | `${T}`
78
+ /**
79
+ * A type-alias for the {@link BigInt} <b>0</b>
80
+ * as a primitive or in a {@link String} template
81
+ *
82
+ * @see Zero
83
+ * @see ZeroBigInt
84
+ * @see Template
85
+ * @see ZeroTemplate
86
+ * @see TemplateOrZero
87
+ * @see TemplateOrNumeric
88
+ * @see TemplateOrBigInt
89
+ */
90
+ export type TemplateOrZeroBigInt<T extends 0n = 0n, > = | T | `${T}`
@@ -0,0 +1,90 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ /**
9
+ * A type-alias for <b>1</b> (as a {@link Number} or a {@link BigInt})
10
+ * as a primitive
11
+ *
12
+ * @see Numeric
13
+ * @see MinusOneNumber
14
+ * @see MinusOneBigInt
15
+ */
16
+ export type One<T extends | 1 | 1n = | 1 | 1n, > = T
17
+ /**
18
+ * A type-alias for the {@link Number} <b>1</b>
19
+ * as a primitive
20
+ *
21
+ * @see One
22
+ */
23
+ export type OneNumber<T extends 1 = 1, > = T
24
+ /**
25
+ * A type-alias for the {@link BigInt} <b>1</b>
26
+ * as a primitive
27
+ *
28
+ * @see One
29
+ */
30
+ export type OneBigInt<T extends 1n = 1n, > = T
31
+
32
+ /**
33
+ * A type-alias for <b>1</b> (as a {@link Number} or a {@link BigInt})
34
+ * in a {@link String} template
35
+ *
36
+ * @see One
37
+ * @see OneNumber
38
+ * @see OneBigInt
39
+ * @see Template
40
+ * @see TemplateOrOne
41
+ * @see TemplateOrOneNumber
42
+ * @see TemplateOrOneBigInt
43
+ * @see NumberTemplate
44
+ * @see BigIntTemplate
45
+ * @see NumericTemplate
46
+ */
47
+ export type OneTemplate<T extends | 1 | 1n = | 1 | 1n, > = `${T}`
48
+
49
+ /**
50
+ * A type-alias for <b>1</b> (as a {@link Number} or a {@link BigInt})
51
+ * as a primitive or in a {@link String} template
52
+ *
53
+ * @see One
54
+ * @see OneNumber
55
+ * @see OneBigInt
56
+ * @see Template
57
+ * @see OneTemplate
58
+ * @see TemplateOrOneNumber
59
+ * @see TemplateOrOneBigInt
60
+ * @see TemplateOrNumeric
61
+ * @see TemplateOrNumber
62
+ * @see TemplateOrBigInt
63
+ */
64
+ export type TemplateOrOne<T extends | 1 | 1n = | 1 | 1n, > = | T | `${T}`
65
+ /**
66
+ * A type-alias for the {@link Number} <b>1</b>
67
+ * as a primitive or in a {@link String} template
68
+ *
69
+ * @see One
70
+ * @see OneBigInt
71
+ * @see Template
72
+ * @see OneTemplate
73
+ * @see TemplateOrOne
74
+ * @see TemplateOrNumeric
75
+ * @see TemplateOrNumber
76
+ */
77
+ export type TemplateOrOneNumber<T extends 1 = 1, > = | T | `${T}`
78
+ /**
79
+ * A type-alias for the {@link BigInt} <b>1</b>
80
+ * as a primitive or in a {@link String} template
81
+ *
82
+ * @see One
83
+ * @see OneBigInt
84
+ * @see Template
85
+ * @see OneTemplate
86
+ * @see TemplateOrOne
87
+ * @see TemplateOrNumeric
88
+ * @see TemplateOrBigInt
89
+ */
90
+ export type TemplateOrOneBigInt<T extends 1n = 1n, > = | T | `${T}`
@@ -0,0 +1,86 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ /**
9
+ * A type-alias for <b>2</b> (as a {@link Number} or a {@link BigInt})
10
+ * as a primitive
11
+ *
12
+ * @see Numeric
13
+ * @see MinusTwoNumber
14
+ * @see MinusTwoBigInt
15
+ */
16
+ export type Two<T extends | 2 | 2n = | 2 | 2n, > = T
17
+ /**
18
+ * A type-alias for the {@link Number} <b>2</b>
19
+ * as a primitive
20
+ *
21
+ * @see Two
22
+ */
23
+ export type TwoNumber<T extends 2 = 2, > = T
24
+ /**
25
+ * A type-alias for the {@link BigInt} <b>2</b>
26
+ * as a primitive
27
+ *
28
+ * @see Two
29
+ */
30
+ export type TwoBigInt<T extends 2n = 2n, > = T
31
+
32
+ /**
33
+ * A type-alias for <b>2</b> (as a {@link Number} or a {@link BigInt})
34
+ * in a {@link String} template
35
+ *
36
+ * @see Two
37
+ * @see TwoNumber
38
+ * @see TwoBigInt
39
+ * @see Template
40
+ * @see TemplateOrTwo
41
+ * @see NumberTemplate
42
+ * @see BigIntTemplate
43
+ * @see NumericTemplate
44
+ */
45
+ export type TwoTemplate<T extends | 2 | 2n = | 2 | 2n, > = `${T}`
46
+
47
+ /**
48
+ * A type-alias for <b>2</b> (as a {@link Number} or a {@link BigInt})
49
+ * as a primitive or in a {@link String} template
50
+ *
51
+ * @see Two
52
+ * @see TwoNumber
53
+ * @see TwoBigInt
54
+ * @see Template
55
+ * @see TwoTemplate
56
+ * @see TemplateOrTwoNumber
57
+ * @see TemplateOrTwoBigInt
58
+ * @see TemplateOrNumeric
59
+ * @see TemplateOrNumber
60
+ * @see TemplateOrBigInt
61
+ */
62
+ export type TemplateOrTwo<T extends | 2 | 2n = | 2 | 2n, > = | T | `${T}`
63
+ /**
64
+ * A type-alias for the {@link Number} <b>2</b>
65
+ * as a primitive or in a {@link String} template
66
+ *
67
+ * @see Two
68
+ * @see TwoNumber
69
+ * @see Template
70
+ * @see TwoTemplate
71
+ * @see TemplateOrTwo
72
+ * @see TemplateOrNumber
73
+ */
74
+ export type TemplateOrTwoNumber<T extends 2 = 2, > = | T | `${T}`
75
+ /**
76
+ * A type-alias for the {@link BigInt} <b>2</b>
77
+ * as a primitive or in a {@link String} template
78
+ *
79
+ * @see Two
80
+ * @see TwoBigInt
81
+ * @see Template
82
+ * @see TwoTemplate
83
+ * @see TemplateOrTwo
84
+ * @see TemplateOrBigInt
85
+ */
86
+ export type TemplateOrTwoBigInt<T extends 2n = 2n, > = | T | `${T}`
@@ -0,0 +1,44 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ /** A type-alias for a {@link BigInt}
9
+ * in a {@link String} template
10
+ *
11
+ * @see Template
12
+ * @see NumericTemplate
13
+ */
14
+ export type BigIntTemplate<T extends bigint = bigint, > = `${T}`
15
+
16
+ /**
17
+ * A type-alias for a {@link BigInt}
18
+ * as a primitive or in a {@link String} template
19
+ *
20
+ * @see Template
21
+ * @see TemplateOrNumeric
22
+ * @see TemplateOrBigIntOrObject
23
+ */
24
+ export type TemplateOrBigInt<T extends bigint = bigint, > = | T | `${T}`
25
+
26
+ /**
27
+ * A type-alias for a {@link BigInt}
28
+ * as a primitive or an object
29
+ *
30
+ * @see NumericOrObject
31
+ * @see TemplateOrBigIntOrObject
32
+ */
33
+ export type BigIntOrObject<T extends bigint = bigint, > = | T | BigInt
34
+
35
+ /**
36
+ * A type-alias for a {@link BigInt}
37
+ * as a primitive, an object or in a {@link String} template
38
+ *
39
+ * @see Template
40
+ * @see TemplateOrBigInt
41
+ * @see BigIntOrObject
42
+ * @see TemplateOrNumericOrObject
43
+ */
44
+ export type TemplateOrBigIntOrObject<T extends bigint = bigint, > = | T | BigInt | `${T}`
@@ -0,0 +1,45 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ /**
9
+ * A type-alias for a {@link Number}
10
+ * in a {@link String} template
11
+ *
12
+ * @see Template
13
+ * @see NumericTemplate
14
+ */
15
+ export type NumberTemplate<T extends number = number, > = `${T}`
16
+
17
+ /**
18
+ * A type-alias for a {@link Number}
19
+ * as a primitive or in a {@link String} template
20
+ *
21
+ * @see Template
22
+ * @see TemplateOrNumeric
23
+ * @see TemplateOrNumberOrObject
24
+ */
25
+ export type TemplateOrNumber<T extends number = number, > = | T | `${T}`
26
+
27
+ /**
28
+ * A type-alias for a {@link Number}
29
+ * as a primitive or an object
30
+ *
31
+ * @see NumericOrObject
32
+ * @see TemplateOrNumberOrObject
33
+ */
34
+ export type NumberOrObject<T extends number = number, > = | T | Number
35
+
36
+ /**
37
+ * A type-alias for a {@link Number}
38
+ * as a primitive, an object or in a {@link String} template
39
+ *
40
+ * @see Template
41
+ * @see TemplateOrNumber
42
+ * @see NumberOrObject
43
+ * @see TemplateOrNumericOrObject
44
+ */
45
+ export type TemplateOrNumberOrObject<T extends number = number, > = | T | Number | `${T}`
package/src/numeric.ts ADDED
@@ -0,0 +1,55 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ /** A type-alias for a {@link Number} or a {@link BigInt} as a primitive */
9
+ export type Numeric<T extends | number | bigint = | number | bigint, > = T
10
+
11
+ /**
12
+ * A type-alias for a value ({@link Number} or {@link BigInt})
13
+ * in a {@link String} template
14
+ *
15
+ * @see Numeric
16
+ * @see Template
17
+ * @see NumberTemplate
18
+ * @see BigIntTemplate
19
+ */
20
+ export type NumericTemplate<T extends Numeric = Numeric, > = `${T}`
21
+
22
+ /**
23
+ * A type-alias for a value ({@link Number} or {@link BigInt})
24
+ * as a primitive or in a {@link String} template
25
+ *
26
+ * @see Numeric
27
+ * @see Template
28
+ * @see TemplateOrNumber
29
+ * @see TemplateOrBigInt
30
+ * @see TemplateOrNumericOrObject
31
+ */
32
+ export type TemplateOrNumeric<T extends Numeric = Numeric, > = | T | `${T}`
33
+
34
+ /**
35
+ * A type-alias for a value ({@link Number} or {@link BigInt})
36
+ * as a primitive or an object
37
+ *
38
+ * @see Numeric
39
+ * @see NumberOrObject
40
+ * @see BigIntOrObject
41
+ * @see TemplateOrNumericOrObject
42
+ */
43
+ export type NumericOrObject<T extends Numeric = Numeric, > = | T | Number | BigInt
44
+
45
+ /**
46
+ * A type-alias for a value ({@link Number} or {@link BigInt})
47
+ * as a primitive, an object or in a {@link String} template
48
+ *
49
+ * @see Numeric
50
+ * @see Template
51
+ * @see TemplateOrNumberOrObject
52
+ * @see TemplateOrBigIntOrObject
53
+ * @see TemplateOrNumeric
54
+ */
55
+ export type TemplateOrNumericOrObject<T extends Numeric = Numeric, > = | T | Number | BigInt | `${T}`
@@ -0,0 +1,35 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ /** A type-alias for the {@link Boolean} <b>true</b> as a {@link String} */
9
+ export type TrueString = "true"
10
+ /** A type-alias for the {@link Boolean} <b>false</b> as a {@link String} */
11
+ export type FalseString = "false"
12
+
13
+ /** A type-alias for the {@link Number} <b>-1</b> as a {@link String} */
14
+ export type MinusOneString = "-1"
15
+ /** A type-alias for the {@link Number} <b>0</b> as a {@link String Character} */
16
+ export type ZeroString = '0'
17
+ /** A type-alias for the {@link Number} <b>1</b> as a {@link String Character} */
18
+ export type OneString = '1'
19
+ /** A type-alias for the {@link Number} <b>2</b> as a {@link String Character} */
20
+ export type TwoString = '2'
21
+
22
+ /** A type-alias for the "space" {@link String character} */
23
+ export type Space = ' '
24
+ /** A type-alias for the "tabulation" (\t) {@link String character} */
25
+ export type Tabulation = '\t'
26
+ /** A type-alias for the "enter" (\n) {@link String character} */
27
+ export type Enter = '\n'
28
+ /** A type-alias for the "comma" {@link String character} */
29
+ export type Comma = ','
30
+ /** A type-alias for the "point" {@link String character} */
31
+ export type Point = '.'
32
+ /** A type-alias for the "infinity" {@link String character} */
33
+ export type InfinityString = '∞'
34
+ /** A type-alias for the "suspension point" {@link String character} */
35
+ export type SuspensionPoint = '…'
package/src/string.ts ADDED
@@ -0,0 +1,59 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ /**
9
+ * A type-alias for a value
10
+ * ({@link String}, {@link Boolean} {@link Number}, {@link BigInt}, <b>null</b> or <b>undefined</b>)
11
+ * in a {@link String} template
12
+ */
13
+ export type Template<T extends | string | boolean | number | bigint | null | undefined = | string | boolean | number | bigint | null | undefined, > = `${T}`
14
+ /** A type-alias for a {@link String} as a primitive or an object */
15
+ export type StringOrObject<T extends string = string, > = | T | String
16
+
17
+ /**
18
+ * The possible hint received from javascript interpolation & conversion
19
+ *
20
+ * @see Symbol.toPrimitive
21
+ */
22
+ export type PossiblePrimitiveHint = "string" | "number" | "default"
23
+ /**
24
+ * The possible edge case {@link Number} to be converted to a {@link String}
25
+ *
26
+ * @see NaN
27
+ * @see Infinity
28
+ * @see Number.NaN
29
+ * @see Number.POSITIVE_INFINITY
30
+ * @see Number.NEGATIVE_INFINITY
31
+ */
32
+ export type PossibleEdgeCaseNumericName = | "NaN" | "Infinity" | "-Infinity"
33
+
34
+ /**
35
+ *
36
+ *
37
+ * @see PossibleTypescriptSymbolName
38
+ */
39
+ export type PossibleJavascriptSymbolName = | "asyncIterator" | "iterator"
40
+ | "hasInstance" | "isConcatSpreadable"
41
+ | "match" | "matchAll"
42
+ | "replace" | "search" | "split"
43
+ | "species"
44
+ | "toPrimitive" | "toStringTag"
45
+ | "unscopables"
46
+
47
+ /**
48
+ *
49
+ *
50
+ * @see PossibleJavascriptSymbolName
51
+ */
52
+ export type PossibleTypescriptSymbolName = | "asyncIterator" | "iterator"
53
+ | "asyncDispose" | "dispose"
54
+ | "hasInstance" | "isConcatSpreadable"
55
+ | "match" | "matchAll"
56
+ | "replace" | "search" | "split"
57
+ | "metadata" | "species"
58
+ | "toPrimitive" | "toStringTag"
59
+ | "unscopables"
package/src/symbol.ts ADDED
@@ -0,0 +1,40 @@
1
+ /*******************************************************************************
2
+ Copyright (c) 2023-2024. Jonathan Bédard ~ JóôòKiwi
3
+
4
+ This project is free to use.
5
+ All the right is reserved to the author of this project.
6
+ ******************************************************************************/
7
+
8
+ import type {PossibleJavascriptSymbolName, PossibleTypescriptSymbolName} from "./string"
9
+
10
+ /** A type-alias for an official Javascript {@link Symbol} as a primitive */
11
+ export type JavascriptSymbol<T extends PossibleJavascriptSymbolName = PossibleJavascriptSymbolName, > = typeof Symbol[T]
12
+ /** A type-alias for an official Typescript {@link Symbol} as a primitive */
13
+ export type TypescriptSymbol<T extends PossibleTypescriptSymbolName = PossibleTypescriptSymbolName, > = typeof Symbol[T]
14
+
15
+ /**
16
+ * A type-alias for a {@link Symbol}
17
+ * as a primitive or an object
18
+ *
19
+ * @see JavascriptSymbol
20
+ * @see TypescriptSymbol
21
+ * @see JavascriptSymbolOrObject
22
+ * @see TypescriptSymbolOrObject
23
+ */
24
+ export type SymbolOrObject<T extends symbol = symbol, > = | T | Symbol
25
+ /**
26
+ * A type-alias for an official Javascript {@link Symbol}
27
+ * as a primitive or an object
28
+ *
29
+ * @see JavascriptSymbol
30
+ * @see SymbolOrObject
31
+ */
32
+ export type JavascriptSymbolOrObject<T extends JavascriptSymbol = JavascriptSymbol, > = | T | Symbol
33
+ /**
34
+ * A type-alias for an official Typescript {@link Symbol}
35
+ * as a primitive or an object
36
+ *
37
+ * @see TypescriptSymbol
38
+ * @see SymbolOrObject
39
+ */
40
+ export type TypescriptSymbolOrObject<T extends TypescriptSymbol = TypescriptSymbol, > = | T | Symbol