@rogolev/value 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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,101 +1,101 @@
1
- import to_array from './to_array.mjs';
2
- import to_bool from './to_bool.mjs';
3
- import to_float from './to_float.mjs';
4
- import to_int from './to_int.mjs';
5
- import to_object from './to_object.mjs';
6
- import to_string from './to_string.mjs';
7
-
8
- /**
9
- * Приводит значение переменной к указанному типу.
10
- *
11
- * ### Описание
12
- *
13
- * Функция `settype` используется для преобразования значения переменной к указанному типу. Поддерживаются типы: `boolean`, `integer`, `float`, `string`, `array`, `object`.
14
- *
15
- * ### Параметры
16
- *
17
- * - `value` (any)
18
- * Переменная, значение которой необходимо привести к указанному типу.
19
- *
20
- * - `type` (string)
21
- * Тип, к которому необходимо привести значение переменной.
22
- *
23
- * ### Возвращаемое значение
24
- *
25
- * Возвращает значение переменной, приведенное к указанному типу.
26
- *
27
- * ### Примеры использования
28
- *
29
- * 1. Преобразование в булевое значение:
30
- *
31
- * ```js
32
- * const result = settype('true', 'boolean');
33
- * // Результат: true
34
- * ```
35
- *
36
- * 2. Преобразование в целое число:
37
- *
38
- * ```js
39
- * const result = settype('123', 'integer');
40
- * // Результат: 123
41
- * ```
42
- *
43
- * 3. Преобразование в число с плавающей точкой:
44
- *
45
- * ```js
46
- * const result = settype('123.45', 'float');
47
- * // Результат: 123.45
48
- * ```
49
- *
50
- * 4. Преобразование в строку:
51
- *
52
- * ```js
53
- * const result = settype(123, 'string');
54
- * // Результат: '123'
55
- * ```
56
- *
57
- * 5. Преобразование в массив:
58
- *
59
- * ```js
60
- * const result = settype('example', 'array');
61
- * // Результат: ['example']
62
- * ```
63
- *
64
- * 6. Преобразование в объект:
65
- *
66
- * ```js
67
- * const result = settype('example', 'object');
68
- * // Результат: { value: 'example' }
69
- * ```
70
- *
71
- * @param {any} value Переменная, значение которой необходимо привести к указанному типу.
72
- * @param {string} type Тип, к которому необходимо привести значение переменной.
73
- * @returns {any} Возвращает значение переменной, приведенное к указанному типу.
74
- */
75
- export default function settype(value, type) {
76
- if (type === 'boolean' || type === 'bool') {
77
- return to_bool(value);
78
- }
79
-
80
- if (type === 'integer' || type === 'int') {
81
- return to_int(value);
82
- }
83
-
84
- if (type === 'float') {
85
- return to_float(value);
86
- }
87
-
88
- if (type === 'string') {
89
- return to_string(value);
90
- }
91
-
92
- if (type === 'array') {
93
- return to_array(value);
94
- }
95
-
96
- if (type === 'object') {
97
- return to_object(value);
98
- }
99
-
100
- return value;
101
- }
1
+ import to_array from './to_array.mjs';
2
+ import to_bool from './to_bool.mjs';
3
+ import to_float from './to_float.mjs';
4
+ import to_int from './to_int.mjs';
5
+ import to_object from './to_object.mjs';
6
+ import to_string from './to_string.mjs';
7
+
8
+ /**
9
+ * Приводит значение переменной к указанному типу.
10
+ *
11
+ * ### Описание
12
+ *
13
+ * Функция `settype` используется для преобразования значения переменной к указанному типу. Поддерживаются типы: `boolean`, `integer`, `float`, `string`, `array`, `object`.
14
+ *
15
+ * ### Параметры
16
+ *
17
+ * - `value` (any)
18
+ * Переменная, значение которой необходимо привести к указанному типу.
19
+ *
20
+ * - `type` (string)
21
+ * Тип, к которому необходимо привести значение переменной.
22
+ *
23
+ * ### Возвращаемое значение
24
+ *
25
+ * Возвращает значение переменной, приведенное к указанному типу.
26
+ *
27
+ * ### Примеры использования
28
+ *
29
+ * 1. Преобразование в булевое значение:
30
+ *
31
+ * ```js
32
+ * const result = settype('true', 'boolean');
33
+ * // Результат: true
34
+ * ```
35
+ *
36
+ * 2. Преобразование в целое число:
37
+ *
38
+ * ```js
39
+ * const result = settype('123', 'integer');
40
+ * // Результат: 123
41
+ * ```
42
+ *
43
+ * 3. Преобразование в число с плавающей точкой:
44
+ *
45
+ * ```js
46
+ * const result = settype('123.45', 'float');
47
+ * // Результат: 123.45
48
+ * ```
49
+ *
50
+ * 4. Преобразование в строку:
51
+ *
52
+ * ```js
53
+ * const result = settype(123, 'string');
54
+ * // Результат: '123'
55
+ * ```
56
+ *
57
+ * 5. Преобразование в массив:
58
+ *
59
+ * ```js
60
+ * const result = settype('example', 'array');
61
+ * // Результат: ['example']
62
+ * ```
63
+ *
64
+ * 6. Преобразование в объект:
65
+ *
66
+ * ```js
67
+ * const result = settype('example', 'object');
68
+ * // Результат: { value: 'example' }
69
+ * ```
70
+ *
71
+ * @param {any} value Переменная, значение которой необходимо привести к указанному типу.
72
+ * @param {string} type Тип, к которому необходимо привести значение переменной.
73
+ * @returns {any} Возвращает значение переменной, приведенное к указанному типу.
74
+ */
75
+ export default function settype(value, type) {
76
+ if (type === 'boolean' || type === 'bool') {
77
+ return to_bool(value);
78
+ }
79
+
80
+ if (type === 'integer' || type === 'int') {
81
+ return to_int(value);
82
+ }
83
+
84
+ if (type === 'float') {
85
+ return to_float(value);
86
+ }
87
+
88
+ if (type === 'string') {
89
+ return to_string(value);
90
+ }
91
+
92
+ if (type === 'array') {
93
+ return to_array(value);
94
+ }
95
+
96
+ if (type === 'object') {
97
+ return to_object(value);
98
+ }
99
+
100
+ return value;
101
+ }
@@ -1,118 +1,118 @@
1
- import array from './array.mjs';
2
- import is_array from './is_array.mjs';
3
- import is_null from './is_null.mjs';
4
- import is_undefined from './is_undefined.mjs';
5
-
6
- /**
7
- * Приводит значение переменной к массиву.
8
- *
9
- * ### Описание
10
- *
11
- * Функция `to_array` используется для преобразования различных типов данных в массив. Если значение
12
- * уже является массивом (тип `Array` или ассоциативный массив), возвращается оно же. Объекты
13
- * (экземпляры классов) преобразуются в массив с одним элементом.
14
- *
15
- * #### Примечание
16
- *
17
- * Функция `to_array` для объектов (ассоциативных массивов) возвращает результат
18
- * работы функции `array`, которая создает объект-контейнер пар ключ-значение
19
- * (ассоциативный массив) с помощью конструкции `Object.create(null)`,
20
- * копирует все видимые пары в этот контейнер, а также добавляет итератор
21
- * `Symbol.iterator` для перебора контейнера в цикле `for-of`.
22
- *
23
- * ### Параметры
24
- *
25
- * - `value` (any)
26
- * Переменная, значение которой необходимо привести к массиву.
27
- *
28
- * ### Возвращаемое значение
29
- *
30
- * Возвращает массив, содержащий переданное значение. Если значение уже является массивом, возвращается оно же.
31
- *
32
- * ### Примеры использования
33
- *
34
- * 1. Преобразование строки в массив:
35
- *
36
- * ```js
37
- * const result = to_array('example');
38
- * // Результат: ["example"]
39
- * ```
40
- *
41
- * 2. Преобразование числа в массив:
42
- *
43
- * ```js
44
- * const result = to_array(123);
45
- * // Результат: [123]
46
- * ```
47
- *
48
- * 3. Преобразование массива (без изменений):
49
- *
50
- * ```js
51
- * const result = to_array([1, 2, 3]);
52
- * // Результат: [1, 2, 3]
53
- * ```
54
- *
55
- * 4. Преобразование объекта в массив:
56
- *
57
- * Функция `to_array` для объектов (ассоциативных массивов) возвращает
58
- * результат работы функции `array`, которая создает объект-контейнер
59
- * пар ключ-значение (ассоциативный массив) с помощью конструкции
60
- * `Object.create(null)`, копирует все видимые пары в этот контейнер,
61
- * а также добавляет итератор `Symbol.iterator` для перебора контейнера
62
- * в цикле `for-of`.
63
- *
64
- * ```js
65
- * const result = to_array({ key: 'value' });
66
- * // Результат: { key: "value" }
67
- *
68
- * const proto = Object.getPrototypeOf(result);
69
- * // Результат: null
70
- *
71
- * for (const [key, value] of result) {
72
- * console.log(key, value);
73
- * }
74
- * // Результат: 'key', 'value'
75
- * ```
76
- *
77
- * 5. Преобразование экземпляра класса в массив:
78
- *
79
- * ```js
80
- * class MyClass {}
81
- *
82
- * const instance = new MyClass();
83
- * const result = to_array(instance);
84
- * // Результат: [instance]
85
- * ```
86
- *
87
- * 6. Преобразование null:
88
- *
89
- * ```js
90
- * const result = to_array(null);
91
- * // Результат: []
92
- * ```
93
- *
94
- * 7. Преобразование undefined:
95
- *
96
- * ```js
97
- * const result = to_array(undefined);
98
- * // Результат: []
99
- * ```
100
- *
101
- * @param {any} value Переменная, значение которой необходимо привести к массиву.
102
- * @returns {Array|Object} Возвращает приведенное к массиву значение переменной `value`.
103
- */
104
- export default function to_array(value) {
105
- if (is_null(value) || is_undefined(value)) {
106
- return [];
107
- }
108
-
109
- if (Array.isArray(value)) {
110
- return value;
111
- }
112
-
113
- if (is_array(value)) {
114
- return array(value);
115
- }
116
-
117
- return [value];
118
- }
1
+ import array from './array.mjs';
2
+ import is_array from './is_array.mjs';
3
+ import is_null from './is_null.mjs';
4
+ import is_undefined from './is_undefined.mjs';
5
+
6
+ /**
7
+ * Приводит значение переменной к массиву.
8
+ *
9
+ * ### Описание
10
+ *
11
+ * Функция `to_array` используется для преобразования различных типов данных в массив. Если значение
12
+ * уже является массивом (тип `Array` или ассоциативный массив), возвращается оно же. Объекты
13
+ * (экземпляры классов) преобразуются в массив с одним элементом.
14
+ *
15
+ * #### Примечание
16
+ *
17
+ * Функция `to_array` для объектов (ассоциативных массивов) возвращает результат
18
+ * работы функции `array`, которая создает объект-контейнер пар ключ-значение
19
+ * (ассоциативный массив) с помощью конструкции `Object.create(null)`,
20
+ * копирует все видимые пары в этот контейнер, а также добавляет итератор
21
+ * `Symbol.iterator` для перебора контейнера в цикле `for-of`.
22
+ *
23
+ * ### Параметры
24
+ *
25
+ * - `value` (any)
26
+ * Переменная, значение которой необходимо привести к массиву.
27
+ *
28
+ * ### Возвращаемое значение
29
+ *
30
+ * Возвращает массив, содержащий переданное значение. Если значение уже является массивом, возвращается оно же.
31
+ *
32
+ * ### Примеры использования
33
+ *
34
+ * 1. Преобразование строки в массив:
35
+ *
36
+ * ```js
37
+ * const result = to_array('example');
38
+ * // Результат: ["example"]
39
+ * ```
40
+ *
41
+ * 2. Преобразование числа в массив:
42
+ *
43
+ * ```js
44
+ * const result = to_array(123);
45
+ * // Результат: [123]
46
+ * ```
47
+ *
48
+ * 3. Преобразование массива (без изменений):
49
+ *
50
+ * ```js
51
+ * const result = to_array([1, 2, 3]);
52
+ * // Результат: [1, 2, 3]
53
+ * ```
54
+ *
55
+ * 4. Преобразование объекта в массив:
56
+ *
57
+ * Функция `to_array` для объектов (ассоциативных массивов) возвращает
58
+ * результат работы функции `array`, которая создает объект-контейнер
59
+ * пар ключ-значение (ассоциативный массив) с помощью конструкции
60
+ * `Object.create(null)`, копирует все видимые пары в этот контейнер,
61
+ * а также добавляет итератор `Symbol.iterator` для перебора контейнера
62
+ * в цикле `for-of`.
63
+ *
64
+ * ```js
65
+ * const result = to_array({ key: 'value' });
66
+ * // Результат: { key: "value" }
67
+ *
68
+ * const proto = Object.getPrototypeOf(result);
69
+ * // Результат: null
70
+ *
71
+ * for (const [key, value] of result) {
72
+ * console.log(key, value);
73
+ * }
74
+ * // Результат: 'key', 'value'
75
+ * ```
76
+ *
77
+ * 5. Преобразование экземпляра класса в массив:
78
+ *
79
+ * ```js
80
+ * class MyClass {}
81
+ *
82
+ * const instance = new MyClass();
83
+ * const result = to_array(instance);
84
+ * // Результат: [instance]
85
+ * ```
86
+ *
87
+ * 6. Преобразование null:
88
+ *
89
+ * ```js
90
+ * const result = to_array(null);
91
+ * // Результат: []
92
+ * ```
93
+ *
94
+ * 7. Преобразование undefined:
95
+ *
96
+ * ```js
97
+ * const result = to_array(undefined);
98
+ * // Результат: []
99
+ * ```
100
+ *
101
+ * @param {any} value Переменная, значение которой необходимо привести к массиву.
102
+ * @returns {Array|Object} Возвращает приведенное к массиву значение переменной `value`.
103
+ */
104
+ export default function to_array(value) {
105
+ if (is_null(value) || is_undefined(value)) {
106
+ return [];
107
+ }
108
+
109
+ if (Array.isArray(value)) {
110
+ return value;
111
+ }
112
+
113
+ if (is_array(value)) {
114
+ return array(value);
115
+ }
116
+
117
+ return [value];
118
+ }
@@ -1,98 +1,98 @@
1
- import is_array from './is_array.mjs';
2
- import is_null from './is_null.mjs';
3
- import is_undefined from './is_undefined.mjs';
4
-
5
- /**
6
- * Преобразует значение в ассоциативный массив.
7
- *
8
- * ### Описание
9
- *
10
- * Функция `to_assoc` используется для преобразования различных типов данных в ассоциативный массив.
11
- * Если значение уже является объектом, возвращается оно же. Массивы преобразуются в объекты с
12
- * индексами в качестве ключей.
13
- *
14
- * #### Примечание
15
- *
16
- * Функция `to_assoc` для массивов возвращает объект, где ключами являются индексы элементов массива.
17
- *
18
- * ### Параметры
19
- *
20
- * - `value` (any)
21
- * Значение, которое необходимо преобразовать в ассоциативный массив.
22
- *
23
- * ### Возвращаемое значение
24
- *
25
- * Возвращает объект, представляющий ассоциативный массив. Если значение уже является объектом, возвращается оно же.
26
- *
27
- * ### Примеры использования
28
- *
29
- * 1. Преобразование строки в ассоциативный массив:
30
- *
31
- * ```js
32
- * const result = to_assoc('example');
33
- * // Результат: { 0: 'example' }
34
- * ```
35
- *
36
- * 2. Преобразование числа в ассоциативный массив:
37
- *
38
- * ```js
39
- * const result = to_assoc(123);
40
- * // Результат: { 0: 123 }
41
- * ```
42
- *
43
- * 3. Преобразование массива в ассоциативный массив:
44
- *
45
- * ```js
46
- * const result = to_assoc([1, 2, 3]);
47
- * // Результат: { 0: 1, 1: 2, 2: 3 }
48
- * ```
49
- *
50
- * 4. Преобразование ассоциативного массива (без изменений):
51
- *
52
- * ```js
53
- * const result = to_assoc({ key: 'value' });
54
- * // Результат: { key: 'value' }
55
- * ```
56
- *
57
- * 5. Преобразование экземпляра класса в ассоциативный массив:
58
- *
59
- * ```js
60
- * class MyClass {}
61
- *
62
- * const instance = new MyClass();
63
- * const result = to_assoc(instance);
64
- * // Результат: { 0: instance }
65
- * ```
66
- *
67
- * 6. Преобразование null:
68
- *
69
- * ```js
70
- * const result = to_assoc(null);
71
- * // Результат: {}
72
- * ```
73
- *
74
- * 7. Преобразование undefined:
75
- *
76
- * ```js
77
- * const result = to_assoc(undefined);
78
- * // Результат: {}
79
- * ```
80
- *
81
- * @param {any} value Значение, которое необходимо преобразовать.
82
- * @returns {Object} Возвращает объект, представляющий ассоциативный массив.
83
- */
84
- export default function to_assoc(value) {
85
- if (is_null(value) || is_undefined(value)) {
86
- return {};
87
- }
88
-
89
- if (Array.isArray(value)) {
90
- return { ...value };
91
- }
92
-
93
- if (is_array(value)) {
94
- return value;
95
- }
96
-
97
- return { 0: value };
98
- }
1
+ import is_array from './is_array.mjs';
2
+ import is_null from './is_null.mjs';
3
+ import is_undefined from './is_undefined.mjs';
4
+
5
+ /**
6
+ * Преобразует значение в ассоциативный массив.
7
+ *
8
+ * ### Описание
9
+ *
10
+ * Функция `to_assoc` используется для преобразования различных типов данных в ассоциативный массив.
11
+ * Если значение уже является объектом, возвращается оно же. Массивы преобразуются в объекты с
12
+ * индексами в качестве ключей.
13
+ *
14
+ * #### Примечание
15
+ *
16
+ * Функция `to_assoc` для массивов возвращает объект, где ключами являются индексы элементов массива.
17
+ *
18
+ * ### Параметры
19
+ *
20
+ * - `value` (any)
21
+ * Значение, которое необходимо преобразовать в ассоциативный массив.
22
+ *
23
+ * ### Возвращаемое значение
24
+ *
25
+ * Возвращает объект, представляющий ассоциативный массив. Если значение уже является объектом, возвращается оно же.
26
+ *
27
+ * ### Примеры использования
28
+ *
29
+ * 1. Преобразование строки в ассоциативный массив:
30
+ *
31
+ * ```js
32
+ * const result = to_assoc('example');
33
+ * // Результат: { 0: 'example' }
34
+ * ```
35
+ *
36
+ * 2. Преобразование числа в ассоциативный массив:
37
+ *
38
+ * ```js
39
+ * const result = to_assoc(123);
40
+ * // Результат: { 0: 123 }
41
+ * ```
42
+ *
43
+ * 3. Преобразование массива в ассоциативный массив:
44
+ *
45
+ * ```js
46
+ * const result = to_assoc([1, 2, 3]);
47
+ * // Результат: { 0: 1, 1: 2, 2: 3 }
48
+ * ```
49
+ *
50
+ * 4. Преобразование ассоциативного массива (без изменений):
51
+ *
52
+ * ```js
53
+ * const result = to_assoc({ key: 'value' });
54
+ * // Результат: { key: 'value' }
55
+ * ```
56
+ *
57
+ * 5. Преобразование экземпляра класса в ассоциативный массив:
58
+ *
59
+ * ```js
60
+ * class MyClass {}
61
+ *
62
+ * const instance = new MyClass();
63
+ * const result = to_assoc(instance);
64
+ * // Результат: { 0: instance }
65
+ * ```
66
+ *
67
+ * 6. Преобразование null:
68
+ *
69
+ * ```js
70
+ * const result = to_assoc(null);
71
+ * // Результат: {}
72
+ * ```
73
+ *
74
+ * 7. Преобразование undefined:
75
+ *
76
+ * ```js
77
+ * const result = to_assoc(undefined);
78
+ * // Результат: {}
79
+ * ```
80
+ *
81
+ * @param {any} value Значение, которое необходимо преобразовать.
82
+ * @returns {Object} Возвращает объект, представляющий ассоциативный массив.
83
+ */
84
+ export default function to_assoc(value) {
85
+ if (is_null(value) || is_undefined(value)) {
86
+ return {};
87
+ }
88
+
89
+ if (Array.isArray(value)) {
90
+ return { ...value };
91
+ }
92
+
93
+ if (is_array(value)) {
94
+ return value;
95
+ }
96
+
97
+ return { 0: value };
98
+ }