@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,245 +1,245 @@
1
- import gettype from './gettype.mjs';
2
- import is_bool from './is_bool.mjs';
3
- import is_class from './is_class.mjs';
4
- import to_string from './to_string.mjs';
5
-
6
- function print_array(value) {
7
- let result = Array.isArray(value) ? '[' : '{';
8
-
9
- for (const [k, v] of Object.entries(value)) {
10
- result += `\n ${k}: ${print(v, true).replace(/\n/g, '\n ')},`;
11
- }
12
-
13
- return (result += (result.length > 1 ? '\n' : '') + (Array.isArray(value) ? ']' : '}'));
14
- }
15
-
16
- function print_object(value) {
17
- let result = `${to_string(value)} {`;
18
-
19
- let new_line = false;
20
-
21
- for (const [k, v] of Object.entries(value)) {
22
- new_line = true;
23
-
24
- result += `\n ${k} = ${print(v, true).replace(/\n/g, '\n ')};`;
25
- }
26
-
27
- return (result += `${new_line ? '\n' : ''}${Array.isArray(value) ? ']' : '}'}`);
28
- }
29
-
30
- function print_class(value) {
31
- const parent = Object.getPrototypeOf(value);
32
-
33
- let result = `class ${value.name ? `${value.name} ` : ''}${is_class(parent) ? `extends ${parent.name} ` : ''}{`;
34
-
35
- let new_line = false;
36
-
37
- for (const [k, v] of Object.entries(value)) {
38
- new_line = true;
39
-
40
- result += `\n ${k} = ${print(v, true).replace(/\n/g, '\n ')};`;
41
- }
42
-
43
- return (result += `${new_line ? '\n' : ''}}`);
44
- }
45
-
46
- function print_string(value) {
47
- return `"${value}"`;
48
- }
49
-
50
- /**
51
- * Преобразует значение переменной в строку и выводит его на консоль.
52
- *
53
- * ### Описание
54
- *
55
- * Функция `print` используется для преобразования различных типов данных в строку и вывода их на консоль. Она обрабатывает массивы, объекты, классы, функции, символы и другие типы данных, возвращая их строковое представление.
56
- *
57
- * ### Параметры
58
- *
59
- * - `value` (any)
60
- * Переменная, значение которой необходимо преобразовать в строку и вывести на консоль.
61
- *
62
- * - `return_result` (boolean)
63
- * Если `true`, функция возвращает строковое представление значения переменной.
64
- * Если `false`, функция выводит строковое представление значения переменной на консоль.
65
- *
66
- * ### Возвращаемое значение
67
- *
68
- * Возвращает строковое представление значения переменной, если параметр `return_result` равен `true`. В противном случае возвращает `undefined`.
69
- *
70
- * ### Примеры использования
71
- *
72
- * 1. Преобразование строки:
73
- *
74
- * ```js
75
- * print('example');
76
- * ```
77
- * Вывод:
78
- * ```txt
79
- * "example"
80
- * ```
81
- *
82
- * 2. Преобразование числа:
83
- *
84
- * ```js
85
- * print(123);
86
- * ```
87
- * Вывод:
88
- * ```txt
89
- * 123
90
- * ```
91
- *
92
- * 3. Преобразование булевых значений:
93
- *
94
- * ```js
95
- * print(true);
96
- * ```
97
- * Вывод:
98
- * ```txt
99
- * true
100
- * ```
101
- *
102
- * ```js
103
- * print(false);
104
- * ```
105
- * Вывод:
106
- * ```txt
107
- * false
108
- * ```
109
- *
110
- * 4. Преобразование null и undefined:
111
- *
112
- * ```js
113
- * print(null);
114
- * ```
115
- * Вывод:
116
- * ```txt
117
- * null
118
- * ```
119
- *
120
- * ```js
121
- * print(undefined);
122
- * ```
123
- * Вывод:
124
- * ```txt
125
- * undefined
126
- * ```
127
- *
128
- * 5. Преобразование массива:
129
- *
130
- * ```js
131
- * const arr = [1, 2, 3];
132
- * print(arr);
133
- * ```
134
- * Вывод:
135
- * ```txt
136
- * [
137
- * 0: 1,
138
- * 1: 2,
139
- * 2: 3,
140
- * ]
141
- * ```
142
- *
143
- * 6. Преобразование ассоциативного массива:
144
- *
145
- * ```js
146
- * const obj = { key: 'value' };
147
- * print(obj);
148
- * ```
149
- * Вывод:
150
- * ```txt
151
- * {
152
- * key: "value",
153
- * }
154
- * ```
155
- *
156
- * 7. Преобразование функции:
157
- *
158
- * ```js
159
- * const func = function() {};
160
- * print(func);
161
- * ```
162
- * Вывод:
163
- * ```txt
164
- * function func() {}
165
- * ```
166
- *
167
- * 8. Преобразование символа:
168
- *
169
- * ```js
170
- * const symbol = Symbol('example');
171
- * print(symbol);
172
- * ```
173
- * Вывод:
174
- * ```txt
175
- * Symbol(example)
176
- * ```
177
- *
178
- * 9. Преобразование класса:
179
- *
180
- * ```js
181
- * class MyClass {
182
- * static test = 'test';
183
- * }
184
- * print(MyClass);
185
- * ```
186
- * Вывод:
187
- * ```txt
188
- * class MyClass {
189
- * test = "test";
190
- * }
191
- * ```
192
- *
193
- * 10. Преобразование экземпляра класса:
194
- *
195
- * ```js
196
- * class MyClass {
197
- * test = 'test';
198
- * }
199
- * const instance = new MyClass();
200
- * print(instance);
201
- * ```
202
- * Вывод:
203
- * ```txt
204
- * object MyClass {
205
- * test = "test";
206
- * }
207
- * ```
208
- *
209
- * @param {any} value Переменная, значение которой необходимо преобразовать в строку и вывести на консоль.
210
- * @param {boolean} return_result Если `true`, функция возвращает строковое представление значения переменной. Если `false`, функция выводит строковое представление значения переменной на консоль.
211
- * @returns {string|undefined} Возвращает строковое представление значения переменной, если параметр `return_result` равен `true`. В противном случае возвращает `undefined`.
212
- */
213
- export default function print(value, return_result = false) {
214
- if (!is_bool(return_result)) {
215
- throw new TypeError('Параметр "return_result" должен быть логическим типом.');
216
- }
217
-
218
- let result = '';
219
-
220
- switch (gettype(value)) {
221
- case 'array':
222
- result = print_array(value);
223
- break;
224
- case 'object':
225
- result =
226
- value.toString() === '[object Object]' ? print_object(value) : value.toString();
227
- break;
228
- case 'class':
229
- result = print_class(value);
230
- break;
231
- case 'string':
232
- result = print_string(value);
233
- break;
234
- default:
235
- result = to_string(value);
236
- }
237
-
238
- if (return_result) {
239
- return result;
240
- }
241
-
242
- console.log(result);
243
-
244
- return undefined;
245
- }
1
+ import gettype from './gettype.mjs';
2
+ import is_bool from './is_bool.mjs';
3
+ import is_class from './is_class.mjs';
4
+ import to_string from './to_string.mjs';
5
+
6
+ function print_array(value) {
7
+ let result = Array.isArray(value) ? '[' : '{';
8
+
9
+ for (const [k, v] of Object.entries(value)) {
10
+ result += `\n ${k}: ${print(v, true).replace(/\n/g, '\n ')},`;
11
+ }
12
+
13
+ return (result += (result.length > 1 ? '\n' : '') + (Array.isArray(value) ? ']' : '}'));
14
+ }
15
+
16
+ function print_object(value) {
17
+ let result = `${to_string(value)} {`;
18
+
19
+ let new_line = false;
20
+
21
+ for (const [k, v] of Object.entries(value)) {
22
+ new_line = true;
23
+
24
+ result += `\n ${k} = ${print(v, true).replace(/\n/g, '\n ')};`;
25
+ }
26
+
27
+ return (result += `${new_line ? '\n' : ''}${Array.isArray(value) ? ']' : '}'}`);
28
+ }
29
+
30
+ function print_class(value) {
31
+ const parent = Object.getPrototypeOf(value);
32
+
33
+ let result = `class ${value.name ? `${value.name} ` : ''}${is_class(parent) ? `extends ${parent.name} ` : ''}{`;
34
+
35
+ let new_line = false;
36
+
37
+ for (const [k, v] of Object.entries(value)) {
38
+ new_line = true;
39
+
40
+ result += `\n ${k} = ${print(v, true).replace(/\n/g, '\n ')};`;
41
+ }
42
+
43
+ return (result += `${new_line ? '\n' : ''}}`);
44
+ }
45
+
46
+ function print_string(value) {
47
+ return `"${value}"`;
48
+ }
49
+
50
+ /**
51
+ * Преобразует значение переменной в строку и выводит его на консоль.
52
+ *
53
+ * ### Описание
54
+ *
55
+ * Функция `print` используется для преобразования различных типов данных в строку и вывода их на консоль. Она обрабатывает массивы, объекты, классы, функции, символы и другие типы данных, возвращая их строковое представление.
56
+ *
57
+ * ### Параметры
58
+ *
59
+ * - `value` (any)
60
+ * Переменная, значение которой необходимо преобразовать в строку и вывести на консоль.
61
+ *
62
+ * - `return_result` (boolean)
63
+ * Если `true`, функция возвращает строковое представление значения переменной.
64
+ * Если `false`, функция выводит строковое представление значения переменной на консоль.
65
+ *
66
+ * ### Возвращаемое значение
67
+ *
68
+ * Возвращает строковое представление значения переменной, если параметр `return_result` равен `true`. В противном случае возвращает `undefined`.
69
+ *
70
+ * ### Примеры использования
71
+ *
72
+ * 1. Преобразование строки:
73
+ *
74
+ * ```js
75
+ * print('example');
76
+ * ```
77
+ * Вывод:
78
+ * ```txt
79
+ * "example"
80
+ * ```
81
+ *
82
+ * 2. Преобразование числа:
83
+ *
84
+ * ```js
85
+ * print(123);
86
+ * ```
87
+ * Вывод:
88
+ * ```txt
89
+ * 123
90
+ * ```
91
+ *
92
+ * 3. Преобразование булевых значений:
93
+ *
94
+ * ```js
95
+ * print(true);
96
+ * ```
97
+ * Вывод:
98
+ * ```txt
99
+ * true
100
+ * ```
101
+ *
102
+ * ```js
103
+ * print(false);
104
+ * ```
105
+ * Вывод:
106
+ * ```txt
107
+ * false
108
+ * ```
109
+ *
110
+ * 4. Преобразование null и undefined:
111
+ *
112
+ * ```js
113
+ * print(null);
114
+ * ```
115
+ * Вывод:
116
+ * ```txt
117
+ * null
118
+ * ```
119
+ *
120
+ * ```js
121
+ * print(undefined);
122
+ * ```
123
+ * Вывод:
124
+ * ```txt
125
+ * undefined
126
+ * ```
127
+ *
128
+ * 5. Преобразование массива:
129
+ *
130
+ * ```js
131
+ * const arr = [1, 2, 3];
132
+ * print(arr);
133
+ * ```
134
+ * Вывод:
135
+ * ```txt
136
+ * [
137
+ * 0: 1,
138
+ * 1: 2,
139
+ * 2: 3,
140
+ * ]
141
+ * ```
142
+ *
143
+ * 6. Преобразование ассоциативного массива:
144
+ *
145
+ * ```js
146
+ * const obj = { key: 'value' };
147
+ * print(obj);
148
+ * ```
149
+ * Вывод:
150
+ * ```txt
151
+ * {
152
+ * key: "value",
153
+ * }
154
+ * ```
155
+ *
156
+ * 7. Преобразование функции:
157
+ *
158
+ * ```js
159
+ * const func = function() {};
160
+ * print(func);
161
+ * ```
162
+ * Вывод:
163
+ * ```txt
164
+ * function func() {}
165
+ * ```
166
+ *
167
+ * 8. Преобразование символа:
168
+ *
169
+ * ```js
170
+ * const symbol = Symbol('example');
171
+ * print(symbol);
172
+ * ```
173
+ * Вывод:
174
+ * ```txt
175
+ * Symbol(example)
176
+ * ```
177
+ *
178
+ * 9. Преобразование класса:
179
+ *
180
+ * ```js
181
+ * class MyClass {
182
+ * static test = 'test';
183
+ * }
184
+ * print(MyClass);
185
+ * ```
186
+ * Вывод:
187
+ * ```txt
188
+ * class MyClass {
189
+ * test = "test";
190
+ * }
191
+ * ```
192
+ *
193
+ * 10. Преобразование экземпляра класса:
194
+ *
195
+ * ```js
196
+ * class MyClass {
197
+ * test = 'test';
198
+ * }
199
+ * const instance = new MyClass();
200
+ * print(instance);
201
+ * ```
202
+ * Вывод:
203
+ * ```txt
204
+ * object MyClass {
205
+ * test = "test";
206
+ * }
207
+ * ```
208
+ *
209
+ * @param {any} value Переменная, значение которой необходимо преобразовать в строку и вывести на консоль.
210
+ * @param {boolean} return_result Если `true`, функция возвращает строковое представление значения переменной. Если `false`, функция выводит строковое представление значения переменной на консоль.
211
+ * @returns {string|undefined} Возвращает строковое представление значения переменной, если параметр `return_result` равен `true`. В противном случае возвращает `undefined`.
212
+ */
213
+ export default function print(value, return_result = false) {
214
+ if (!is_bool(return_result)) {
215
+ throw new TypeError('Параметр "return_result" должен быть логическим типом.');
216
+ }
217
+
218
+ let result = '';
219
+
220
+ switch (gettype(value)) {
221
+ case 'array':
222
+ result = print_array(value);
223
+ break;
224
+ case 'object':
225
+ result =
226
+ value.toString() === '[object Object]' ? print_object(value) : value.toString();
227
+ break;
228
+ case 'class':
229
+ result = print_class(value);
230
+ break;
231
+ case 'string':
232
+ result = print_string(value);
233
+ break;
234
+ default:
235
+ result = to_string(value);
236
+ }
237
+
238
+ if (return_result) {
239
+ return result;
240
+ }
241
+
242
+ console.log(result);
243
+
244
+ return undefined;
245
+ }