@dxtmisha/functional-basic 0.1.1 → 0.2.0

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 (126) hide show
  1. package/dist/functions/copyObjectLite.d.ts +9 -0
  2. package/dist/functions/isDomData.d.ts +6 -0
  3. package/dist/library.d.ts +2 -0
  4. package/dist/library.js +414 -413
  5. package/package.json +1 -3
  6. package/src/classes/Api.ts +0 -407
  7. package/src/classes/ApiDefault.ts +0 -83
  8. package/src/classes/ApiHeaders.ts +0 -52
  9. package/src/classes/ApiPreparation.ts +0 -114
  10. package/src/classes/ApiResponse.ts +0 -293
  11. package/src/classes/ApiStatus.ts +0 -173
  12. package/src/classes/BroadcastMessage.ts +0 -73
  13. package/src/classes/Cache.ts +0 -60
  14. package/src/classes/CacheItem.ts +0 -95
  15. package/src/classes/CacheStatic.ts +0 -30
  16. package/src/classes/Cookie.ts +0 -135
  17. package/src/classes/CookieBlock.ts +0 -31
  18. package/src/classes/DataStorage.ts +0 -194
  19. package/src/classes/Datetime.ts +0 -891
  20. package/src/classes/EventItem.ts +0 -373
  21. package/src/classes/Geo.ts +0 -320
  22. package/src/classes/GeoFlag.ts +0 -386
  23. package/src/classes/GeoIntl.ts +0 -839
  24. package/src/classes/GeoPhone.ts +0 -272
  25. package/src/classes/Global.ts +0 -32
  26. package/src/classes/Hash.ts +0 -142
  27. package/src/classes/Icons.ts +0 -165
  28. package/src/classes/Loading.ts +0 -90
  29. package/src/classes/Meta.ts +0 -284
  30. package/src/classes/MetaManager.ts +0 -200
  31. package/src/classes/MetaOg.ts +0 -147
  32. package/src/classes/MetaTwitter.ts +0 -154
  33. package/src/classes/ScrollbarWidth.ts +0 -86
  34. package/src/classes/Translate.ts +0 -293
  35. package/src/classes/__tests__/Api.test.ts +0 -728
  36. package/src/classes/__tests__/ApiDefault.test.ts +0 -222
  37. package/src/classes/__tests__/ApiHeaders.test.ts +0 -447
  38. package/src/classes/__tests__/ApiPreparation.test.ts +0 -257
  39. package/src/classes/__tests__/ApiResponse.test.ts +0 -547
  40. package/src/classes/__tests__/ApiStatus.test.ts +0 -403
  41. package/src/classes/__tests__/Meta.test.ts +0 -629
  42. package/src/classes/__tests__/MetaManager.test.ts +0 -836
  43. package/src/classes/__tests__/MetaOg.test.ts +0 -677
  44. package/src/classes/__tests__/MetaTwitter.test.ts +0 -423
  45. package/src/functions/anyToString.ts +0 -36
  46. package/src/functions/applyTemplate.ts +0 -63
  47. package/src/functions/arrFill.ts +0 -10
  48. package/src/functions/copyObject.ts +0 -10
  49. package/src/functions/createElement.ts +0 -40
  50. package/src/functions/domQuerySelector.ts +0 -15
  51. package/src/functions/domQuerySelectorAll.ts +0 -15
  52. package/src/functions/encodeAttribute.ts +0 -15
  53. package/src/functions/eventStopPropagation.ts +0 -10
  54. package/src/functions/executeFunction.ts +0 -13
  55. package/src/functions/executePromise.ts +0 -19
  56. package/src/functions/forEach.ts +0 -39
  57. package/src/functions/frame.ts +0 -38
  58. package/src/functions/getAttributes.ts +0 -27
  59. package/src/functions/getClipboardData.ts +0 -13
  60. package/src/functions/getColumn.ts +0 -18
  61. package/src/functions/getElement.ts +0 -35
  62. package/src/functions/getElementId.ts +0 -39
  63. package/src/functions/getElementItem.ts +0 -27
  64. package/src/functions/getElementOrWindow.ts +0 -23
  65. package/src/functions/getExp.ts +0 -21
  66. package/src/functions/getItemByPath.ts +0 -24
  67. package/src/functions/getKey.ts +0 -9
  68. package/src/functions/getLengthOfAllArray.ts +0 -13
  69. package/src/functions/getMaxLengthAllArray.ts +0 -13
  70. package/src/functions/getMinLengthAllArray.ts +0 -13
  71. package/src/functions/getMouseClient.ts +0 -17
  72. package/src/functions/getMouseClientX.ts +0 -9
  73. package/src/functions/getMouseClientY.ts +0 -9
  74. package/src/functions/getObjectByKeys.ts +0 -24
  75. package/src/functions/getObjectNoUndefined.ts +0 -23
  76. package/src/functions/getObjectOrNone.ts +0 -11
  77. package/src/functions/getRandomText.ts +0 -29
  78. package/src/functions/getRequestString.ts +0 -21
  79. package/src/functions/getStepPercent.ts +0 -19
  80. package/src/functions/getStepValue.ts +0 -19
  81. package/src/functions/goScroll.ts +0 -40
  82. package/src/functions/inArray.ts +0 -10
  83. package/src/functions/initScrollbarOffset.ts +0 -14
  84. package/src/functions/intersectKey.ts +0 -34
  85. package/src/functions/isArray.ts +0 -9
  86. package/src/functions/isDifferent.ts +0 -27
  87. package/src/functions/isDomRuntime.ts +0 -12
  88. package/src/functions/isFilled.ts +0 -49
  89. package/src/functions/isFloat.ts +0 -16
  90. package/src/functions/isFunction.ts +0 -11
  91. package/src/functions/isInDom.ts +0 -15
  92. package/src/functions/isIntegerBetween.ts +0 -11
  93. package/src/functions/isNull.ts +0 -11
  94. package/src/functions/isNumber.ts +0 -16
  95. package/src/functions/isObject.ts +0 -9
  96. package/src/functions/isObjectNotArray.ts +0 -11
  97. package/src/functions/isSelected.ts +0 -32
  98. package/src/functions/isSelectedByList.ts +0 -19
  99. package/src/functions/isString.ts +0 -9
  100. package/src/functions/isWindow.ts +0 -11
  101. package/src/functions/random.ts +0 -10
  102. package/src/functions/replaceRecursive.ts +0 -60
  103. package/src/functions/replaceTemplate.ts +0 -22
  104. package/src/functions/secondToTime.ts +0 -20
  105. package/src/functions/setElementItem.ts +0 -56
  106. package/src/functions/setValues.ts +0 -59
  107. package/src/functions/splice.ts +0 -59
  108. package/src/functions/strFill.ts +0 -12
  109. package/src/functions/toArray.ts +0 -19
  110. package/src/functions/toCamelCase.ts +0 -16
  111. package/src/functions/toCamelCaseFirst.ts +0 -12
  112. package/src/functions/toDate.ts +0 -44
  113. package/src/functions/toKebabCase.ts +0 -25
  114. package/src/functions/toNumber.ts +0 -35
  115. package/src/functions/toNumberByMax.ts +0 -33
  116. package/src/functions/toPercent.ts +0 -10
  117. package/src/functions/toPercentBy100.ts +0 -12
  118. package/src/functions/transformation.ts +0 -59
  119. package/src/functions/uniqueArray.ts +0 -9
  120. package/src/functions/writeClipboardData.ts +0 -17
  121. package/src/library.ts +0 -116
  122. package/src/types/apiTypes.ts +0 -143
  123. package/src/types/basicTypes.ts +0 -155
  124. package/src/types/geoTypes.ts +0 -109
  125. package/src/types/metaTypes.ts +0 -764
  126. package/src/vite-env.d.ts +0 -1
@@ -1,403 +0,0 @@
1
- import { describe, it, expect, beforeEach } from 'vitest'
2
- import { ApiStatus } from '../ApiStatus'
3
-
4
- describe('ApiStatus', () => {
5
- let apiStatus: ApiStatus
6
-
7
- beforeEach(() => {
8
- apiStatus = new ApiStatus()
9
- })
10
-
11
- describe('get', () => {
12
- it('should return undefined when no status data is set', () => {
13
- expect(apiStatus.get()).toBeUndefined()
14
- })
15
-
16
- it('should return the status data', () => {
17
- const statusData = {
18
- status: 200,
19
- statusText: 'OK',
20
- error: undefined,
21
- lastResponse: { data: 'test' },
22
- lastMessage: 'Success'
23
- }
24
- apiStatus.set(statusData)
25
- expect(apiStatus.get()).toEqual(statusData)
26
- })
27
- })
28
-
29
- describe('getStatus', () => {
30
- it('should return undefined when no status code is set', () => {
31
- expect(apiStatus.getStatus()).toBeUndefined()
32
- })
33
-
34
- it('should return the status code', () => {
35
- apiStatus.setStatus(200)
36
- expect(apiStatus.getStatus()).toBe(200)
37
- })
38
-
39
- it('should return updated status code', () => {
40
- apiStatus.setStatus(200)
41
- apiStatus.setStatus(404)
42
- expect(apiStatus.getStatus()).toBe(404)
43
- })
44
- })
45
-
46
- describe('getStatusText', () => {
47
- it('should return undefined when no status text is set', () => {
48
- expect(apiStatus.getStatusText()).toBeUndefined()
49
- })
50
-
51
- it('should return the status text', () => {
52
- apiStatus.setStatus(200, 'OK')
53
- expect(apiStatus.getStatusText()).toBe('OK')
54
- })
55
-
56
- it('should return updated status text', () => {
57
- apiStatus.setStatus(200, 'OK')
58
- apiStatus.setStatus(404, 'Not Found')
59
- expect(apiStatus.getStatusText()).toBe('Not Found')
60
- })
61
- })
62
-
63
- describe('getError', () => {
64
- it('should return undefined when no error is set', () => {
65
- expect(apiStatus.getError()).toBeUndefined()
66
- })
67
-
68
- it('should return the error message', () => {
69
- apiStatus.setError('Something went wrong')
70
- expect(apiStatus.getError()).toBe('Something went wrong')
71
- })
72
-
73
- it('should return updated error message', () => {
74
- apiStatus.setError('First error')
75
- apiStatus.setError('Second error')
76
- expect(apiStatus.getError()).toBe('Second error')
77
- })
78
-
79
- it('should clear error when set to undefined', () => {
80
- apiStatus.setError('Error')
81
- apiStatus.setError(undefined)
82
- expect(apiStatus.getError()).toBeUndefined()
83
- })
84
- })
85
-
86
- describe('getResponse', () => {
87
- it('should return undefined when no response is set', () => {
88
- expect(apiStatus.getResponse()).toBeUndefined()
89
- })
90
-
91
- it('should return the last response data', () => {
92
- const responseData = { id: 1, name: 'Test' }
93
- apiStatus.setLastResponse(responseData)
94
- expect(apiStatus.getResponse()).toEqual(responseData)
95
- })
96
-
97
- it('should work with generic type', () => {
98
- interface UserResponse {
99
- userId: number
100
- username: string
101
- }
102
-
103
- const response: UserResponse = { userId: 123, username: 'test_user' }
104
- apiStatus.setLastResponse(response)
105
-
106
- const result = apiStatus.getResponse<UserResponse>()
107
- expect(result).toEqual(response)
108
- expect(result?.userId).toBe(123)
109
- expect(result?.username).toBe('test_user')
110
- })
111
-
112
- it('should handle array responses', () => {
113
- const arrayResponse = [1, 2, 3, 4, 5]
114
- apiStatus.setLastResponse(arrayResponse)
115
- expect(apiStatus.getResponse()).toEqual(arrayResponse)
116
- })
117
-
118
- it('should handle string responses', () => {
119
- apiStatus.setLastResponse('text response')
120
- expect(apiStatus.getResponse()).toBe('text response')
121
- })
122
- })
123
-
124
- describe('getMessage', () => {
125
- it('should return empty string when no message is set', () => {
126
- expect(apiStatus.getMessage()).toBe('')
127
- })
128
-
129
- it('should return the last message', () => {
130
- apiStatus.setLastMessage('Operation successful')
131
- expect(apiStatus.getMessage()).toBe('Operation successful')
132
- })
133
-
134
- it('should extract message from response with message field', () => {
135
- const response = {
136
- message: 'Auto-extracted message',
137
- data: 'some data'
138
- }
139
- apiStatus.setLastResponse(response)
140
- expect(apiStatus.getMessage()).toBe('Auto-extracted message')
141
- })
142
-
143
- it('should not extract message from non-object response', () => {
144
- apiStatus.setLastResponse('string response')
145
- expect(apiStatus.getMessage()).toBe('')
146
- })
147
-
148
- it('should not extract message from array response', () => {
149
- apiStatus.setLastResponse([{ message: 'test' }])
150
- expect(apiStatus.getMessage()).toBe('')
151
- })
152
- })
153
-
154
- describe('set', () => {
155
- it('should set all status fields', () => {
156
- const statusData = {
157
- status: 201,
158
- statusText: 'Created',
159
- error: 'No error',
160
- lastResponse: { created: true },
161
- lastMessage: 'Resource created'
162
- }
163
-
164
- apiStatus.set(statusData)
165
-
166
- expect(apiStatus.getStatus()).toBe(201)
167
- expect(apiStatus.getStatusText()).toBe('Created')
168
- expect(apiStatus.getError()).toBe('No error')
169
- expect(apiStatus.getResponse()).toEqual({ created: true })
170
- expect(apiStatus.getMessage()).toBe('Resource created')
171
- })
172
-
173
- it('should set partial status fields', () => {
174
- apiStatus.set({ status: 200 })
175
- expect(apiStatus.getStatus()).toBe(200)
176
- expect(apiStatus.getStatusText()).toBeUndefined()
177
- })
178
-
179
- it('should return this for chaining', () => {
180
- const result = apiStatus.set({ status: 200 })
181
- expect(result).toBe(apiStatus)
182
- })
183
-
184
- it('should update only specified fields', () => {
185
- apiStatus.set({
186
- status: 200,
187
- statusText: 'OK',
188
- lastMessage: 'First'
189
- })
190
-
191
- apiStatus.set({
192
- status: 404,
193
- lastMessage: 'Second'
194
- })
195
-
196
- expect(apiStatus.getStatus()).toBe(404)
197
- expect(apiStatus.getStatusText()).toBe('OK') // сохранился
198
- expect(apiStatus.getMessage()).toBe('Second')
199
- })
200
- })
201
-
202
- describe('setStatus', () => {
203
- it('should set status code only', () => {
204
- apiStatus.setStatus(200)
205
- expect(apiStatus.getStatus()).toBe(200)
206
- expect(apiStatus.getStatusText()).toBeUndefined()
207
- })
208
-
209
- it('should set status code and text', () => {
210
- apiStatus.setStatus(404, 'Not Found')
211
- expect(apiStatus.getStatus()).toBe(404)
212
- expect(apiStatus.getStatusText()).toBe('Not Found')
213
- })
214
-
215
- it('should return this for chaining', () => {
216
- const result = apiStatus.setStatus(200, 'OK')
217
- expect(result).toBe(apiStatus)
218
- })
219
-
220
- it('should allow chaining with other methods', () => {
221
- apiStatus
222
- .setStatus(200, 'OK')
223
- .setError('No error')
224
- .setLastMessage('Success')
225
-
226
- expect(apiStatus.getStatus()).toBe(200)
227
- expect(apiStatus.getStatusText()).toBe('OK')
228
- expect(apiStatus.getError()).toBe('No error')
229
- expect(apiStatus.getMessage()).toBe('Success')
230
- })
231
- })
232
-
233
- describe('setError', () => {
234
- it('should set error message', () => {
235
- apiStatus.setError('Network error')
236
- expect(apiStatus.getError()).toBe('Network error')
237
- })
238
-
239
- it('should clear error when undefined', () => {
240
- apiStatus.setError('Error')
241
- apiStatus.setError(undefined)
242
- expect(apiStatus.getError()).toBeUndefined()
243
- })
244
-
245
- it('should return this for chaining', () => {
246
- const result = apiStatus.setError('Error')
247
- expect(result).toBe(apiStatus)
248
- })
249
- })
250
-
251
- describe('setLastResponse', () => {
252
- it('should set last response data', () => {
253
- const data = { id: 1, name: 'Test' }
254
- apiStatus.setLastResponse(data)
255
- expect(apiStatus.getResponse()).toEqual(data)
256
- })
257
-
258
- it('should auto-extract message from response', () => {
259
- apiStatus.setLastResponse({
260
- message: 'Extracted message',
261
- data: 'test'
262
- })
263
- expect(apiStatus.getMessage()).toBe('Extracted message')
264
- expect(apiStatus.getResponse()).toEqual({
265
- message: 'Extracted message',
266
- data: 'test'
267
- })
268
- })
269
-
270
- it('should not extract message from non-object', () => {
271
- apiStatus.setLastResponse('text')
272
- expect(apiStatus.getMessage()).toBe('')
273
- })
274
-
275
- it('should not extract message from array', () => {
276
- apiStatus.setLastResponse([{ message: 'test' }])
277
- expect(apiStatus.getMessage()).toBe('')
278
- })
279
-
280
- it('should convert non-string message to string', () => {
281
- apiStatus.setLastResponse({ message: 123 })
282
- expect(apiStatus.getMessage()).toBe('123')
283
- })
284
-
285
- it('should return this for chaining', () => {
286
- const result = apiStatus.setLastResponse({ data: 'test' })
287
- expect(result).toBe(apiStatus)
288
- })
289
-
290
- it('should handle undefined response', () => {
291
- apiStatus.setLastResponse({ data: 'test' })
292
- apiStatus.setLastResponse(undefined)
293
- expect(apiStatus.getResponse()).toBeUndefined()
294
- })
295
- })
296
-
297
- describe('setLastMessage', () => {
298
- it('should set last message', () => {
299
- apiStatus.setLastMessage('Custom message')
300
- expect(apiStatus.getMessage()).toBe('Custom message')
301
- })
302
-
303
- it('should clear message when undefined', () => {
304
- apiStatus.setLastMessage('Message')
305
- apiStatus.setLastMessage(undefined)
306
- expect(apiStatus.getMessage()).toBe('')
307
- })
308
-
309
- it('should return this for chaining', () => {
310
- const result = apiStatus.setLastMessage('Message')
311
- expect(result).toBe(apiStatus)
312
- })
313
-
314
- it('should override message extracted from response', () => {
315
- apiStatus.setLastResponse({ message: 'Auto message' })
316
- apiStatus.setLastMessage('Manual message')
317
- expect(apiStatus.getMessage()).toBe('Manual message')
318
- })
319
- })
320
-
321
- describe('integration tests', () => {
322
- it('should handle complete workflow', () => {
323
- // Успешный запрос
324
- apiStatus
325
- .setStatus(200, 'OK')
326
- .setLastResponse({
327
- message: 'Data fetched successfully',
328
- data: { items: [1, 2, 3] }
329
- })
330
-
331
- expect(apiStatus.getStatus()).toBe(200)
332
- expect(apiStatus.getStatusText()).toBe('OK')
333
- expect(apiStatus.getMessage()).toBe('Data fetched successfully')
334
- expect(apiStatus.getResponse()).toEqual({
335
- message: 'Data fetched successfully',
336
- data: { items: [1, 2, 3] }
337
- })
338
- expect(apiStatus.getError()).toBeUndefined()
339
- })
340
-
341
- it('should handle error workflow', () => {
342
- // Запрос с ошибкой
343
- apiStatus
344
- .setStatus(500, 'Internal Server Error')
345
- .setError('Database connection failed')
346
- .setLastResponse(null)
347
-
348
- expect(apiStatus.getStatus()).toBe(500)
349
- expect(apiStatus.getStatusText()).toBe('Internal Server Error')
350
- expect(apiStatus.getError()).toBe('Database connection failed')
351
- expect(apiStatus.getResponse()).toBeNull()
352
- })
353
-
354
- it('should handle multiple updates', () => {
355
- // Первый запрос
356
- apiStatus
357
- .setStatus(200, 'OK')
358
- .setLastResponse({ id: 1 })
359
- .setLastMessage('First request')
360
-
361
- expect(apiStatus.getStatus()).toBe(200)
362
- expect(apiStatus.getMessage()).toBe('First request')
363
-
364
- // Второй запрос
365
- apiStatus
366
- .setStatus(201, 'Created')
367
- .setLastResponse({ id: 2 })
368
- .setLastMessage('Second request')
369
-
370
- expect(apiStatus.getStatus()).toBe(201)
371
- expect(apiStatus.getStatusText()).toBe('Created')
372
- expect(apiStatus.getResponse()).toEqual({ id: 2 })
373
- expect(apiStatus.getMessage()).toBe('Second request')
374
- })
375
-
376
- it('should work with typed generic', () => {
377
- const typedStatus = new ApiStatus()
378
- typedStatus.set({
379
- status: 200,
380
- statusText: 'OK'
381
- })
382
-
383
- expect(typedStatus.getStatus()).toBe(200)
384
- })
385
-
386
- it('should handle all setter methods in chain', () => {
387
- const result = apiStatus
388
- .setStatus(201, 'Created')
389
- .setError(undefined)
390
- .setLastResponse({ id: 123 })
391
- .setLastMessage('Resource created successfully')
392
-
393
- expect(result).toBe(apiStatus)
394
- expect(apiStatus.get()).toEqual({
395
- status: 201,
396
- statusText: 'Created',
397
- error: undefined,
398
- lastResponse: { id: 123 },
399
- lastMessage: 'Resource created successfully'
400
- })
401
- })
402
- })
403
- })