diginext-utils 2.0.31 → 2.0.33

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 (398) hide show
  1. package/README.md +162 -162
  2. package/dist/Checker.d.ts +8 -7
  3. package/dist/Checker.js +48 -28
  4. package/dist/Checker.mjs +29 -0
  5. package/dist/EventDispatcher.d.ts +12 -12
  6. package/dist/EventDispatcher.js +72 -47
  7. package/dist/EventDispatcher.mjs +54 -0
  8. package/dist/FileUpload.d.ts +11 -11
  9. package/dist/FileUpload.js +81 -61
  10. package/dist/FileUpload.mjs +62 -0
  11. package/dist/Slug.d.ts +9 -8
  12. package/dist/Slug.js +350 -330
  13. package/dist/Slug.mjs +331 -0
  14. package/dist/Timer-7b0c4e7c.d.ts +11 -0
  15. package/dist/Timer.d.ts +1 -4
  16. package/dist/Timer.js +31 -7
  17. package/dist/Timer.mjs +7 -0
  18. package/dist/Validation.d.ts +5 -4
  19. package/dist/Validation.js +54 -37
  20. package/dist/Validation.mjs +35 -0
  21. package/dist/array-dc599632.d.ts +158 -0
  22. package/dist/array.d.ts +1 -113
  23. package/dist/array.js +246 -266
  24. package/dist/array.mjs +49 -0
  25. package/dist/browser-8d042ffe.d.ts +22 -0
  26. package/dist/camera-1a859d72.d.ts +15 -0
  27. package/dist/chunk-5NTK5JAI.mjs +57 -0
  28. package/dist/chunk-5UEMANWE.mjs +91 -0
  29. package/dist/chunk-5ZOWNKSD.mjs +166 -0
  30. package/dist/chunk-6GNGTFNC.mjs +118 -0
  31. package/dist/chunk-7MK72U4O.mjs +19 -0
  32. package/dist/chunk-7XKT3AQX.mjs +17 -0
  33. package/dist/chunk-7ZCEZM7K.mjs +41 -0
  34. package/dist/chunk-AMBWJGSW.mjs +151 -0
  35. package/dist/chunk-C7S43KGB.mjs +15 -0
  36. package/dist/chunk-CJM7T7ON.mjs +24 -0
  37. package/dist/chunk-CKILLYAP.mjs +16 -0
  38. package/dist/chunk-DX7MUT3M.mjs +51 -0
  39. package/dist/chunk-EGUJQ5VF.mjs +32 -0
  40. package/dist/chunk-ETEIHDWU.mjs +25 -0
  41. package/dist/chunk-FJXSVGL7.mjs +22 -0
  42. package/dist/chunk-GJCAEOND.mjs +20 -0
  43. package/dist/chunk-GNJDIUYM.mjs +40 -0
  44. package/dist/chunk-IA7GINWD.mjs +39 -0
  45. package/dist/chunk-JEI7BOXY.mjs +21 -0
  46. package/dist/chunk-K4KENOE6.mjs +20 -0
  47. package/dist/chunk-KMERW6KS.mjs +34 -0
  48. package/dist/chunk-KPO3RH5G.mjs +27 -0
  49. package/dist/chunk-KWG5LYNK.mjs +100 -0
  50. package/dist/chunk-NUTQDHLQ.mjs +40 -0
  51. package/dist/chunk-O64XUDAH.mjs +35 -0
  52. package/dist/chunk-OYRPWQUA.mjs +257 -0
  53. package/dist/chunk-PNZ4KGXL.mjs +56 -0
  54. package/dist/chunk-QZYX26HT.mjs +24 -0
  55. package/dist/chunk-RDGP2CKM.mjs +195 -0
  56. package/dist/chunk-VFG5VU6S.mjs +12 -0
  57. package/dist/chunk-X3IMFCZG.mjs +23 -0
  58. package/dist/chunk-ZHNGZMRD.mjs +17 -0
  59. package/dist/color.d.ts +23 -22
  60. package/dist/color.js +96 -79
  61. package/dist/color.mjs +78 -0
  62. package/dist/console/enableConsole.d.ts +1 -2
  63. package/dist/console/enableConsole.js +38 -10
  64. package/dist/console/enableConsole.mjs +9 -0
  65. package/dist/console/index.d.ts +2 -11
  66. package/dist/console/index.js +58 -15
  67. package/dist/console/index.mjs +14 -0
  68. package/dist/console/log.d.ts +15 -14
  69. package/dist/console/log.js +74 -44
  70. package/dist/console/log.mjs +19 -0
  71. package/dist/createDir-220e0081.d.ts +13 -0
  72. package/dist/device/browser.d.ts +1 -5
  73. package/dist/device/browser.js +60 -32
  74. package/dist/device/browser.mjs +15 -0
  75. package/dist/device/camera.d.ts +1 -7
  76. package/dist/device/camera.js +184 -166
  77. package/dist/device/camera.mjs +8 -0
  78. package/dist/device/index.d.ts +1 -5
  79. package/dist/device/index.js +201 -216
  80. package/dist/device/index.mjs +15 -0
  81. package/dist/device/os.d.ts +11 -10
  82. package/dist/device/os.js +55 -28
  83. package/dist/device/os.mjs +33 -0
  84. package/dist/enableConsole-ddc24282.d.ts +11 -0
  85. package/dist/file/createDir.d.ts +1 -5
  86. package/dist/file/createDir.js +34 -13
  87. package/dist/file/createDir.mjs +7 -0
  88. package/dist/file/fileMove.d.ts +1 -4
  89. package/dist/file/fileMove.js +49 -29
  90. package/dist/file/fileMove.mjs +7 -0
  91. package/dist/file/findFilesByExt.d.ts +1 -13
  92. package/dist/file/findFilesByExt.js +64 -45
  93. package/dist/file/findFilesByExt.mjs +11 -0
  94. package/dist/file/index.d.ts +10 -8
  95. package/dist/file/index.js +104 -9
  96. package/dist/file/index.mjs +17 -0
  97. package/dist/fileMove-3a09e429.d.ts +13 -0
  98. package/dist/findFilesByExt-753e91d7.d.ts +24 -0
  99. package/dist/images/index.d.ts +2 -2
  100. package/dist/images/index.js +131 -8
  101. package/dist/images/index.mjs +15 -0
  102. package/dist/images/loadImage.d.ts +3 -0
  103. package/dist/images/loadImage.js +42 -0
  104. package/dist/images/loadImage.mjs +21 -0
  105. package/dist/images/resize.d.ts +3 -2
  106. package/dist/images/resize.js +60 -34
  107. package/dist/images/resize.mjs +9 -0
  108. package/dist/images/upload.d.ts +10 -9
  109. package/dist/images/upload.js +130 -25
  110. package/dist/images/upload.mjs +14 -0
  111. package/dist/index-1f738e52.d.ts +22 -0
  112. package/dist/index-22309f0c.d.ts +23 -0
  113. package/dist/index-6ae3c86b.d.ts +63 -0
  114. package/dist/index-c8fffc86.d.ts +90 -0
  115. package/dist/index-d652ed2c.d.ts +26 -0
  116. package/dist/index.d.ts +47 -36
  117. package/dist/index.js +1352 -62
  118. package/dist/index.mjs +87 -0
  119. package/dist/json.d.ts +8 -7
  120. package/dist/json.js +48 -28
  121. package/dist/json.mjs +29 -0
  122. package/dist/math/diffDate.d.ts +6 -5
  123. package/dist/math/diffDate.js +33 -11
  124. package/dist/math/diffDate.mjs +9 -0
  125. package/dist/math/index.d.ts +3 -30
  126. package/dist/math/index.js +159 -92
  127. package/dist/math/index.mjs +34 -0
  128. package/dist/math/positiveNumber.d.ts +3 -2
  129. package/dist/math/positiveNumber.js +53 -14
  130. package/dist/math/positiveNumber.mjs +10 -0
  131. package/dist/name/en.d.ts +5 -4
  132. package/dist/name/en.js +37 -19
  133. package/dist/name/en.mjs +9 -0
  134. package/dist/name/index.d.ts +3 -12
  135. package/dist/name/index.js +87 -12
  136. package/dist/name/index.mjs +20 -0
  137. package/dist/name/vi.d.ts +5 -4
  138. package/dist/name/vi.js +63 -25
  139. package/dist/name/vi.mjs +14 -0
  140. package/{esm/object.d.ts → dist/object-43aaaf92.d.ts} +79 -58
  141. package/dist/object.d.ts +1 -59
  142. package/dist/object.js +96 -71
  143. package/dist/object.mjs +21 -0
  144. package/dist/permission/index.d.ts +8 -7
  145. package/dist/permission/index.js +230 -6
  146. package/dist/permission/index.mjs +15 -0
  147. package/dist/permission/requestCamera.d.ts +1 -5
  148. package/dist/permission/requestCamera.js +49 -38
  149. package/dist/permission/requestCamera.mjs +9 -0
  150. package/dist/permission/requestDeviceOrientationControl.d.ts +1 -2
  151. package/dist/permission/requestDeviceOrientationControl.js +203 -36
  152. package/dist/permission/requestDeviceOrientationControl.mjs +10 -0
  153. package/dist/requestCamera-32b7dfc7.d.ts +14 -0
  154. package/dist/requestDeviceOrientationControl-b6458660.d.ts +11 -0
  155. package/dist/response/index.d.ts +49 -48
  156. package/dist/response/index.js +92 -47
  157. package/dist/response/index.mjs +16 -0
  158. package/dist/string/formatNumber.d.ts +7 -6
  159. package/dist/string/formatNumber.js +53 -12
  160. package/dist/string/formatNumber.mjs +10 -0
  161. package/dist/string/generatePassword.d.ts +10 -9
  162. package/dist/string/generatePassword.js +52 -21
  163. package/dist/string/generatePassword.mjs +10 -0
  164. package/dist/string/generateUUID.d.ts +3 -2
  165. package/dist/string/generateUUID.js +37 -34
  166. package/dist/string/generateUUID.mjs +9 -0
  167. package/dist/string/index.d.ts +6 -65
  168. package/dist/string/index.js +312 -157
  169. package/dist/string/index.mjs +31 -0
  170. package/dist/string/makeDaySlug.d.ts +31 -30
  171. package/dist/string/makeDaySlug.js +43 -19
  172. package/dist/string/makeDaySlug.mjs +9 -0
  173. package/dist/string/random.d.ts +14 -13
  174. package/dist/string/random.js +53 -22
  175. package/dist/string/random.mjs +19 -0
  176. package/dist/string/trimNull.d.ts +3 -2
  177. package/dist/string/trimNull.js +45 -17
  178. package/dist/string/trimNull.mjs +9 -0
  179. package/dist/string/url.d.ts +1 -36
  180. package/dist/string/url.js +115 -97
  181. package/dist/string/url.mjs +22 -0
  182. package/dist/url-60657387.d.ts +57 -0
  183. package/package.json +66 -66
  184. package/src/Checker.ts +29 -29
  185. package/src/EventDispatcher.ts +62 -62
  186. package/src/FileUpload.ts +66 -66
  187. package/src/Slug.ts +365 -365
  188. package/src/Timer.ts +7 -7
  189. package/src/Validation.ts +36 -36
  190. package/src/array.ts +285 -285
  191. package/src/color.ts +87 -87
  192. package/src/console/enableConsole.ts +8 -8
  193. package/src/console/index.ts +17 -17
  194. package/src/console/log.ts +39 -39
  195. package/src/device/browser.ts +29 -29
  196. package/src/device/camera.ts +207 -207
  197. package/src/device/index.ts +230 -230
  198. package/src/device/os.ts +29 -29
  199. package/src/file/createDir.ts +14 -14
  200. package/src/file/fileMove.ts +32 -32
  201. package/src/file/findFilesByExt.ts +46 -46
  202. package/src/file/index.ts +7 -7
  203. package/src/images/index.ts +3 -3
  204. package/src/images/loadImage.ts +16 -0
  205. package/src/images/resize.ts +35 -35
  206. package/src/images/upload.ts +24 -24
  207. package/src/index.ts +39 -39
  208. package/src/json.ts +29 -29
  209. package/src/math/diffDate.ts +10 -10
  210. package/src/math/index.ts +90 -90
  211. package/src/math/positiveNumber.ts +12 -12
  212. package/src/name/en.ts +27 -27
  213. package/src/name/index.ts +8 -8
  214. package/src/name/vi.ts +23 -23
  215. package/src/object.ts +72 -72
  216. package/src/permission/index.ts +6 -6
  217. package/src/permission/requestCamera.ts +43 -43
  218. package/src/permission/requestDeviceOrientationControl.ts +33 -33
  219. package/src/response/index.ts +45 -45
  220. package/src/string/formatNumber.ts +12 -12
  221. package/src/string/generatePassword.ts +18 -18
  222. package/src/string/generateUUID.ts +37 -37
  223. package/src/string/index.ts +180 -180
  224. package/src/string/makeDaySlug.ts +40 -40
  225. package/src/string/random.ts +24 -24
  226. package/src/string/trimNull.ts +16 -16
  227. package/src/string/url.ts +116 -116
  228. package/dist/Checker.js.map +0 -1
  229. package/dist/EventDispatcher.js.map +0 -1
  230. package/dist/FileUpload.js.map +0 -1
  231. package/dist/Slug.js.map +0 -1
  232. package/dist/Timer.js.map +0 -1
  233. package/dist/Validation.js.map +0 -1
  234. package/dist/array.js.map +0 -1
  235. package/dist/color.js.map +0 -1
  236. package/dist/console/enableConsole.js.map +0 -1
  237. package/dist/console/index.js.map +0 -1
  238. package/dist/console/log.js.map +0 -1
  239. package/dist/device/browser.js.map +0 -1
  240. package/dist/device/camera.js.map +0 -1
  241. package/dist/device/index.js.map +0 -1
  242. package/dist/device/os.js.map +0 -1
  243. package/dist/file/createDir.js.map +0 -1
  244. package/dist/file/fileMove.js.map +0 -1
  245. package/dist/file/findFilesByExt.js.map +0 -1
  246. package/dist/file/index.js.map +0 -1
  247. package/dist/images/index.js.map +0 -1
  248. package/dist/images/resize.js.map +0 -1
  249. package/dist/images/upload.js.map +0 -1
  250. package/dist/index.js.map +0 -1
  251. package/dist/json.js.map +0 -1
  252. package/dist/math/diffDate.js.map +0 -1
  253. package/dist/math/index.js.map +0 -1
  254. package/dist/math/positiveNumber.js.map +0 -1
  255. package/dist/name/en.js.map +0 -1
  256. package/dist/name/index.js.map +0 -1
  257. package/dist/name/vi.js.map +0 -1
  258. package/dist/object.js.map +0 -1
  259. package/dist/permission/index.js.map +0 -1
  260. package/dist/permission/requestCamera.js.map +0 -1
  261. package/dist/permission/requestDeviceOrientationControl.js.map +0 -1
  262. package/dist/response/index.js.map +0 -1
  263. package/dist/string/formatNumber.js.map +0 -1
  264. package/dist/string/generatePassword.js.map +0 -1
  265. package/dist/string/generateUUID.js.map +0 -1
  266. package/dist/string/index.js.map +0 -1
  267. package/dist/string/makeDaySlug.js.map +0 -1
  268. package/dist/string/random.js.map +0 -1
  269. package/dist/string/trimNull.js.map +0 -1
  270. package/dist/string/url.js.map +0 -1
  271. package/esm/Checker.d.ts +0 -8
  272. package/esm/Checker.js +0 -28
  273. package/esm/Checker.js.map +0 -1
  274. package/esm/EventDispatcher.d.ts +0 -13
  275. package/esm/EventDispatcher.js +0 -49
  276. package/esm/EventDispatcher.js.map +0 -1
  277. package/esm/FileUpload.d.ts +0 -12
  278. package/esm/FileUpload.js +0 -62
  279. package/esm/FileUpload.js.map +0 -1
  280. package/esm/Slug.d.ts +0 -9
  281. package/esm/Slug.js +0 -330
  282. package/esm/Slug.js.map +0 -1
  283. package/esm/Timer.d.ts +0 -4
  284. package/esm/Timer.js +0 -7
  285. package/esm/Timer.js.map +0 -1
  286. package/esm/Validation.d.ts +0 -5
  287. package/esm/Validation.js +0 -37
  288. package/esm/Validation.js.map +0 -1
  289. package/esm/array.d.ts +0 -113
  290. package/esm/array.js +0 -275
  291. package/esm/array.js.map +0 -1
  292. package/esm/color.d.ts +0 -23
  293. package/esm/color.js +0 -80
  294. package/esm/color.js.map +0 -1
  295. package/esm/console/enableConsole.d.ts +0 -2
  296. package/esm/console/enableConsole.js +0 -7
  297. package/esm/console/enableConsole.js.map +0 -1
  298. package/esm/console/index.d.ts +0 -11
  299. package/esm/console/index.js +0 -13
  300. package/esm/console/index.js.map +0 -1
  301. package/esm/console/log.d.ts +0 -15
  302. package/esm/console/log.js +0 -33
  303. package/esm/console/log.js.map +0 -1
  304. package/esm/device/browser.d.ts +0 -5
  305. package/esm/device/browser.js +0 -30
  306. package/esm/device/browser.js.map +0 -1
  307. package/esm/device/camera.d.ts +0 -7
  308. package/esm/device/camera.js +0 -168
  309. package/esm/device/camera.js.map +0 -1
  310. package/esm/device/index.d.ts +0 -5
  311. package/esm/device/index.js +0 -217
  312. package/esm/device/index.js.map +0 -1
  313. package/esm/device/os.d.ts +0 -11
  314. package/esm/device/os.js +0 -28
  315. package/esm/device/os.js.map +0 -1
  316. package/esm/file/createDir.d.ts +0 -5
  317. package/esm/file/createDir.js +0 -13
  318. package/esm/file/createDir.js.map +0 -1
  319. package/esm/file/fileMove.d.ts +0 -4
  320. package/esm/file/fileMove.js +0 -29
  321. package/esm/file/fileMove.js.map +0 -1
  322. package/esm/file/findFilesByExt.d.ts +0 -13
  323. package/esm/file/findFilesByExt.js +0 -46
  324. package/esm/file/findFilesByExt.js.map +0 -1
  325. package/esm/file/index.d.ts +0 -9
  326. package/esm/file/index.js +0 -6
  327. package/esm/file/index.js.map +0 -1
  328. package/esm/images/index.d.ts +0 -2
  329. package/esm/images/index.js +0 -4
  330. package/esm/images/index.js.map +0 -1
  331. package/esm/images/resize.d.ts +0 -2
  332. package/esm/images/resize.js +0 -31
  333. package/esm/images/resize.js.map +0 -1
  334. package/esm/images/upload.d.ts +0 -10
  335. package/esm/images/upload.js +0 -20
  336. package/esm/images/upload.js.map +0 -1
  337. package/esm/index.d.ts +0 -37
  338. package/esm/index.js +0 -38
  339. package/esm/index.js.map +0 -1
  340. package/esm/json.d.ts +0 -8
  341. package/esm/json.js +0 -28
  342. package/esm/json.js.map +0 -1
  343. package/esm/math/diffDate.d.ts +0 -5
  344. package/esm/math/diffDate.js +0 -10
  345. package/esm/math/diffDate.js.map +0 -1
  346. package/esm/math/index.d.ts +0 -30
  347. package/esm/math/index.js +0 -78
  348. package/esm/math/index.js.map +0 -1
  349. package/esm/math/positiveNumber.d.ts +0 -2
  350. package/esm/math/positiveNumber.js +0 -13
  351. package/esm/math/positiveNumber.js.map +0 -1
  352. package/esm/name/en.d.ts +0 -5
  353. package/esm/name/en.js +0 -22
  354. package/esm/name/en.js.map +0 -1
  355. package/esm/name/index.d.ts +0 -12
  356. package/esm/name/index.js +0 -6
  357. package/esm/name/index.js.map +0 -1
  358. package/esm/name/vi.d.ts +0 -5
  359. package/esm/name/vi.js +0 -24
  360. package/esm/name/vi.js.map +0 -1
  361. package/esm/object.js +0 -70
  362. package/esm/object.js.map +0 -1
  363. package/esm/permission/index.d.ts +0 -8
  364. package/esm/permission/index.js +0 -5
  365. package/esm/permission/index.js.map +0 -1
  366. package/esm/permission/requestCamera.d.ts +0 -5
  367. package/esm/permission/requestCamera.js +0 -39
  368. package/esm/permission/requestCamera.js.map +0 -1
  369. package/esm/permission/requestDeviceOrientationControl.d.ts +0 -2
  370. package/esm/permission/requestDeviceOrientationControl.js +0 -35
  371. package/esm/permission/requestDeviceOrientationControl.js.map +0 -1
  372. package/esm/response/index.d.ts +0 -49
  373. package/esm/response/index.js +0 -46
  374. package/esm/response/index.js.map +0 -1
  375. package/esm/string/formatNumber.d.ts +0 -6
  376. package/esm/string/formatNumber.js +0 -11
  377. package/esm/string/formatNumber.js.map +0 -1
  378. package/esm/string/generatePassword.d.ts +0 -9
  379. package/esm/string/generatePassword.js +0 -20
  380. package/esm/string/generatePassword.js.map +0 -1
  381. package/esm/string/generateUUID.d.ts +0 -2
  382. package/esm/string/generateUUID.js +0 -33
  383. package/esm/string/generateUUID.js.map +0 -1
  384. package/esm/string/index.d.ts +0 -65
  385. package/esm/string/index.js +0 -150
  386. package/esm/string/index.js.map +0 -1
  387. package/esm/string/makeDaySlug.d.ts +0 -31
  388. package/esm/string/makeDaySlug.js +0 -16
  389. package/esm/string/makeDaySlug.js.map +0 -1
  390. package/esm/string/random.d.ts +0 -14
  391. package/esm/string/random.js +0 -20
  392. package/esm/string/random.js.map +0 -1
  393. package/esm/string/trimNull.d.ts +0 -2
  394. package/esm/string/trimNull.js +0 -14
  395. package/esm/string/trimNull.js.map +0 -1
  396. package/esm/string/url.d.ts +0 -36
  397. package/esm/string/url.js +0 -98
  398. package/esm/string/url.js.map +0 -1
@@ -1,45 +1,45 @@
1
- import _ from "lodash";
2
- import { logRes } from "../console/log";
3
-
4
- export const getResponse = () => {
5
- return { status: 0, messages: [], data: {} };
6
- };
7
-
8
- export const getSuccessResponse = (data: any, message?: string) => {
9
- return { status: 1, messages: message ? [message] : [], data: data };
10
- };
11
-
12
- export const getFailedResponse = (...messages: any[]) => {
13
- if (!messages) messages = ["What's do you want?"];
14
- return { status: 0, error: true, messages: [...messages], data: {} };
15
- };
16
-
17
- export const Response = {
18
- send: (res: any, data: any = {}) => {
19
- if (res.locals.logEnabled) logRes(res, data);
20
- if (data.error) return Response.failed(res, data.error);
21
- return Response.succeed(res, data);
22
- },
23
- succeed: (res: any, data: any = {}) => {
24
- if (res.locals.logEnabled) logRes(res, data);
25
- return res.status(200).json(getSuccessResponse(data));
26
- },
27
- failed: (res: any, ...messages: string[]) => {
28
- if (res.locals.logEnabled) logRes(res, ...messages);
29
- return res.status(200).json(getFailedResponse(...messages));
30
- },
31
- rejected: (res: any, message?: string) => {
32
- const msg = message ? message : "Permissions denied.";
33
- if (res.locals.logEnabled) logRes(res, { message: msg });
34
- return res.status(403).json(getFailedResponse(msg));
35
- },
36
- ignore: (res: any, message?: string) => {
37
- const msg = message ? message : "What do you want?";
38
- if (res.locals.logEnabled) logRes(res, { statusCode: 404, message: msg });
39
- return res.status(200).json(getFailedResponse(msg));
40
- },
41
- };
42
-
43
- const response = { getResponse, getSuccessResponse, getFailedResponse, Response };
44
-
45
- export default response;
1
+ import _ from "lodash";
2
+ import { logRes } from "../console/log";
3
+
4
+ export const getResponse = () => {
5
+ return { status: 0, messages: [], data: {} };
6
+ };
7
+
8
+ export const getSuccessResponse = (data: any, message?: string) => {
9
+ return { status: 1, messages: message ? [message] : [], data: data };
10
+ };
11
+
12
+ export const getFailedResponse = (...messages: any[]) => {
13
+ if (!messages) messages = ["What's do you want?"];
14
+ return { status: 0, error: true, messages: [...messages], data: {} };
15
+ };
16
+
17
+ export const Response = {
18
+ send: (res: any, data: any = {}) => {
19
+ if (res.locals.logEnabled) logRes(res, data);
20
+ if (data.error) return Response.failed(res, data.error);
21
+ return Response.succeed(res, data);
22
+ },
23
+ succeed: (res: any, data: any = {}) => {
24
+ if (res.locals.logEnabled) logRes(res, data);
25
+ return res.status(200).json(getSuccessResponse(data));
26
+ },
27
+ failed: (res: any, ...messages: string[]) => {
28
+ if (res.locals.logEnabled) logRes(res, ...messages);
29
+ return res.status(200).json(getFailedResponse(...messages));
30
+ },
31
+ rejected: (res: any, message?: string) => {
32
+ const msg = message ? message : "Permissions denied.";
33
+ if (res.locals.logEnabled) logRes(res, { message: msg });
34
+ return res.status(403).json(getFailedResponse(msg));
35
+ },
36
+ ignore: (res: any, message?: string) => {
37
+ const msg = message ? message : "What do you want?";
38
+ if (res.locals.logEnabled) logRes(res, { statusCode: 404, message: msg });
39
+ return res.status(200).json(getFailedResponse(msg));
40
+ },
41
+ };
42
+
43
+ const response = { getResponse, getSuccessResponse, getFailedResponse, Response };
44
+
45
+ export default response;
@@ -1,12 +1,12 @@
1
- import { toInt } from "../object";
2
-
3
- /**
4
- * Format the input number with commas
5
- * @example 1000000 -> 1,000,000
6
- */
7
- export function formatNumber(num: number, prefix = "$") {
8
- const numRound = Math.round((toInt(num) + Number.EPSILON) * 100) / 100;
9
- return Number.isNaN(numRound) ? "0" : "" + numRound.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, prefix + "1,");
10
- }
11
-
12
- export default formatNumber;
1
+ import { toInt } from "../object";
2
+
3
+ /**
4
+ * Format the input number with commas
5
+ * @example 1000000 -> 1,000,000
6
+ */
7
+ export function formatNumber(num: number, prefix = "$") {
8
+ const numRound = Math.round((toInt(num) + Number.EPSILON) * 100) / 100;
9
+ return Number.isNaN(numRound) ? "0" : "" + numRound.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, prefix + "1,");
10
+ }
11
+
12
+ export default formatNumber;
@@ -1,18 +1,18 @@
1
- import { numeric, punctuation, randomStringByLength, textLowCase } from "./random";
2
-
3
- /**
4
- * random password
5
- * - if hard = true -> random punctuation inside
6
- * @param {*} length
7
- * @param {Boolean} hard
8
- * @returns
9
- */
10
- export function generatePassword(length = 6, hard = true) {
11
- if (!Number.isFinite(length)) length = 6;
12
- if (length <= 0) length = 6;
13
- let pass = randomStringByLength(length, textLowCase + textLowCase.toUpperCase() + numeric);
14
- if (hard) pass = pass.replace(pass[Math.floor(pass.length / 2)], randomStringByLength(1, punctuation));
15
- return pass;
16
- }
17
-
18
- export default generatePassword;
1
+ import { numeric, punctuation, randomStringByLength, textLowCase } from "./random";
2
+
3
+ /**
4
+ * random password
5
+ * - if hard = true -> random punctuation inside
6
+ * @param {*} length
7
+ * @param {Boolean} hard
8
+ * @returns
9
+ */
10
+ export function generatePassword(length = 6, hard = true) {
11
+ if (!Number.isFinite(length)) length = 6;
12
+ if (length <= 0) length = 6;
13
+ let pass = randomStringByLength(length, textLowCase + textLowCase.toUpperCase() + numeric);
14
+ if (hard) pass = pass.replace(pass[Math.floor(pass.length / 2)], randomStringByLength(1, punctuation));
15
+ return pass;
16
+ }
17
+
18
+ export default generatePassword;
@@ -1,37 +1,37 @@
1
- //prettier-ignore
2
- const _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];
3
-
4
- export function generateUUID() {
5
- // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
6
-
7
- const d0 = (Math.random() * 0xffffffff) | 0;
8
- const d1 = (Math.random() * 0xffffffff) | 0;
9
- const d2 = (Math.random() * 0xffffffff) | 0;
10
- const d3 = (Math.random() * 0xffffffff) | 0;
11
- const uuid =
12
- _lut[d0 & 0xff] +
13
- _lut[(d0 >> 8) & 0xff] +
14
- _lut[(d0 >> 16) & 0xff] +
15
- _lut[(d0 >> 24) & 0xff] +
16
- "-" +
17
- _lut[d1 & 0xff] +
18
- _lut[(d1 >> 8) & 0xff] +
19
- "-" +
20
- _lut[((d1 >> 16) & 0x0f) | 0x40] +
21
- _lut[(d1 >> 24) & 0xff] +
22
- "-" +
23
- _lut[(d2 & 0x3f) | 0x80] +
24
- _lut[(d2 >> 8) & 0xff] +
25
- "-" +
26
- _lut[(d2 >> 16) & 0xff] +
27
- _lut[(d2 >> 24) & 0xff] +
28
- _lut[d3 & 0xff] +
29
- _lut[(d3 >> 8) & 0xff] +
30
- _lut[(d3 >> 16) & 0xff] +
31
- _lut[(d3 >> 24) & 0xff];
32
-
33
- // .toLowerCase() here flattens concatenated strings to save heap memory space.
34
- return uuid.toLowerCase();
35
- }
36
-
37
- export default generateUUID;
1
+ //prettier-ignore
2
+ const _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];
3
+
4
+ export function generateUUID() {
5
+ // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136
6
+
7
+ const d0 = (Math.random() * 0xffffffff) | 0;
8
+ const d1 = (Math.random() * 0xffffffff) | 0;
9
+ const d2 = (Math.random() * 0xffffffff) | 0;
10
+ const d3 = (Math.random() * 0xffffffff) | 0;
11
+ const uuid =
12
+ _lut[d0 & 0xff] +
13
+ _lut[(d0 >> 8) & 0xff] +
14
+ _lut[(d0 >> 16) & 0xff] +
15
+ _lut[(d0 >> 24) & 0xff] +
16
+ "-" +
17
+ _lut[d1 & 0xff] +
18
+ _lut[(d1 >> 8) & 0xff] +
19
+ "-" +
20
+ _lut[((d1 >> 16) & 0x0f) | 0x40] +
21
+ _lut[(d1 >> 24) & 0xff] +
22
+ "-" +
23
+ _lut[(d2 & 0x3f) | 0x80] +
24
+ _lut[(d2 >> 8) & 0xff] +
25
+ "-" +
26
+ _lut[(d2 >> 16) & 0xff] +
27
+ _lut[(d2 >> 24) & 0xff] +
28
+ _lut[d3 & 0xff] +
29
+ _lut[(d3 >> 8) & 0xff] +
30
+ _lut[(d3 >> 16) & 0xff] +
31
+ _lut[(d3 >> 24) & 0xff];
32
+
33
+ // .toLowerCase() here flattens concatenated strings to save heap memory space.
34
+ return uuid.toLowerCase();
35
+ }
36
+
37
+ export default generateUUID;
@@ -1,180 +1,180 @@
1
- // import { log } from "../../helper/log";
2
- // import { startCase, toLower } from "lodash";
3
- declare var XRegExp: any;
4
-
5
- import { isNull } from "../object";
6
-
7
- //prettier-ignore
8
- const char_map: { [key: string]: any } = { À: "A", Á: "A", Â: "A", Ã: "A", Ä: "A", Å: "A", Æ: "AE", Ç: "C", È: "E", É: "E", Ê: "E", Ë: "E", Ì: "I", Í: "I", Î: "I", Ï: "I", Ð: "D", Ñ: "N", Ò: "O", Ó: "O", Ô: "O", Õ: "O", Ö: "O", Ő: "O", Ø: "O", Ù: "U", Ú: "U", Û: "U", Ű: "U", Ý: "Y", Þ: "TH", ß: "ss", à: "a", á: "a", â: "a", ã: "a", ä: "a", å: "a", æ: "ae", è: "e", é: "e", ê: "e", ë: "e", ì: "i", í: "i", î: "i", ï: "i", ð: "d", ñ: "n", ò: "o", ó: "o", ô: "o", õ: "o", ö: "o", ő: "o", ø: "o", ù: "u", ú: "u", û: "u", ű: "u", ý: "y", þ: "th", ÿ: "y", "©": "(c)", Γ: "G", Δ: "D", Θ: "8", Λ: "L", Ξ: "3", Π: "P", Σ: "S", Φ: "F", Ψ: "PS", Ω: "W", Ά: "A", Έ: "E", Ί: "I", Ό: "O", Ύ: "Y", Ή: "H", Ώ: "W", Ϊ: "I", Ϋ: "Y", β: "b", "γ": "y", δ: "d", ε: "e", ζ: "z", η: "h", θ: "8", ι: "i", κ: "k", λ: "l", μ: "m", ν: "n", ξ: "3", ο: "o", π: "p", ρ: "r", σ: "s", τ: "t", υ: "y", φ: "f", χ: "x", ψ: "ps", ω: "w", ά: "a", έ: "e", ί: "i", ό: "o", ύ: "y", ή: "h", ώ: "w", ς: "s", ϊ: "i", ΰ: "y", ϋ: "y", ΐ: "i", Ş: "S", İ: "I", Ü: "U", Ğ: "G", ş: "s", ı: "i", ç: "c", ü: "u", ğ: "g", А: "A", Б: "B", В: "V", Г: "G", Д: "D", Е: "E", Ё: "Yo", Ж: "Zh", З: "Z", И: "I", Й: "J", К: "K", Л: "L", М: "M", Н: "N", О: "O", П: "P", Р: "R", С: "S", Т: "T", У: "U", Ф: "F", Х: "H", Ц: "C", Ч: "Ch", Ш: "Sh", Щ: "Sh", Ъ: "", Ы: "Y", Ь: "", Э: "E", Ю: "Yu", Я: "Ya", а: "a", б: "b", в: "v", г: "g", д: "d", е: "e", ё: "yo", ж: "zh", з: "z", и: "i", й: "j", к: "k", л: "l", м: "m", н: "n", о: "o", п: "p", р: "r", с: "s", т: "t", у: "u", ф: "f", х: "h", ц: "c", ч: "ch", ш: "sh", щ: "sh", ъ: "", ы: "y", ь: "", э: "e", ю: "yu", я: "ya", Є: "Ye", І: "I", Ї: "Yi", Ґ: "G", є: "ye", і: "i", ї: "yi", ґ: "g", Č: "C", Ď: "D", Ě: "E", Ň: "N", Ř: "R", Š: "S", Ť: "T", Ů: "U", Ž: "Z", č: "c", ď: "d", ě: "e", ň: "n", ř: "r", š: "s", ť: "t", ů: "u", ž: "z", Ą: "A", Ć: "C", Ę: "e", Ł: "L", Ń: "N", Ś: "S", Ź: "Z", Ż: "Z", ą: "a", ć: "c", ę: "e", ł: "l", ń: "n", ś: "s", ź: "z", ż: "z", Ā: "A", Ē: "E", Ģ: "G", Ī: "i", Ķ: "k", Ļ: "L", Ņ: "N", Ū: "u", ā: "a", ē: "e", ģ: "g", ī: "i", ķ: "k", ļ: "l", ņ: "n", ū: "u" };
9
-
10
- /**
11
- * Get string between str1 and str2 from text
12
- */
13
- export const getBetween = (text: string, str1: string, str2 = "") => {
14
- if (!text) return "";
15
- if (text.indexOf(str1) <= -1) return "";
16
-
17
- const firstIndex = text.indexOf(str1) + str1.length;
18
- const secondIndex = str2 ? text.indexOf(str2, firstIndex) : text.length;
19
- return text.substring(firstIndex, secondIndex);
20
- };
21
-
22
- /**
23
- * Convert object to string
24
- */
25
- export const makeString = (object: any = "") => {
26
- /// Ensure some object is a coerced to a string
27
- if (isNull(object)) return "";
28
-
29
- return "" + object;
30
- };
31
-
32
- /**
33
- * toUpperCase
34
- */
35
- export const toUpperCase = (str = "") => {
36
- return makeString(str).toUpperCase();
37
- };
38
-
39
- /**
40
- * toLowerCase
41
- */
42
- export const toLowerCase = (str = "") => {
43
- return makeString(str).toLowerCase();
44
- };
45
-
46
- /**
47
- * toLowerCase
48
- * @param {*} str
49
- * @return {string}
50
- */
51
- export const titleize = (str = "") => {
52
- const regString = new RegExp(/(?:^|\s|-)\S/g);
53
- return toLowerCase(str).replace(regString, function (c) {
54
- return c.toUpperCase();
55
- });
56
- };
57
-
58
- /**
59
- * Convert only first charater to UpperCase
60
- */
61
- export const capitalize = (str: string | any, lowercaseRest = 1) => {
62
- str = makeString(str);
63
- const remainingChars = !lowercaseRest ? str.slice(1) : str.slice(1).toLowerCase();
64
-
65
- return str.charAt(0).toUpperCase() + remainingChars;
66
- };
67
-
68
- /**
69
- * Convert first character from every single words to UpperCase
70
- */
71
- export const capitalizeName = (str: string) => {
72
- str = makeString(str);
73
-
74
- str = str.trim();
75
- str = str.replace(/^\s+|\s+$/gm, "");
76
-
77
- str = str.toLowerCase();
78
-
79
- const arr = str.split(" ");
80
-
81
- str = arr
82
- .map((item) => {
83
- return capitalize(item);
84
- })
85
- .filter((x) => x)
86
- .join(" ");
87
-
88
- return str;
89
- };
90
-
91
- export const clearUnicodeCharacters = (s: string, opt: { [key: string]: any } = {}) => {
92
- s = makeString(s);
93
-
94
- var defaults: { [key: string]: any } = {
95
- delimiter: " ",
96
- lowercase: true,
97
- replacements: {},
98
- transliterate: typeof XRegExp === "undefined" ? true : false,
99
- };
100
-
101
- // Merge options
102
- for (var k in defaults) {
103
- if (!opt.hasOwnProperty(k)) {
104
- opt[k] = defaults[k];
105
- }
106
- }
107
-
108
- // Vietnamese
109
- s = s.replace(/á|à|ả|ạ|ã|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/gi, "a");
110
- s = s.replace(/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ/gi, "e");
111
- s = s.replace(/i|í|ì|ỉ|ĩ|ị/gi, "i");
112
- s = s.replace(/ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ/gi, "o");
113
- s = s.replace(/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/gi, "u");
114
- s = s.replace(/ý|ỳ|ỷ|ỹ|ỵ/gi, "y");
115
- s = s.replace(/đ/gi, "d");
116
- s = "@" + s + "@";
117
- s = s.replace(/\@\-|\-\@|\@/gi, "");
118
-
119
- // Make custom replacements
120
- for (var k in opt.replacements) {
121
- s = s.replace(RegExp(k, "g"), opt.replacements[k]);
122
- }
123
-
124
- // Transliterate characters to ASCII
125
- if (opt.transliterate) {
126
- for (var k in char_map) {
127
- s = s.replace(RegExp(k, "g"), char_map[k]);
128
- }
129
- }
130
-
131
- // Replace non-alphanumeric characters with our delimiter
132
- var alnum = typeof XRegExp === "undefined" ? RegExp("[^a-z0-9]+", "ig") : XRegExp("[^\\p{L}\\p{N}]+", "ig");
133
- s = s.replace(alnum, opt.delimiter);
134
-
135
- // Remove duplicate delimiters
136
- s = s.replace(RegExp("[" + opt.delimiter + "]{2,}", "g"), opt.delimiter);
137
-
138
- // Truncate slug to max. characters
139
- s = s.substring(0, opt.limit);
140
-
141
- // Remove delimiter from ends
142
- s = s.replace(RegExp("(^" + opt.delimiter + "|" + opt.delimiter + "$)", "g"), "");
143
-
144
- return opt.lowercase ? s.toLowerCase() : s;
145
- };
146
-
147
- import { makeDaySlug } from "./makeDaySlug";
148
- import { generateUUID } from "./generateUUID";
149
- import { randAllCharacterByLength, randomStringByLength } from "./random";
150
- import { formatNumber } from "./formatNumber";
151
- import { generatePassword } from "./generatePassword";
152
- import { trimNull } from "./trimNull";
153
- import { addQueryParam, getUrlParams, isLink, getFileNameWithoutExtension, getFileNameWithExtension, getFileExtension, isImage } from "./url";
154
-
155
- const xstring = {
156
- getBetween,
157
- makeString,
158
- makeDaySlug,
159
- toUpperCase,
160
- toLowerCase,
161
- titleize,
162
- capitalize,
163
- capitalizeName,
164
- clearUnicodeCharacters,
165
- generateUUID,
166
- randAllCharacterByLength,
167
- randomStringByLength,
168
- formatNumber,
169
- generatePassword,
170
- trimNull,
171
- addQueryParam,
172
- getUrlParams,
173
- isLink,
174
- getFileNameWithoutExtension,
175
- getFileNameWithExtension,
176
- getFileExtension,
177
- isImage,
178
- };
179
-
180
- export default xstring;
1
+ // import { log } from "../../helper/log";
2
+ // import { startCase, toLower } from "lodash";
3
+ declare var XRegExp: any;
4
+
5
+ import { isNull } from "../object";
6
+
7
+ //prettier-ignore
8
+ const char_map: { [key: string]: any } = { À: "A", Á: "A", Â: "A", Ã: "A", Ä: "A", Å: "A", Æ: "AE", Ç: "C", È: "E", É: "E", Ê: "E", Ë: "E", Ì: "I", Í: "I", Î: "I", Ï: "I", Ð: "D", Ñ: "N", Ò: "O", Ó: "O", Ô: "O", Õ: "O", Ö: "O", Ő: "O", Ø: "O", Ù: "U", Ú: "U", Û: "U", Ű: "U", Ý: "Y", Þ: "TH", ß: "ss", à: "a", á: "a", â: "a", ã: "a", ä: "a", å: "a", æ: "ae", è: "e", é: "e", ê: "e", ë: "e", ì: "i", í: "i", î: "i", ï: "i", ð: "d", ñ: "n", ò: "o", ó: "o", ô: "o", õ: "o", ö: "o", ő: "o", ø: "o", ù: "u", ú: "u", û: "u", ű: "u", ý: "y", þ: "th", ÿ: "y", "©": "(c)", Γ: "G", Δ: "D", Θ: "8", Λ: "L", Ξ: "3", Π: "P", Σ: "S", Φ: "F", Ψ: "PS", Ω: "W", Ά: "A", Έ: "E", Ί: "I", Ό: "O", Ύ: "Y", Ή: "H", Ώ: "W", Ϊ: "I", Ϋ: "Y", β: "b", "γ": "y", δ: "d", ε: "e", ζ: "z", η: "h", θ: "8", ι: "i", κ: "k", λ: "l", μ: "m", ν: "n", ξ: "3", ο: "o", π: "p", ρ: "r", σ: "s", τ: "t", υ: "y", φ: "f", χ: "x", ψ: "ps", ω: "w", ά: "a", έ: "e", ί: "i", ό: "o", ύ: "y", ή: "h", ώ: "w", ς: "s", ϊ: "i", ΰ: "y", ϋ: "y", ΐ: "i", Ş: "S", İ: "I", Ü: "U", Ğ: "G", ş: "s", ı: "i", ç: "c", ü: "u", ğ: "g", А: "A", Б: "B", В: "V", Г: "G", Д: "D", Е: "E", Ё: "Yo", Ж: "Zh", З: "Z", И: "I", Й: "J", К: "K", Л: "L", М: "M", Н: "N", О: "O", П: "P", Р: "R", С: "S", Т: "T", У: "U", Ф: "F", Х: "H", Ц: "C", Ч: "Ch", Ш: "Sh", Щ: "Sh", Ъ: "", Ы: "Y", Ь: "", Э: "E", Ю: "Yu", Я: "Ya", а: "a", б: "b", в: "v", г: "g", д: "d", е: "e", ё: "yo", ж: "zh", з: "z", и: "i", й: "j", к: "k", л: "l", м: "m", н: "n", о: "o", п: "p", р: "r", с: "s", т: "t", у: "u", ф: "f", х: "h", ц: "c", ч: "ch", ш: "sh", щ: "sh", ъ: "", ы: "y", ь: "", э: "e", ю: "yu", я: "ya", Є: "Ye", І: "I", Ї: "Yi", Ґ: "G", є: "ye", і: "i", ї: "yi", ґ: "g", Č: "C", Ď: "D", Ě: "E", Ň: "N", Ř: "R", Š: "S", Ť: "T", Ů: "U", Ž: "Z", č: "c", ď: "d", ě: "e", ň: "n", ř: "r", š: "s", ť: "t", ů: "u", ž: "z", Ą: "A", Ć: "C", Ę: "e", Ł: "L", Ń: "N", Ś: "S", Ź: "Z", Ż: "Z", ą: "a", ć: "c", ę: "e", ł: "l", ń: "n", ś: "s", ź: "z", ż: "z", Ā: "A", Ē: "E", Ģ: "G", Ī: "i", Ķ: "k", Ļ: "L", Ņ: "N", Ū: "u", ā: "a", ē: "e", ģ: "g", ī: "i", ķ: "k", ļ: "l", ņ: "n", ū: "u" };
9
+
10
+ /**
11
+ * Get string between str1 and str2 from text
12
+ */
13
+ export const getBetween = (text: string, str1: string, str2 = "") => {
14
+ if (!text) return "";
15
+ if (text.indexOf(str1) <= -1) return "";
16
+
17
+ const firstIndex = text.indexOf(str1) + str1.length;
18
+ const secondIndex = str2 ? text.indexOf(str2, firstIndex) : text.length;
19
+ return text.substring(firstIndex, secondIndex);
20
+ };
21
+
22
+ /**
23
+ * Convert object to string
24
+ */
25
+ export const makeString = (object: any = "") => {
26
+ /// Ensure some object is a coerced to a string
27
+ if (isNull(object)) return "";
28
+
29
+ return "" + object;
30
+ };
31
+
32
+ /**
33
+ * toUpperCase
34
+ */
35
+ export const toUpperCase = (str = "") => {
36
+ return makeString(str).toUpperCase();
37
+ };
38
+
39
+ /**
40
+ * toLowerCase
41
+ */
42
+ export const toLowerCase = (str = "") => {
43
+ return makeString(str).toLowerCase();
44
+ };
45
+
46
+ /**
47
+ * toLowerCase
48
+ * @param {*} str
49
+ * @return {string}
50
+ */
51
+ export const titleize = (str = "") => {
52
+ const regString = new RegExp(/(?:^|\s|-)\S/g);
53
+ return toLowerCase(str).replace(regString, function (c) {
54
+ return c.toUpperCase();
55
+ });
56
+ };
57
+
58
+ /**
59
+ * Convert only first charater to UpperCase
60
+ */
61
+ export const capitalize = (str: string | any, lowercaseRest = 1) => {
62
+ str = makeString(str);
63
+ const remainingChars = !lowercaseRest ? str.slice(1) : str.slice(1).toLowerCase();
64
+
65
+ return str.charAt(0).toUpperCase() + remainingChars;
66
+ };
67
+
68
+ /**
69
+ * Convert first character from every single words to UpperCase
70
+ */
71
+ export const capitalizeName = (str: string) => {
72
+ str = makeString(str);
73
+
74
+ str = str.trim();
75
+ str = str.replace(/^\s+|\s+$/gm, "");
76
+
77
+ str = str.toLowerCase();
78
+
79
+ const arr = str.split(" ");
80
+
81
+ str = arr
82
+ .map((item) => {
83
+ return capitalize(item);
84
+ })
85
+ .filter((x) => x)
86
+ .join(" ");
87
+
88
+ return str;
89
+ };
90
+
91
+ export const clearUnicodeCharacters = (s: string, opt: { [key: string]: any } = {}) => {
92
+ s = makeString(s);
93
+
94
+ var defaults: { [key: string]: any } = {
95
+ delimiter: " ",
96
+ lowercase: true,
97
+ replacements: {},
98
+ transliterate: typeof XRegExp === "undefined" ? true : false,
99
+ };
100
+
101
+ // Merge options
102
+ for (var k in defaults) {
103
+ if (!opt.hasOwnProperty(k)) {
104
+ opt[k] = defaults[k];
105
+ }
106
+ }
107
+
108
+ // Vietnamese
109
+ s = s.replace(/á|à|ả|ạ|ã|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ/gi, "a");
110
+ s = s.replace(/é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ/gi, "e");
111
+ s = s.replace(/i|í|ì|ỉ|ĩ|ị/gi, "i");
112
+ s = s.replace(/ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ/gi, "o");
113
+ s = s.replace(/ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự/gi, "u");
114
+ s = s.replace(/ý|ỳ|ỷ|ỹ|ỵ/gi, "y");
115
+ s = s.replace(/đ/gi, "d");
116
+ s = "@" + s + "@";
117
+ s = s.replace(/\@\-|\-\@|\@/gi, "");
118
+
119
+ // Make custom replacements
120
+ for (var k in opt.replacements) {
121
+ s = s.replace(RegExp(k, "g"), opt.replacements[k]);
122
+ }
123
+
124
+ // Transliterate characters to ASCII
125
+ if (opt.transliterate) {
126
+ for (var k in char_map) {
127
+ s = s.replace(RegExp(k, "g"), char_map[k]);
128
+ }
129
+ }
130
+
131
+ // Replace non-alphanumeric characters with our delimiter
132
+ var alnum = typeof XRegExp === "undefined" ? RegExp("[^a-z0-9]+", "ig") : XRegExp("[^\\p{L}\\p{N}]+", "ig");
133
+ s = s.replace(alnum, opt.delimiter);
134
+
135
+ // Remove duplicate delimiters
136
+ s = s.replace(RegExp("[" + opt.delimiter + "]{2,}", "g"), opt.delimiter);
137
+
138
+ // Truncate slug to max. characters
139
+ s = s.substring(0, opt.limit);
140
+
141
+ // Remove delimiter from ends
142
+ s = s.replace(RegExp("(^" + opt.delimiter + "|" + opt.delimiter + "$)", "g"), "");
143
+
144
+ return opt.lowercase ? s.toLowerCase() : s;
145
+ };
146
+
147
+ import { makeDaySlug } from "./makeDaySlug";
148
+ import { generateUUID } from "./generateUUID";
149
+ import { randAllCharacterByLength, randomStringByLength } from "./random";
150
+ import { formatNumber } from "./formatNumber";
151
+ import { generatePassword } from "./generatePassword";
152
+ import { trimNull } from "./trimNull";
153
+ import { addQueryParam, getUrlParams, isLink, getFileNameWithoutExtension, getFileNameWithExtension, getFileExtension, isImage } from "./url";
154
+
155
+ const xstring = {
156
+ getBetween,
157
+ makeString,
158
+ makeDaySlug,
159
+ toUpperCase,
160
+ toLowerCase,
161
+ titleize,
162
+ capitalize,
163
+ capitalizeName,
164
+ clearUnicodeCharacters,
165
+ generateUUID,
166
+ randAllCharacterByLength,
167
+ randomStringByLength,
168
+ formatNumber,
169
+ generatePassword,
170
+ trimNull,
171
+ addQueryParam,
172
+ getUrlParams,
173
+ isLink,
174
+ getFileNameWithoutExtension,
175
+ getFileNameWithExtension,
176
+ getFileExtension,
177
+ isImage,
178
+ };
179
+
180
+ export default xstring;