@rogolev/value 0.0.1 → 0.0.2

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 (176) hide show
  1. package/.prettierignore +4 -4
  2. package/CHANGELOG.md +68 -56
  3. package/LICENSE +41 -41
  4. package/README.md +100 -91
  5. package/babel.config.json +20 -20
  6. package/docs/classes/Convert/toArray.md +100 -0
  7. package/docs/classes/Convert/toAssoc.md +90 -0
  8. package/docs/classes/Convert/toBool.md +72 -0
  9. package/docs/classes/Convert/toBoolean.md +72 -0
  10. package/docs/classes/Convert/toFloat.md +69 -0
  11. package/docs/classes/Convert/toInt.md +86 -0
  12. package/docs/classes/Convert/toInteger.md +86 -0
  13. package/docs/classes/Convert/toList.md +73 -0
  14. package/docs/classes/Convert/toObject.md +76 -0
  15. package/docs/classes/Convert/toString.md +125 -0
  16. package/docs/classes/Convert.md +44 -0
  17. package/docs/classes/Type/isArray.md +106 -0
  18. package/docs/classes/Type/isAssoc.md +57 -0
  19. package/docs/classes/Type/isBigInt.md +49 -0
  20. package/docs/classes/Type/isBool.md +51 -0
  21. package/docs/classes/Type/isBoolean.md +51 -0
  22. package/docs/classes/Type/isClass.md +60 -0
  23. package/docs/classes/Type/isEmpty.md +53 -0
  24. package/docs/classes/Type/isFloat.md +77 -0
  25. package/docs/classes/Type/isFunction.md +64 -0
  26. package/docs/classes/Type/isInfinity.md +59 -0
  27. package/docs/classes/Type/isInt.md +77 -0
  28. package/docs/classes/Type/isInteger.md +77 -0
  29. package/docs/classes/Type/isList.md +49 -0
  30. package/docs/classes/Type/isNaN.md +57 -0
  31. package/docs/classes/Type/isNull.md +49 -0
  32. package/docs/classes/Type/isNumber.md +60 -0
  33. package/docs/classes/Type/isNumeric.md +58 -0
  34. package/docs/classes/Type/isObject.md +53 -0
  35. package/docs/classes/Type/isScalar.md +54 -0
  36. package/docs/classes/Type/isString.md +54 -0
  37. package/docs/classes/Type/isSymbol.md +56 -0
  38. package/docs/classes/Type/isUndefined.md +52 -0
  39. package/docs/classes/Type.md +74 -0
  40. package/docs/classes.md +9 -0
  41. package/docs/helpers/array.md +80 -80
  42. package/docs/helpers/empty.md +77 -77
  43. package/docs/helpers/gettype.md +69 -69
  44. package/docs/helpers/is_array.md +105 -105
  45. package/docs/helpers/is_assoc.md +59 -59
  46. package/docs/helpers/is_bigint.md +57 -57
  47. package/docs/helpers/is_bool.md +50 -50
  48. package/docs/helpers/is_boolean.md +50 -50
  49. package/docs/helpers/is_class.md +73 -73
  50. package/docs/helpers/is_float.md +71 -71
  51. package/docs/helpers/is_function.md +62 -62
  52. package/docs/helpers/is_infinity.md +61 -61
  53. package/docs/helpers/is_int.md +81 -81
  54. package/docs/helpers/is_integer.md +82 -82
  55. package/docs/helpers/is_list.md +51 -51
  56. package/docs/helpers/is_nan.md +59 -59
  57. package/docs/helpers/is_null.md +49 -49
  58. package/docs/helpers/is_number.md +67 -67
  59. package/docs/helpers/is_numeric.md +76 -76
  60. package/docs/helpers/is_object.md +69 -69
  61. package/docs/helpers/is_scalar.md +60 -60
  62. package/docs/helpers/is_string.md +58 -58
  63. package/docs/helpers/is_symbol.md +58 -58
  64. package/docs/helpers/is_undefined.md +56 -56
  65. package/docs/helpers/print.md +187 -187
  66. package/docs/helpers/print_type.md +225 -225
  67. package/docs/helpers/settype.md +78 -78
  68. package/docs/helpers/to_array.md +106 -106
  69. package/docs/helpers/to_assoc.md +91 -91
  70. package/docs/helpers/to_bool.md +76 -76
  71. package/docs/helpers/to_boolean.md +77 -77
  72. package/docs/helpers/to_float.md +70 -70
  73. package/docs/helpers/to_int.md +87 -87
  74. package/docs/helpers/to_integer.md +87 -87
  75. package/docs/helpers/to_list.md +47 -47
  76. package/docs/helpers/to_object.md +76 -76
  77. package/docs/helpers/to_string.md +134 -134
  78. package/docs/helpers.md +51 -51
  79. package/docs/types/NaN.md +30 -30
  80. package/docs/types/array.md +252 -252
  81. package/docs/types/bigint.md +34 -34
  82. package/docs/types/boolean.md +47 -47
  83. package/docs/types/class.md +36 -36
  84. package/docs/types/float.md +35 -35
  85. package/docs/types/function.md +121 -121
  86. package/docs/types/infinity.md +32 -32
  87. package/docs/types/integer.md +35 -35
  88. package/docs/types/null.md +23 -23
  89. package/docs/types/object.md +62 -62
  90. package/docs/types/string.md +33 -33
  91. package/docs/types/symbol.md +29 -29
  92. package/docs/types/undefined.md +25 -25
  93. package/docs/types.md +44 -44
  94. package/eslint.config.mjs +1664 -1664
  95. package/index.mjs +40 -37
  96. package/jest.config.mjs +31 -31
  97. package/package.json +48 -47
  98. package/prettier.config.mjs +224 -224
  99. package/src/classes/Convert.mjs +819 -0
  100. package/src/classes/Type.mjs +1285 -0
  101. package/src/helpers/array.mjs +107 -107
  102. package/src/helpers/empty.mjs +70 -70
  103. package/src/helpers/gettype.mjs +133 -133
  104. package/src/helpers/is_array.mjs +128 -128
  105. package/src/helpers/is_assoc.mjs +51 -51
  106. package/src/helpers/is_bigint.mjs +47 -47
  107. package/src/helpers/is_bool.mjs +43 -43
  108. package/src/helpers/is_boolean.mjs +43 -43
  109. package/src/helpers/is_class.mjs +87 -87
  110. package/src/helpers/is_float.mjs +67 -67
  111. package/src/helpers/is_function.mjs +74 -74
  112. package/src/helpers/is_infinity.mjs +52 -52
  113. package/src/helpers/is_int.mjs +57 -57
  114. package/src/helpers/is_integer.mjs +74 -74
  115. package/src/helpers/is_list.mjs +43 -43
  116. package/src/helpers/is_nan.mjs +51 -51
  117. package/src/helpers/is_null.mjs +37 -37
  118. package/src/helpers/is_number.mjs +49 -49
  119. package/src/helpers/is_numeric.mjs +64 -64
  120. package/src/helpers/is_object.mjs +72 -72
  121. package/src/helpers/is_scalar.mjs +45 -45
  122. package/src/helpers/is_string.mjs +46 -46
  123. package/src/helpers/is_symbol.mjs +46 -46
  124. package/src/helpers/is_undefined.mjs +44 -44
  125. package/src/helpers/print.mjs +245 -245
  126. package/src/helpers/print_type.mjs +261 -261
  127. package/src/helpers/settype.mjs +101 -101
  128. package/src/helpers/to_array.mjs +118 -118
  129. package/src/helpers/to_assoc.mjs +98 -98
  130. package/src/helpers/to_bool.mjs +68 -68
  131. package/src/helpers/to_boolean.mjs +64 -64
  132. package/src/helpers/to_float.mjs +72 -72
  133. package/src/helpers/to_int.mjs +93 -93
  134. package/src/helpers/to_integer.mjs +81 -81
  135. package/src/helpers/to_list.mjs +56 -56
  136. package/src/helpers/to_object.mjs +94 -94
  137. package/src/helpers/to_string.mjs +157 -157
  138. package/tests/classes/Convert.test.mjs +399 -0
  139. package/tests/classes/Type.test.mjs +1263 -0
  140. package/tests/helpers/array.test.mjs +58 -58
  141. package/tests/helpers/empty.test.mjs +22 -22
  142. package/tests/helpers/gettype.test.mjs +74 -74
  143. package/tests/helpers/is_array.test.mjs +404 -404
  144. package/tests/helpers/is_assoc.test.mjs +42 -42
  145. package/tests/helpers/is_bigint.test.mjs +51 -51
  146. package/tests/helpers/is_bool.test.mjs +43 -43
  147. package/tests/helpers/is_boolean.test.mjs +43 -43
  148. package/tests/helpers/is_class.test.mjs +84 -84
  149. package/tests/helpers/is_float.test.mjs +87 -87
  150. package/tests/helpers/is_function.test.mjs +83 -83
  151. package/tests/helpers/is_infinity.test.mjs +46 -46
  152. package/tests/helpers/is_int.test.mjs +45 -45
  153. package/tests/helpers/is_integer.test.mjs +64 -64
  154. package/tests/helpers/is_list.test.mjs +42 -42
  155. package/tests/helpers/is_nan.test.mjs +43 -43
  156. package/tests/helpers/is_null.test.mjs +17 -17
  157. package/tests/helpers/is_number.test.mjs +25 -25
  158. package/tests/helpers/is_numeric.test.mjs +30 -30
  159. package/tests/helpers/is_object.test.mjs +52 -52
  160. package/tests/helpers/is_scalar.test.mjs +21 -21
  161. package/tests/helpers/is_string.test.mjs +20 -20
  162. package/tests/helpers/is_symbol.test.mjs +20 -20
  163. package/tests/helpers/is_undefined.test.mjs +18 -18
  164. package/tests/helpers/print.test.mjs +62 -62
  165. package/tests/helpers/print_type.test.mjs +62 -62
  166. package/tests/helpers/settype.test.mjs +34 -34
  167. package/tests/helpers/to_array.test.mjs +38 -38
  168. package/tests/helpers/to_assoc.test.mjs +33 -33
  169. package/tests/helpers/to_bool.test.mjs +51 -51
  170. package/tests/helpers/to_boolean.test.mjs +51 -51
  171. package/tests/helpers/to_float.test.mjs +26 -26
  172. package/tests/helpers/to_int.test.mjs +48 -48
  173. package/tests/helpers/to_integer.test.mjs +48 -48
  174. package/tests/helpers/to_list.test.mjs +32 -32
  175. package/tests/helpers/to_object.test.mjs +36 -36
  176. package/tests/helpers/to_string.test.mjs +71 -71
@@ -1,107 +1,107 @@
1
- import is_array from './is_array.mjs';
2
- import is_assoc from './is_assoc.mjs';
3
-
4
- /**
5
- * Создаёт массив из переданных значений, обрабатывая ассоциативные массивы (объекты с ключами).
6
- *
7
- * ### Параметры
8
- *
9
- * - `values` {...any}
10
- *
11
- * Один или несколько элементов, которые могут быть массивами, объектами или другими значениями.
12
- *
13
- * ### Описание
14
- *
15
- * Функция принимает произвольное количество аргументов и возвращает массив, содержащий переданные значения.
16
- * Если среди переданных значений есть ассоциативные массивы (объекты, не являющиеся массивами и с ненулевым прототипом),
17
- * они преобразуются:
18
- *
19
- * - Создаётся новый объект без прототипа.
20
- * - Добавляются все свойства исходного объекта.
21
- * - Добавляется итератор, позволяющий использовать объект в цикле `for-of` для получения пар `[ключ, значение]`.
22
- *
23
- * Если передано только одно значение, и это массив, функция возвращает его напрямую.
24
- *
25
- * ### Возвращаемое значение
26
- *
27
- * Массив, содержащий переданные значения, с преобразованием ассоциативных массивов.
28
- * Если передано одно значение и это массив, возвращается он сам.
29
- *
30
- * ### Примеры использования
31
- *
32
- * 1. Простые массивы:
33
- *
34
- * ```js
35
- * const result = array([1, 2, 3]);
36
- * console.log(result); // [1, 2, 3]
37
- * ```
38
- *
39
- * 2. Ассоциативные массивы (объекты с ключами и значениями):
40
- *
41
- * ```js
42
- * const result = array({ foo: 'bar', baz: 42 });
43
- * for (const [key, value] of result[0]) {
44
- * console.log(key, value);
45
- * }
46
- * // Вывод:
47
- * // foo bar
48
- * // baz 42
49
- * ```
50
- *
51
- * 3. Смешанные значения:
52
- *
53
- * ```js
54
- * const result = array([1, 2, 3], { foo: 'bar' }, 'hello');
55
- * console.log(result);
56
- * // Вывод: [[1, 2, 3], { foo: 'bar' }, 'hello']
57
- * ```
58
- *
59
- * 4. Объекты, созданные без прототипа:
60
- *
61
- * ```js
62
- * const noProtoObject = Object.create(null);
63
- * noProtoObject.foo = 'bar';
64
- * const result = array(noProtoObject);
65
- * for (const [key, value] of result[0]) {
66
- * console.log(key, value);
67
- * }
68
- * // Вывод:
69
- * // foo bar
70
- * ```
71
- *
72
- * @param {...any} values - Один или несколько элементов, которые могут быть массивами, объектами или другими значениями.
73
- * @returns {Array|Object} Массив, содержащий переданные значения, с преобразованием ассоциативных массивов.
74
- * Если передано одно значение и это массив, возвращается он сам.
75
- */
76
- export default function array(...values) {
77
- const result = [];
78
-
79
- for (const value of values) {
80
- if (is_assoc(value)) {
81
- const assoc = Object.create(null);
82
-
83
- Object.assign(assoc, value);
84
-
85
- Object.defineProperty(assoc, Symbol.iterator, {
86
- enumerable: false,
87
- writable: true,
88
- configurable: true,
89
- *value() {
90
- for (const key in this) {
91
- yield [key, this[key]];
92
- }
93
- },
94
- });
95
-
96
- result.push(assoc);
97
- } else {
98
- result.push(value);
99
- }
100
- }
101
-
102
- if (result.length === 1 && is_array(result[0])) {
103
- return result[0];
104
- }
105
-
106
- return result;
107
- }
1
+ import is_array from './is_array.mjs';
2
+ import is_assoc from './is_assoc.mjs';
3
+
4
+ /**
5
+ * Создаёт массив из переданных значений, обрабатывая ассоциативные массивы (объекты с ключами).
6
+ *
7
+ * ### Параметры
8
+ *
9
+ * - `values` {...any}
10
+ *
11
+ * Один или несколько элементов, которые могут быть массивами, объектами или другими значениями.
12
+ *
13
+ * ### Описание
14
+ *
15
+ * Функция принимает произвольное количество аргументов и возвращает массив, содержащий переданные значения.
16
+ * Если среди переданных значений есть ассоциативные массивы (объекты, не являющиеся массивами и с ненулевым прототипом),
17
+ * они преобразуются:
18
+ *
19
+ * - Создаётся новый объект без прототипа.
20
+ * - Добавляются все свойства исходного объекта.
21
+ * - Добавляется итератор, позволяющий использовать объект в цикле `for-of` для получения пар `[ключ, значение]`.
22
+ *
23
+ * Если передано только одно значение, и это массив, функция возвращает его напрямую.
24
+ *
25
+ * ### Возвращаемое значение
26
+ *
27
+ * Массив, содержащий переданные значения, с преобразованием ассоциативных массивов.
28
+ * Если передано одно значение и это массив, возвращается он сам.
29
+ *
30
+ * ### Примеры использования
31
+ *
32
+ * 1. Простые массивы:
33
+ *
34
+ * ```js
35
+ * const result = array([1, 2, 3]);
36
+ * console.log(result); // [1, 2, 3]
37
+ * ```
38
+ *
39
+ * 2. Ассоциативные массивы (объекты с ключами и значениями):
40
+ *
41
+ * ```js
42
+ * const result = array({ foo: 'bar', baz: 42 });
43
+ * for (const [key, value] of result[0]) {
44
+ * console.log(key, value);
45
+ * }
46
+ * // Вывод:
47
+ * // foo bar
48
+ * // baz 42
49
+ * ```
50
+ *
51
+ * 3. Смешанные значения:
52
+ *
53
+ * ```js
54
+ * const result = array([1, 2, 3], { foo: 'bar' }, 'hello');
55
+ * console.log(result);
56
+ * // Вывод: [[1, 2, 3], { foo: 'bar' }, 'hello']
57
+ * ```
58
+ *
59
+ * 4. Объекты, созданные без прототипа:
60
+ *
61
+ * ```js
62
+ * const noProtoObject = Object.create(null);
63
+ * noProtoObject.foo = 'bar';
64
+ * const result = array(noProtoObject);
65
+ * for (const [key, value] of result[0]) {
66
+ * console.log(key, value);
67
+ * }
68
+ * // Вывод:
69
+ * // foo bar
70
+ * ```
71
+ *
72
+ * @param {...any} values - Один или несколько элементов, которые могут быть массивами, объектами или другими значениями.
73
+ * @returns {Array|Object} Массив, содержащий переданные значения, с преобразованием ассоциативных массивов.
74
+ * Если передано одно значение и это массив, возвращается он сам.
75
+ */
76
+ export default function array(...values) {
77
+ const result = [];
78
+
79
+ for (const value of values) {
80
+ if (is_assoc(value)) {
81
+ const assoc = Object.create(null);
82
+
83
+ Object.assign(assoc, value);
84
+
85
+ Object.defineProperty(assoc, Symbol.iterator, {
86
+ enumerable: false,
87
+ writable: true,
88
+ configurable: true,
89
+ *value() {
90
+ for (const key in this) {
91
+ yield [key, this[key]];
92
+ }
93
+ },
94
+ });
95
+
96
+ result.push(assoc);
97
+ } else {
98
+ result.push(value);
99
+ }
100
+ }
101
+
102
+ if (result.length === 1 && is_array(result[0])) {
103
+ return result[0];
104
+ }
105
+
106
+ return result;
107
+ }
@@ -1,70 +1,70 @@
1
- import to_bool from './to_bool.mjs';
2
-
3
- /**
4
- * Проверяет, является ли переменная пустой.
5
- *
6
- * ### Описание
7
- *
8
- * Функция `empty` используется для проверки, является ли переменная пустой. Пустыми считаются значения `null`, `undefined`, пустая строка, `0`, `false`, пустой массив и пустой объект.
9
- *
10
- * ### Параметры
11
- *
12
- * - `value` (any)
13
- * Переменная, которую необходимо проверить на пустоту.
14
- *
15
- * ### Возвращаемое значение
16
- *
17
- * Возвращает `true`, если переменная пустая, и `false` в противном случае.
18
- *
19
- * ### Примеры использования
20
- *
21
- * 1. Проверка пустых значений:
22
- *
23
- * ```js
24
- * const result1 = empty(null);
25
- * // Результат: true
26
- *
27
- * const result2 = empty(undefined);
28
- * // Результат: true
29
- *
30
- * const result3 = empty('');
31
- * // Результат: true
32
- *
33
- * const result4 = empty(0);
34
- * // Результат: true
35
- *
36
- * const result5 = empty(false);
37
- * // Результат: true
38
- *
39
- * const result6 = empty([]);
40
- * // Результат: true
41
- *
42
- * const result7 = empty({});
43
- * // Результат: true
44
- * ```
45
- *
46
- * 2. Проверка непустых значений:
47
- *
48
- * ```js
49
- * const result1 = empty('example');
50
- * // Результат: false
51
- *
52
- * const result2 = empty(123);
53
- * // Результат: false
54
- *
55
- * const result3 = empty(true);
56
- * // Результат: false
57
- *
58
- * const result4 = empty([1, 2, 3]);
59
- * // Результат: false
60
- *
61
- * const result5 = empty({ key: 'value' });
62
- * // Результат: false
63
- * ```
64
- *
65
- * @param {any} value Переменная, которую необходимо проверить на пустоту.
66
- * @returns {boolean} Возвращает `true`, если переменная пустая, и `false` в противном случае.
67
- */
68
- export default function empty(value) {
69
- return !to_bool(value);
70
- }
1
+ import to_bool from './to_bool.mjs';
2
+
3
+ /**
4
+ * Проверяет, является ли переменная пустой.
5
+ *
6
+ * ### Описание
7
+ *
8
+ * Функция `empty` используется для проверки, является ли переменная пустой. Пустыми считаются значения `null`, `undefined`, пустая строка, `0`, `false`, пустой массив и пустой объект.
9
+ *
10
+ * ### Параметры
11
+ *
12
+ * - `value` (any)
13
+ * Переменная, которую необходимо проверить на пустоту.
14
+ *
15
+ * ### Возвращаемое значение
16
+ *
17
+ * Возвращает `true`, если переменная пустая, и `false` в противном случае.
18
+ *
19
+ * ### Примеры использования
20
+ *
21
+ * 1. Проверка пустых значений:
22
+ *
23
+ * ```js
24
+ * const result1 = empty(null);
25
+ * // Результат: true
26
+ *
27
+ * const result2 = empty(undefined);
28
+ * // Результат: true
29
+ *
30
+ * const result3 = empty('');
31
+ * // Результат: true
32
+ *
33
+ * const result4 = empty(0);
34
+ * // Результат: true
35
+ *
36
+ * const result5 = empty(false);
37
+ * // Результат: true
38
+ *
39
+ * const result6 = empty([]);
40
+ * // Результат: true
41
+ *
42
+ * const result7 = empty({});
43
+ * // Результат: true
44
+ * ```
45
+ *
46
+ * 2. Проверка непустых значений:
47
+ *
48
+ * ```js
49
+ * const result1 = empty('example');
50
+ * // Результат: false
51
+ *
52
+ * const result2 = empty(123);
53
+ * // Результат: false
54
+ *
55
+ * const result3 = empty(true);
56
+ * // Результат: false
57
+ *
58
+ * const result4 = empty([1, 2, 3]);
59
+ * // Результат: false
60
+ *
61
+ * const result5 = empty({ key: 'value' });
62
+ * // Результат: false
63
+ * ```
64
+ *
65
+ * @param {any} value Переменная, которую необходимо проверить на пустоту.
66
+ * @returns {boolean} Возвращает `true`, если переменная пустая, и `false` в противном случае.
67
+ */
68
+ export default function empty(value) {
69
+ return !to_bool(value);
70
+ }
@@ -1,133 +1,133 @@
1
- import is_array from './is_array.mjs';
2
- import is_class from './is_class.mjs';
3
- import is_float from './is_float.mjs';
4
- import is_infinity from './is_infinity.mjs';
5
- import is_int from './is_int.mjs';
6
- import is_nan from './is_nan.mjs';
7
- import is_null from './is_null.mjs';
8
- import is_object from './is_object.mjs';
9
- import is_bigint from './is_bigint.mjs';
10
- import is_undefined from './is_undefined.mjs';
11
- import is_bool from './is_bool.mjs';
12
- import is_string from './is_string.mjs';
13
- import is_symbol from './is_symbol.mjs';
14
- import is_function from './is_function.mjs';
15
-
16
- /**
17
- * Определяет тип переданного значения.
18
- *
19
- * ### Параметры
20
- *
21
- * - `value` (any)
22
- * Значение, тип которого необходимо определить.
23
- *
24
- * ### Описание
25
- *
26
- * Функция `gettype` определяет тип переданного значения, используя различные проверки.
27
- *
28
- * Она выполняет следующие проверки:
29
- *
30
- * 1. **Null**: Проверяет, является ли значение `null`.
31
- * 2. **NaN**: Проверяет, является ли значение `NaN`.
32
- * 3. **Undefined**: Проверяет, является ли значение `undefined`.
33
- * 4. **Infinity**: Проверяет, является ли значение бесконечностью.
34
- * 5. **Boolean**: Проверяет, является ли значение логическим.
35
- * 6. **Integer**: Проверяет, является ли значение целым числом.
36
- * 7. **BigInt**: Проверяет, является ли значение типом BigInt.
37
- * 8. **Float**: Проверяет, является ли значение числом с плавающей точкой.
38
- * 9. **String**: Проверяет, является ли значение строкой.
39
- * 10. **Symbol**: Проверяет, является ли значение символом.
40
- * 11. **Class**: Проверяет, является ли значение классом.
41
- * 12. **Function**: Проверяет, является ли значение функцией.
42
- * 13. **Array**: Проверяет, является ли значение массивом.
43
- * 14. **Object**: Проверяет, является ли значение объектом.
44
- *
45
- * Если значение не соответствует ни одному из этих типов, функция возвращает результат `typeof value`.
46
- *
47
- * ### Возвращаемое значение
48
- *
49
- * Возвращает строку, представляющую тип значения.
50
- *
51
- * ### Примеры использования
52
- *
53
- * ```js
54
- * class MyClass {}
55
- *
56
- * gettype(null); // "null"
57
- * gettype(NaN); // "NaN"
58
- * gettype(undefined); // "undefined"
59
- * gettype(Infinity); // "infinity"
60
- * gettype(true); // "boolean"
61
- * gettype(42); // "integer"
62
- * gettype(BigInt(123456)); // "bigint"
63
- * gettype(3.14); // "float"
64
- * gettype('hello'); // "string"
65
- * gettype(Symbol('symbol')); // "symbol"
66
- * gettype(MyClass); // "class"
67
- * gettype(() => {}); // "function"
68
- * gettype([]); // "array"
69
- * gettype(new MyClass()); // "object"
70
- * ```
71
- *
72
- * @param {any} value Значение, тип которого необходимо определить.
73
- * @returns {string} Возвращает строку, представляющую тип значения.
74
- */
75
- export default function gettype(value) {
76
- if (is_null(value)) {
77
- return 'null';
78
- }
79
-
80
- if (is_nan(value)) {
81
- return 'NaN';
82
- }
83
-
84
- if (is_undefined(value)) {
85
- return 'undefined';
86
- }
87
-
88
- if (is_infinity(value)) {
89
- return 'infinity';
90
- }
91
-
92
- if (is_bool(value)) {
93
- return 'boolean';
94
- }
95
-
96
- if (is_int(value)) {
97
- return 'integer';
98
- }
99
-
100
- if (is_bigint(value)) {
101
- return 'bigint';
102
- }
103
-
104
- if (is_float(value)) {
105
- return 'float';
106
- }
107
-
108
- if (is_string(value)) {
109
- return 'string';
110
- }
111
-
112
- if (is_symbol(value)) {
113
- return 'symbol';
114
- }
115
-
116
- if (is_class(value)) {
117
- return 'class';
118
- }
119
-
120
- if (is_function(value)) {
121
- return 'function';
122
- }
123
-
124
- if (is_array(value)) {
125
- return 'array';
126
- }
127
-
128
- if (is_object(value)) {
129
- return 'object';
130
- }
131
-
132
- return typeof value;
133
- }
1
+ import is_array from './is_array.mjs';
2
+ import is_class from './is_class.mjs';
3
+ import is_float from './is_float.mjs';
4
+ import is_infinity from './is_infinity.mjs';
5
+ import is_int from './is_int.mjs';
6
+ import is_nan from './is_nan.mjs';
7
+ import is_null from './is_null.mjs';
8
+ import is_object from './is_object.mjs';
9
+ import is_bigint from './is_bigint.mjs';
10
+ import is_undefined from './is_undefined.mjs';
11
+ import is_bool from './is_bool.mjs';
12
+ import is_string from './is_string.mjs';
13
+ import is_symbol from './is_symbol.mjs';
14
+ import is_function from './is_function.mjs';
15
+
16
+ /**
17
+ * Определяет тип переданного значения.
18
+ *
19
+ * ### Параметры
20
+ *
21
+ * - `value` (any)
22
+ * Значение, тип которого необходимо определить.
23
+ *
24
+ * ### Описание
25
+ *
26
+ * Функция `gettype` определяет тип переданного значения, используя различные проверки.
27
+ *
28
+ * Она выполняет следующие проверки:
29
+ *
30
+ * 1. **Null**: Проверяет, является ли значение `null`.
31
+ * 2. **NaN**: Проверяет, является ли значение `NaN`.
32
+ * 3. **Undefined**: Проверяет, является ли значение `undefined`.
33
+ * 4. **Infinity**: Проверяет, является ли значение бесконечностью.
34
+ * 5. **Boolean**: Проверяет, является ли значение логическим.
35
+ * 6. **Integer**: Проверяет, является ли значение целым числом.
36
+ * 7. **BigInt**: Проверяет, является ли значение типом BigInt.
37
+ * 8. **Float**: Проверяет, является ли значение числом с плавающей точкой.
38
+ * 9. **String**: Проверяет, является ли значение строкой.
39
+ * 10. **Symbol**: Проверяет, является ли значение символом.
40
+ * 11. **Class**: Проверяет, является ли значение классом.
41
+ * 12. **Function**: Проверяет, является ли значение функцией.
42
+ * 13. **Array**: Проверяет, является ли значение массивом.
43
+ * 14. **Object**: Проверяет, является ли значение объектом.
44
+ *
45
+ * Если значение не соответствует ни одному из этих типов, функция возвращает результат `typeof value`.
46
+ *
47
+ * ### Возвращаемое значение
48
+ *
49
+ * Возвращает строку, представляющую тип значения.
50
+ *
51
+ * ### Примеры использования
52
+ *
53
+ * ```js
54
+ * class MyClass {}
55
+ *
56
+ * gettype(null); // "null"
57
+ * gettype(NaN); // "NaN"
58
+ * gettype(undefined); // "undefined"
59
+ * gettype(Infinity); // "infinity"
60
+ * gettype(true); // "boolean"
61
+ * gettype(42); // "integer"
62
+ * gettype(BigInt(123456)); // "bigint"
63
+ * gettype(3.14); // "float"
64
+ * gettype('hello'); // "string"
65
+ * gettype(Symbol('symbol')); // "symbol"
66
+ * gettype(MyClass); // "class"
67
+ * gettype(() => {}); // "function"
68
+ * gettype([]); // "array"
69
+ * gettype(new MyClass()); // "object"
70
+ * ```
71
+ *
72
+ * @param {any} value Значение, тип которого необходимо определить.
73
+ * @returns {string} Возвращает строку, представляющую тип значения.
74
+ */
75
+ export default function gettype(value) {
76
+ if (is_null(value)) {
77
+ return 'null';
78
+ }
79
+
80
+ if (is_nan(value)) {
81
+ return 'NaN';
82
+ }
83
+
84
+ if (is_undefined(value)) {
85
+ return 'undefined';
86
+ }
87
+
88
+ if (is_infinity(value)) {
89
+ return 'infinity';
90
+ }
91
+
92
+ if (is_bool(value)) {
93
+ return 'boolean';
94
+ }
95
+
96
+ if (is_int(value)) {
97
+ return 'integer';
98
+ }
99
+
100
+ if (is_bigint(value)) {
101
+ return 'bigint';
102
+ }
103
+
104
+ if (is_float(value)) {
105
+ return 'float';
106
+ }
107
+
108
+ if (is_string(value)) {
109
+ return 'string';
110
+ }
111
+
112
+ if (is_symbol(value)) {
113
+ return 'symbol';
114
+ }
115
+
116
+ if (is_class(value)) {
117
+ return 'class';
118
+ }
119
+
120
+ if (is_function(value)) {
121
+ return 'function';
122
+ }
123
+
124
+ if (is_array(value)) {
125
+ return 'array';
126
+ }
127
+
128
+ if (is_object(value)) {
129
+ return 'object';
130
+ }
131
+
132
+ return typeof value;
133
+ }