@rogolev/value 0.0.2 → 0.0.3

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 (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,157 +1,157 @@
1
- import is_array from './is_array.mjs';
2
- import is_class from './is_class.mjs';
3
- import is_function from './is_function.mjs';
4
- import is_object from './is_object.mjs';
5
- import is_string from './is_string.mjs';
6
-
7
- /**
8
- * Приводит значение переменной к строке.
9
- *
10
- * ### Описание
11
- *
12
- * Функция `to_string` используется для преобразования различных типов данных в строку. Она обрабатывает массивы, объекты, классы, функции, символы и другие типы данных, возвращая их строковое представление.
13
- *
14
- * ### Параметры
15
- *
16
- * - `value` (any)
17
- * Переменная, значение которой необходимо привести к строке.
18
- *
19
- * ### Возвращаемое значение
20
- *
21
- * Возвращает строку, соответствующую переданному значению.
22
- *
23
- * ### Примеры использования
24
- *
25
- * 1. Преобразование строки:
26
- *
27
- * ```js
28
- * const result = to_string('example');
29
- * // Результат: 'example'
30
- * ```
31
- *
32
- * 2. Преобразование числа:
33
- *
34
- * ```js
35
- * const result = to_string(123);
36
- * // Результат: '123'
37
- * ```
38
- *
39
- * 3. Преобразование булевых значений:
40
- *
41
- * ```js
42
- * const result1 = to_string(true);
43
- * // Результат: 'true'
44
- *
45
- * const result2 = to_string(false);
46
- * // Результат: 'false'
47
- * ```
48
- *
49
- * 4. Преобразование null и undefined:
50
- *
51
- * ```js
52
- * const result1 = to_string(null);
53
- * // Результат: 'null'
54
- *
55
- * const result2 = to_string(undefined);
56
- * // Результат: 'undefined'
57
- * ```
58
- *
59
- * 5. Преобразование массива:
60
- *
61
- * ```js
62
- * const arr = [1, 2, 3];
63
- * const result = to_string(arr);
64
- * // Результат: '[\n 1,\n 2,\n 3,\n]'
65
- * ```
66
- *
67
- * 6. Преобразование объекта:
68
- *
69
- * ```js
70
- * const obj = { key: 'value' };
71
- * const result = to_string(obj);
72
- * // Результат: '{\n key: 'value',\n}'
73
- * ```
74
- *
75
- * 7. Преобразование функции:
76
- *
77
- * ```js
78
- * const func = function() {};
79
- * const result = to_string(func);
80
- * // Результат: 'function func() {}'
81
- * ```
82
- *
83
- * 8. Преобразование символа:
84
- *
85
- * ```js
86
- * const symbol = Symbol('example');
87
- * const result = to_string(symbol);
88
- * // Результат: 'Symbol(example)'
89
- * ```
90
- *
91
- * 9. Преобразование BigInt:
92
- *
93
- * ```js
94
- * const bigInt = BigInt(123);
95
- * const result = to_string(bigInt);
96
- * // Результат: '123'
97
- * ```
98
- *
99
- * 10. Преобразование класса:
100
- *
101
- * ```js
102
- * class MyClass {
103
- * static test = 'test';
104
- * }
105
- * const result = to_string(MyClass);
106
- * // Результат: 'class MyClass {}'
107
- * ```
108
- *
109
- * 11. Преобразование экземпляра класса:
110
- *
111
- * ```js
112
- * class MyClass {}
113
- * const instance = new MyClass();
114
- * const result = to_string(instance);
115
- * // Результат: 'object MyClass'
116
- * ```
117
- *
118
- * @param {any} value Переменная, значение которой необходимо привести к строке.
119
- * @returns {string} Возвращает приведенное к строке значение переменной `value`.
120
- */
121
- export default function to_string(value) {
122
- if (Array.isArray(value)) {
123
- let string = '[';
124
-
125
- for (const v of value) {
126
- string += `\n ${is_string(v) ? "'" : ''}${to_string(v).replace(/\n/g, '\n ')}${is_string(v) ? "'" : ''},`;
127
- }
128
-
129
- return (string += string.length > 1 ? '\n]' : ']');
130
- }
131
-
132
- if (is_array(value)) {
133
- let string = '{';
134
-
135
- for (const [k, v] of Object.entries(value)) {
136
- string += `\n ${k}: ${is_string(v) ? "'" : ''}${to_string(v).replace(/\n/g, '\n ')}${is_string(v) ? "'" : ''},`;
137
- }
138
-
139
- return (string += string.length > 1 ? '\n}' : '}');
140
- }
141
-
142
- if (is_class(value)) {
143
- return `class ${value.name ? `${value.name} ` : ''}{}`;
144
- }
145
-
146
- if (is_object(value)) {
147
- return value.toString() === '[object Object]' ?
148
- `object ${Object.getPrototypeOf(value).constructor.name}`
149
- : value.toString();
150
- }
151
-
152
- if (is_function(value)) {
153
- return `function ${value.name}() {}`;
154
- }
155
-
156
- return String(value);
157
- }
1
+ import is_array from './is_array.mjs';
2
+ import is_class from './is_class.mjs';
3
+ import is_function from './is_function.mjs';
4
+ import is_object from './is_object.mjs';
5
+ import is_string from './is_string.mjs';
6
+
7
+ /**
8
+ * Приводит значение переменной к строке.
9
+ *
10
+ * ### Описание
11
+ *
12
+ * Функция `to_string` используется для преобразования различных типов данных в строку. Она обрабатывает массивы, объекты, классы, функции, символы и другие типы данных, возвращая их строковое представление.
13
+ *
14
+ * ### Параметры
15
+ *
16
+ * - `value` (any)
17
+ * Переменная, значение которой необходимо привести к строке.
18
+ *
19
+ * ### Возвращаемое значение
20
+ *
21
+ * Возвращает строку, соответствующую переданному значению.
22
+ *
23
+ * ### Примеры использования
24
+ *
25
+ * 1. Преобразование строки:
26
+ *
27
+ * ```js
28
+ * const result = to_string('example');
29
+ * // Результат: 'example'
30
+ * ```
31
+ *
32
+ * 2. Преобразование числа:
33
+ *
34
+ * ```js
35
+ * const result = to_string(123);
36
+ * // Результат: '123'
37
+ * ```
38
+ *
39
+ * 3. Преобразование булевых значений:
40
+ *
41
+ * ```js
42
+ * const result1 = to_string(true);
43
+ * // Результат: 'true'
44
+ *
45
+ * const result2 = to_string(false);
46
+ * // Результат: 'false'
47
+ * ```
48
+ *
49
+ * 4. Преобразование null и undefined:
50
+ *
51
+ * ```js
52
+ * const result1 = to_string(null);
53
+ * // Результат: 'null'
54
+ *
55
+ * const result2 = to_string(undefined);
56
+ * // Результат: 'undefined'
57
+ * ```
58
+ *
59
+ * 5. Преобразование массива:
60
+ *
61
+ * ```js
62
+ * const arr = [1, 2, 3];
63
+ * const result = to_string(arr);
64
+ * // Результат: '[\n 1,\n 2,\n 3,\n]'
65
+ * ```
66
+ *
67
+ * 6. Преобразование объекта:
68
+ *
69
+ * ```js
70
+ * const obj = { key: 'value' };
71
+ * const result = to_string(obj);
72
+ * // Результат: '{\n key: 'value',\n}'
73
+ * ```
74
+ *
75
+ * 7. Преобразование функции:
76
+ *
77
+ * ```js
78
+ * const func = function() {};
79
+ * const result = to_string(func);
80
+ * // Результат: 'function func() {}'
81
+ * ```
82
+ *
83
+ * 8. Преобразование символа:
84
+ *
85
+ * ```js
86
+ * const symbol = Symbol('example');
87
+ * const result = to_string(symbol);
88
+ * // Результат: 'Symbol(example)'
89
+ * ```
90
+ *
91
+ * 9. Преобразование BigInt:
92
+ *
93
+ * ```js
94
+ * const bigInt = BigInt(123);
95
+ * const result = to_string(bigInt);
96
+ * // Результат: '123'
97
+ * ```
98
+ *
99
+ * 10. Преобразование класса:
100
+ *
101
+ * ```js
102
+ * class MyClass {
103
+ * static test = 'test';
104
+ * }
105
+ * const result = to_string(MyClass);
106
+ * // Результат: 'class MyClass {}'
107
+ * ```
108
+ *
109
+ * 11. Преобразование экземпляра класса:
110
+ *
111
+ * ```js
112
+ * class MyClass {}
113
+ * const instance = new MyClass();
114
+ * const result = to_string(instance);
115
+ * // Результат: 'object MyClass'
116
+ * ```
117
+ *
118
+ * @param {any} value Переменная, значение которой необходимо привести к строке.
119
+ * @returns {string} Возвращает приведенное к строке значение переменной `value`.
120
+ */
121
+ export default function to_string(value) {
122
+ if (Array.isArray(value)) {
123
+ let string = '[';
124
+
125
+ for (const v of value) {
126
+ string += `\n ${is_string(v) ? "'" : ''}${to_string(v).replace(/\n/g, '\n ')}${is_string(v) ? "'" : ''},`;
127
+ }
128
+
129
+ return (string += string.length > 1 ? '\n]' : ']');
130
+ }
131
+
132
+ if (is_array(value)) {
133
+ let string = '{';
134
+
135
+ for (const [k, v] of Object.entries(value)) {
136
+ string += `\n ${k}: ${is_string(v) ? "'" : ''}${to_string(v).replace(/\n/g, '\n ')}${is_string(v) ? "'" : ''},`;
137
+ }
138
+
139
+ return (string += string.length > 1 ? '\n}' : '}');
140
+ }
141
+
142
+ if (is_class(value)) {
143
+ return `class ${value.name ? `${value.name} ` : ''}{}`;
144
+ }
145
+
146
+ if (is_object(value)) {
147
+ return value.toString() === '[object Object]' ?
148
+ `object ${Object.getPrototypeOf(value).constructor.name}`
149
+ : value.toString();
150
+ }
151
+
152
+ if (is_function(value)) {
153
+ return `function ${value.name}() {}`;
154
+ }
155
+
156
+ return String(value);
157
+ }
@@ -0,0 +1,92 @@
1
+ import Value from '../classes/Value.mjs';
2
+
3
+ /**
4
+ * Создает новый экземпляр класса `Value` с заданным значением.
5
+ *
6
+ * ### Описание
7
+ *
8
+ * Функция `value` используется для создания нового экземпляра класса `Value` с переданным значением.
9
+ * Это позволяет легко обернуть значение в экземпляр класса `Value` и использовать методы класса для работы с этим значением.
10
+ *
11
+ * ### Параметры
12
+ *
13
+ * - `val` (any)
14
+ * Значение, которое необходимо обернуть в экземпляр класса `Value`.
15
+ *
16
+ * ### Возвращаемое значение
17
+ *
18
+ * Возвращает новый экземпляр класса `Value` с переданным значением.
19
+ *
20
+ * ### Примеры использования
21
+ *
22
+ * 1. Создание экземпляра класса `Value` с числом:
23
+ *
24
+ * ```js
25
+ * const valueInstance = value(123);
26
+ * console.log(valueInstance.get()); // 123
27
+ * console.log(valueInstance.getType()); // 'integer'
28
+ * console.log(valueInstance.isNumber()); // true
29
+ * ```
30
+ *
31
+ * 2. Создание экземпляра класса `Value` со строкой:
32
+ *
33
+ * ```js
34
+ * const valueInstance = value('example');
35
+ * console.log(valueInstance.get()); // 'example'
36
+ * console.log(valueInstance.getType()); // 'string'
37
+ * console.log(valueInstance.isString()); // true
38
+ * ```
39
+ *
40
+ * 3. Создание экземпляра класса `Value` с объектом:
41
+ *
42
+ * ```js
43
+ * const obj = { key: 'value' };
44
+ * const valueInstance = value(obj);
45
+ * console.log(valueInstance.get()); // { key: 'value' }
46
+ * console.log(valueInstance.getType()); // 'object'
47
+ * console.log(valueInstance.isObject()); // true
48
+ * ```
49
+ *
50
+ * 4. Создание экземпляра класса `Value` с массивом:
51
+ *
52
+ * ```js
53
+ * const arr = [1, 2, 3];
54
+ * const valueInstance = value(arr);
55
+ * console.log(valueInstance.get()); // [1, 2, 3]
56
+ * console.log(valueInstance.getType()); // 'array'
57
+ * console.log(valueInstance.isArray()); // true
58
+ * ```
59
+ *
60
+ * 5. Создание экземпляра класса `Value` с булевым значением:
61
+ *
62
+ * ```js
63
+ * const valueInstance = value(true);
64
+ * console.log(valueInstance.get()); // true
65
+ * console.log(valueInstance.getType()); // 'boolean'
66
+ * console.log(valueInstance.isBool()); // true
67
+ * ```
68
+ *
69
+ * 6. Создание экземпляра класса `Value` с null:
70
+ *
71
+ * ```js
72
+ * const valueInstance = value(null);
73
+ * console.log(valueInstance.get()); // null
74
+ * console.log(valueInstance.getType()); // 'null'
75
+ * console.log(valueInstance.isNull()); // true
76
+ * ```
77
+ *
78
+ * 7. Создание экземпляра класса `Value` с undefined:
79
+ *
80
+ * ```js
81
+ * const valueInstance = value(undefined);
82
+ * console.log(valueInstance.get()); // undefined
83
+ * console.log(valueInstance.getType()); // 'undefined'
84
+ * console.log(valueInstance.isUndefined()); // true
85
+ * ```
86
+ *
87
+ * @param {any} val Значение, которое необходимо обернуть в экземпляр класса `Value`.
88
+ * @returns {Value} Возвращает новый экземпляр класса `Value` с переданным значением.
89
+ */
90
+ export default function value(val) {
91
+ return new Value(val);
92
+ }