@rogolev/value 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +19 -1
  3. package/docs/classes/Value/constructor.md +48 -0
  4. package/docs/classes/Value/get.md +51 -0
  5. package/docs/classes/Value/getType.md +71 -0
  6. package/docs/classes/Value/isArray.md +67 -0
  7. package/docs/classes/Value/isAssoc.md +68 -0
  8. package/docs/classes/Value/isBigInt.md +52 -0
  9. package/docs/classes/Value/isBool.md +60 -0
  10. package/docs/classes/Value/isBoolean.md +60 -0
  11. package/docs/classes/Value/isClass.md +55 -0
  12. package/docs/classes/Value/isEmpty.md +84 -0
  13. package/docs/classes/Value/isFloat.md +52 -0
  14. package/docs/classes/Value/isFunction.md +60 -0
  15. package/docs/classes/Value/isInfinity.md +60 -0
  16. package/docs/classes/Value/isInt.md +52 -0
  17. package/docs/classes/Value/isInteger.md +52 -0
  18. package/docs/classes/Value/isList.md +59 -0
  19. package/docs/classes/Value/isNaN.md +79 -0
  20. package/docs/classes/Value/isNull.md +59 -0
  21. package/docs/classes/Value/isNumber.md +80 -0
  22. package/docs/classes/Value/isNumeric.md +79 -0
  23. package/docs/classes/Value/isObject.md +68 -0
  24. package/docs/classes/Value/isScalar.md +72 -0
  25. package/docs/classes/Value/isString.md +67 -0
  26. package/docs/classes/Value/isSymbol.md +75 -0
  27. package/docs/classes/Value/isUndefined.md +67 -0
  28. package/docs/classes/Value/print.md +164 -0
  29. package/docs/classes/Value/printType.md +158 -0
  30. package/docs/classes/Value/setType.md +79 -0
  31. package/docs/classes/Value/toArray.md +85 -0
  32. package/docs/classes/Value/toAssoc.md +85 -0
  33. package/docs/classes/Value/toBool.md +71 -0
  34. package/docs/classes/Value/toBoolean.md +71 -0
  35. package/docs/classes/Value/toFloat.md +72 -0
  36. package/docs/classes/Value/toInt.md +72 -0
  37. package/docs/classes/Value/toInteger.md +72 -0
  38. package/docs/classes/Value/toList.md +77 -0
  39. package/docs/classes/Value/toObject.md +78 -0
  40. package/docs/classes/Value/toPrint.md +115 -0
  41. package/docs/classes/Value/toPrintType.md +110 -0
  42. package/docs/classes/Value/toString.md +134 -0
  43. package/docs/classes/Value.md +113 -0
  44. package/docs/classes.md +2 -0
  45. package/docs/constants.md +47 -0
  46. package/docs/helpers/value.md +95 -0
  47. package/docs/helpers.md +2 -0
  48. package/index.mjs +3 -0
  49. package/package.json +2 -2
  50. package/src/classes/Convert.mjs +818 -819
  51. package/src/classes/Type.mjs +1284 -1285
  52. package/src/classes/Value.mjs +2846 -0
  53. package/src/constants.mjs +14 -0
  54. package/src/helpers/array.mjs +107 -107
  55. package/src/helpers/empty.mjs +70 -70
  56. package/src/helpers/gettype.mjs +149 -133
  57. package/src/helpers/is_array.mjs +128 -128
  58. package/src/helpers/is_assoc.mjs +51 -51
  59. package/src/helpers/is_bigint.mjs +47 -47
  60. package/src/helpers/is_bool.mjs +43 -43
  61. package/src/helpers/is_boolean.mjs +43 -43
  62. package/src/helpers/is_class.mjs +87 -87
  63. package/src/helpers/is_float.mjs +67 -67
  64. package/src/helpers/is_function.mjs +74 -74
  65. package/src/helpers/is_infinity.mjs +52 -52
  66. package/src/helpers/is_int.mjs +57 -57
  67. package/src/helpers/is_integer.mjs +74 -74
  68. package/src/helpers/is_list.mjs +43 -43
  69. package/src/helpers/is_nan.mjs +51 -51
  70. package/src/helpers/is_null.mjs +37 -37
  71. package/src/helpers/is_number.mjs +49 -49
  72. package/src/helpers/is_numeric.mjs +64 -64
  73. package/src/helpers/is_object.mjs +72 -72
  74. package/src/helpers/is_scalar.mjs +45 -45
  75. package/src/helpers/is_string.mjs +46 -46
  76. package/src/helpers/is_symbol.mjs +46 -46
  77. package/src/helpers/is_undefined.mjs +44 -44
  78. package/src/helpers/print.mjs +245 -245
  79. package/src/helpers/print_type.mjs +261 -261
  80. package/src/helpers/settype.mjs +101 -101
  81. package/src/helpers/to_array.mjs +118 -118
  82. package/src/helpers/to_assoc.mjs +98 -98
  83. package/src/helpers/to_bool.mjs +68 -68
  84. package/src/helpers/to_boolean.mjs +64 -64
  85. package/src/helpers/to_float.mjs +72 -72
  86. package/src/helpers/to_int.mjs +93 -93
  87. package/src/helpers/to_integer.mjs +81 -81
  88. package/src/helpers/to_list.mjs +56 -56
  89. package/src/helpers/to_object.mjs +94 -94
  90. package/src/helpers/to_string.mjs +157 -157
  91. package/src/helpers/value.mjs +92 -0
  92. package/tests/classes/Convert.test.mjs +398 -399
  93. package/tests/classes/Type.test.mjs +1262 -1263
  94. package/tests/classes/Value.test.mjs +423 -0
  95. package/tests/constants.test.mjs +75 -0
  96. package/tests/helpers/array.test.mjs +58 -58
  97. package/tests/helpers/empty.test.mjs +22 -22
  98. package/tests/helpers/gettype.test.mjs +74 -74
  99. package/tests/helpers/is_array.test.mjs +404 -404
  100. package/tests/helpers/is_assoc.test.mjs +42 -42
  101. package/tests/helpers/is_bigint.test.mjs +51 -51
  102. package/tests/helpers/is_bool.test.mjs +43 -43
  103. package/tests/helpers/is_boolean.test.mjs +43 -43
  104. package/tests/helpers/is_class.test.mjs +84 -84
  105. package/tests/helpers/is_float.test.mjs +87 -87
  106. package/tests/helpers/is_function.test.mjs +83 -83
  107. package/tests/helpers/is_infinity.test.mjs +46 -46
  108. package/tests/helpers/is_int.test.mjs +45 -45
  109. package/tests/helpers/is_integer.test.mjs +64 -64
  110. package/tests/helpers/is_list.test.mjs +42 -42
  111. package/tests/helpers/is_nan.test.mjs +43 -43
  112. package/tests/helpers/is_null.test.mjs +17 -17
  113. package/tests/helpers/is_number.test.mjs +25 -25
  114. package/tests/helpers/is_numeric.test.mjs +30 -30
  115. package/tests/helpers/is_object.test.mjs +52 -52
  116. package/tests/helpers/is_scalar.test.mjs +21 -21
  117. package/tests/helpers/is_string.test.mjs +20 -20
  118. package/tests/helpers/is_symbol.test.mjs +20 -20
  119. package/tests/helpers/is_undefined.test.mjs +18 -18
  120. package/tests/helpers/print.test.mjs +62 -62
  121. package/tests/helpers/print_type.test.mjs +62 -62
  122. package/tests/helpers/settype.test.mjs +34 -34
  123. package/tests/helpers/to_array.test.mjs +38 -38
  124. package/tests/helpers/to_assoc.test.mjs +33 -33
  125. package/tests/helpers/to_bool.test.mjs +51 -51
  126. package/tests/helpers/to_boolean.test.mjs +51 -51
  127. package/tests/helpers/to_float.test.mjs +26 -26
  128. package/tests/helpers/to_int.test.mjs +48 -48
  129. package/tests/helpers/to_integer.test.mjs +48 -48
  130. package/tests/helpers/to_list.test.mjs +32 -32
  131. package/tests/helpers/to_object.test.mjs +36 -36
  132. package/tests/helpers/to_string.test.mjs +71 -71
  133. package/tests/helpers/value.test.mjs +68 -0
@@ -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
+ }