@gtkx/utils 0.21.0 → 1.0.0-rc.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 (307) hide show
  1. package/README.md +173 -0
  2. package/dist/array/index-before-or-end.d.ts +15 -0
  3. package/dist/array/index-before-or-end.d.ts.map +1 -0
  4. package/dist/array/index-before-or-end.js +21 -0
  5. package/dist/array/index-before-or-end.js.map +1 -0
  6. package/dist/array/index.d.ts +6 -0
  7. package/dist/array/index.d.ts.map +1 -0
  8. package/dist/array/index.js +6 -0
  9. package/dist/array/index.js.map +1 -0
  10. package/dist/array/remove.d.ts +14 -0
  11. package/dist/array/remove.d.ts.map +1 -0
  12. package/dist/array/remove.js +19 -0
  13. package/dist/array/remove.js.map +1 -0
  14. package/dist/array/sort-strings-by.d.ts +15 -0
  15. package/dist/array/sort-strings-by.d.ts.map +1 -0
  16. package/dist/array/sort-strings-by.js +17 -0
  17. package/dist/array/sort-strings-by.js.map +1 -0
  18. package/dist/array/sort-strings.d.ts +12 -0
  19. package/dist/array/sort-strings.d.ts.map +1 -0
  20. package/dist/array/sort-strings.js +14 -0
  21. package/dist/array/sort-strings.js.map +1 -0
  22. package/dist/array/uniq-by.d.ts +18 -0
  23. package/dist/array/uniq-by.d.ts.map +1 -0
  24. package/dist/array/uniq-by.js +29 -0
  25. package/dist/array/uniq-by.js.map +1 -0
  26. package/dist/class/any-class.d.ts +8 -0
  27. package/dist/class/any-class.d.ts.map +1 -0
  28. package/dist/class/any-class.js +2 -0
  29. package/dist/class/any-class.js.map +1 -0
  30. package/dist/class/get-parent-class.d.ts +10 -0
  31. package/dist/class/get-parent-class.d.ts.map +1 -0
  32. package/dist/class/get-parent-class.js +12 -0
  33. package/dist/class/get-parent-class.js.map +1 -0
  34. package/dist/class/index.d.ts +4 -0
  35. package/dist/class/index.d.ts.map +1 -0
  36. package/dist/class/index.js +3 -0
  37. package/dist/class/index.js.map +1 -0
  38. package/dist/class/walk-class-chain.d.ts +13 -0
  39. package/dist/class/walk-class-chain.d.ts.map +1 -0
  40. package/dist/class/walk-class-chain.js +23 -0
  41. package/dist/class/walk-class-chain.js.map +1 -0
  42. package/dist/error/error-like.d.ts +6 -0
  43. package/dist/error/error-like.d.ts.map +1 -0
  44. package/dist/error/error-like.js +15 -0
  45. package/dist/error/error-like.js.map +1 -0
  46. package/dist/error/error-message.d.ts +13 -0
  47. package/dist/error/error-message.d.ts.map +1 -0
  48. package/dist/error/error-message.js +16 -0
  49. package/dist/error/error-message.js.map +1 -0
  50. package/dist/error/format-child-process-error.d.ts +12 -0
  51. package/dist/error/format-child-process-error.d.ts.map +1 -0
  52. package/dist/error/format-child-process-error.js +21 -0
  53. package/dist/error/format-child-process-error.js.map +1 -0
  54. package/dist/error/index.d.ts +4 -0
  55. package/dist/error/index.d.ts.map +1 -0
  56. package/dist/error/index.js +4 -0
  57. package/dist/error/index.js.map +1 -0
  58. package/dist/error/normalize-error.d.ts +13 -0
  59. package/dist/error/normalize-error.d.ts.map +1 -0
  60. package/dist/error/normalize-error.js +20 -0
  61. package/dist/error/normalize-error.js.map +1 -0
  62. package/dist/function/call-method.d.ts +3 -0
  63. package/dist/function/call-method.d.ts.map +1 -0
  64. package/dist/function/call-method.js +19 -0
  65. package/dist/function/call-method.js.map +1 -0
  66. package/dist/function/index.d.ts +2 -0
  67. package/dist/function/index.d.ts.map +1 -0
  68. package/dist/function/index.js +2 -0
  69. package/dist/function/index.js.map +1 -0
  70. package/dist/index.d.ts +13 -6
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +13 -5
  73. package/dist/index.js.map +1 -1
  74. package/dist/log/create-logger.d.ts +15 -0
  75. package/dist/log/create-logger.d.ts.map +1 -0
  76. package/dist/log/create-logger.js +17 -0
  77. package/dist/log/create-logger.js.map +1 -0
  78. package/dist/log/default-logger.d.ts +36 -0
  79. package/dist/log/default-logger.d.ts.map +1 -0
  80. package/dist/log/default-logger.js +44 -0
  81. package/dist/log/default-logger.js.map +1 -0
  82. package/dist/log/index.d.ts +4 -0
  83. package/dist/log/index.d.ts.map +1 -0
  84. package/dist/log/index.js +4 -0
  85. package/dist/log/index.js.map +1 -0
  86. package/dist/log/logger.d.ts +64 -0
  87. package/dist/log/logger.d.ts.map +1 -0
  88. package/dist/log/logger.js +100 -0
  89. package/dist/log/logger.js.map +1 -0
  90. package/dist/map/get-or-insert.d.ts +23 -0
  91. package/dist/map/get-or-insert.d.ts.map +1 -0
  92. package/dist/map/get-or-insert.js +25 -0
  93. package/dist/map/get-or-insert.js.map +1 -0
  94. package/dist/map/index.d.ts +2 -0
  95. package/dist/map/index.d.ts.map +1 -0
  96. package/dist/map/index.js +2 -0
  97. package/dist/map/index.js.map +1 -0
  98. package/dist/object/index.d.ts +4 -0
  99. package/dist/object/index.d.ts.map +1 -0
  100. package/dist/object/index.js +4 -0
  101. package/dist/object/index.js.map +1 -0
  102. package/dist/object/omit.d.ts +15 -0
  103. package/dist/object/omit.d.ts.map +1 -0
  104. package/dist/object/omit.js +24 -0
  105. package/dist/object/omit.js.map +1 -0
  106. package/dist/object/pick-by.d.ts +15 -0
  107. package/dist/object/pick-by.d.ts.map +1 -0
  108. package/dist/object/pick-by.js +24 -0
  109. package/dist/object/pick-by.js.map +1 -0
  110. package/dist/object/structured-clone.d.ts +19 -0
  111. package/dist/object/structured-clone.d.ts.map +1 -0
  112. package/dist/object/structured-clone.js +28 -0
  113. package/dist/object/structured-clone.js.map +1 -0
  114. package/dist/predicate/are-object-keys-equal.d.ts +3 -0
  115. package/dist/predicate/are-object-keys-equal.d.ts.map +1 -0
  116. package/dist/predicate/are-object-keys-equal.js +9 -0
  117. package/dist/predicate/are-object-keys-equal.js.map +1 -0
  118. package/dist/predicate/index.d.ts +7 -0
  119. package/dist/predicate/index.d.ts.map +1 -0
  120. package/dist/predicate/index.js +7 -0
  121. package/dist/predicate/index.js.map +1 -0
  122. package/dist/predicate/is-deep-equal.d.ts +3 -0
  123. package/dist/predicate/is-deep-equal.d.ts.map +1 -0
  124. package/dist/predicate/is-deep-equal.js +35 -0
  125. package/dist/predicate/is-deep-equal.js.map +1 -0
  126. package/dist/predicate/is-plain-object.d.ts +17 -0
  127. package/dist/predicate/is-plain-object.d.ts.map +1 -0
  128. package/dist/predicate/is-plain-object.js +23 -0
  129. package/dist/predicate/is-plain-object.js.map +1 -0
  130. package/dist/predicate/is-record.d.ts +14 -0
  131. package/dist/predicate/is-record.d.ts.map +1 -0
  132. package/dist/predicate/is-record.js +16 -0
  133. package/dist/predicate/is-record.js.map +1 -0
  134. package/dist/predicate/is-same-array-by.d.ts +15 -0
  135. package/dist/predicate/is-same-array-by.d.ts.map +1 -0
  136. package/dist/predicate/is-same-array-by.js +20 -0
  137. package/dist/predicate/is-same-array-by.js.map +1 -0
  138. package/dist/predicate/is-same-array.d.ts +15 -0
  139. package/dist/predicate/is-same-array.d.ts.map +1 -0
  140. package/dist/predicate/is-same-array.js +18 -0
  141. package/dist/predicate/is-same-array.js.map +1 -0
  142. package/dist/predicate/is-shallow-equal.d.ts +3 -0
  143. package/dist/predicate/is-shallow-equal.d.ts.map +1 -0
  144. package/dist/predicate/is-shallow-equal.js +28 -0
  145. package/dist/predicate/is-shallow-equal.js.map +1 -0
  146. package/dist/process/exit-code-for-signal.d.ts +14 -0
  147. package/dist/process/exit-code-for-signal.d.ts.map +1 -0
  148. package/dist/process/exit-code-for-signal.js +19 -0
  149. package/dist/process/exit-code-for-signal.js.map +1 -0
  150. package/dist/process/index.d.ts +4 -0
  151. package/dist/process/index.d.ts.map +1 -0
  152. package/dist/process/index.js +4 -0
  153. package/dist/process/index.js.map +1 -0
  154. package/dist/process/install-graceful-shutdown.d.ts +16 -0
  155. package/dist/process/install-graceful-shutdown.d.ts.map +1 -0
  156. package/dist/process/install-graceful-shutdown.js +89 -0
  157. package/dist/process/install-graceful-shutdown.js.map +1 -0
  158. package/dist/process/resolve-executable.d.ts +14 -0
  159. package/dist/process/resolve-executable.d.ts.map +1 -0
  160. package/dist/process/resolve-executable.js +47 -0
  161. package/dist/process/resolve-executable.js.map +1 -0
  162. package/dist/set/drain.d.ts +11 -0
  163. package/dist/set/drain.d.ts.map +1 -0
  164. package/dist/set/drain.js +16 -0
  165. package/dist/set/drain.js.map +1 -0
  166. package/dist/set/index.d.ts +2 -0
  167. package/dist/set/index.d.ts.map +1 -0
  168. package/dist/set/index.js +2 -0
  169. package/dist/set/index.js.map +1 -0
  170. package/dist/source/index.d.ts +4 -0
  171. package/dist/source/index.d.ts.map +1 -0
  172. package/dist/source/index.js +4 -0
  173. package/dist/source/index.js.map +1 -0
  174. package/dist/source/sanitize-identifier.d.ts +14 -0
  175. package/dist/source/sanitize-identifier.d.ts.map +1 -0
  176. package/dist/source/sanitize-identifier.js +65 -0
  177. package/dist/source/sanitize-identifier.js.map +1 -0
  178. package/dist/source/source-string-literal.d.ts +13 -0
  179. package/dist/source/source-string-literal.d.ts.map +1 -0
  180. package/dist/source/source-string-literal.js +24 -0
  181. package/dist/source/source-string-literal.js.map +1 -0
  182. package/dist/source/to-camel-identifier.d.ts +13 -0
  183. package/dist/source/to-camel-identifier.d.ts.map +1 -0
  184. package/dist/source/to-camel-identifier.js +17 -0
  185. package/dist/source/to-camel-identifier.js.map +1 -0
  186. package/dist/string/camel-case.d.ts +17 -0
  187. package/dist/string/camel-case.d.ts.map +1 -0
  188. package/dist/string/camel-case.js +21 -0
  189. package/dist/string/camel-case.js.map +1 -0
  190. package/dist/string/index.d.ts +6 -0
  191. package/dist/string/index.d.ts.map +1 -0
  192. package/dist/string/index.js +6 -0
  193. package/dist/string/index.js.map +1 -0
  194. package/dist/string/kebab-case.d.ts +14 -0
  195. package/dist/string/kebab-case.d.ts.map +1 -0
  196. package/dist/string/kebab-case.js +16 -0
  197. package/dist/string/kebab-case.js.map +1 -0
  198. package/dist/string/lower-first.d.ts +13 -0
  199. package/dist/string/lower-first.d.ts.map +1 -0
  200. package/dist/string/lower-first.js +15 -0
  201. package/dist/string/lower-first.js.map +1 -0
  202. package/dist/string/pascal-case.d.ts +16 -0
  203. package/dist/string/pascal-case.d.ts.map +1 -0
  204. package/dist/string/pascal-case.js +20 -0
  205. package/dist/string/pascal-case.js.map +1 -0
  206. package/dist/string/upper-first.d.ts +13 -0
  207. package/dist/string/upper-first.d.ts.map +1 -0
  208. package/dist/string/upper-first.js +15 -0
  209. package/dist/string/upper-first.js.map +1 -0
  210. package/dist/string/word-segments.d.ts +3 -0
  211. package/dist/string/word-segments.d.ts.map +1 -0
  212. package/dist/string/word-segments.js +12 -0
  213. package/dist/string/word-segments.js.map +1 -0
  214. package/dist/util/index.d.ts +2 -0
  215. package/dist/util/index.d.ts.map +1 -0
  216. package/dist/util/index.js +2 -0
  217. package/dist/util/index.js.map +1 -0
  218. package/dist/util/package-version.d.ts +12 -0
  219. package/dist/util/package-version.d.ts.map +1 -0
  220. package/dist/util/package-version.js +15 -0
  221. package/dist/util/package-version.js.map +1 -0
  222. package/package.json +18 -7
  223. package/src/array/index-before-or-end.ts +27 -0
  224. package/src/array/index.ts +5 -0
  225. package/src/array/remove.ts +20 -0
  226. package/src/array/sort-strings-by.ts +17 -0
  227. package/src/array/sort-strings.ts +14 -0
  228. package/src/array/uniq-by.ts +33 -0
  229. package/src/class/any-class.ts +10 -0
  230. package/src/class/get-parent-class.ts +15 -0
  231. package/src/class/index.ts +3 -0
  232. package/src/class/walk-class-chain.ts +29 -0
  233. package/src/error/error-like.ts +19 -0
  234. package/src/error/error-message.ts +17 -0
  235. package/src/error/format-child-process-error.ts +24 -0
  236. package/src/error/index.ts +3 -0
  237. package/src/error/normalize-error.ts +22 -0
  238. package/src/function/call-method.ts +22 -0
  239. package/src/function/index.ts +1 -0
  240. package/src/index.ts +13 -10
  241. package/src/log/create-logger.ts +18 -0
  242. package/src/log/default-logger.ts +49 -0
  243. package/src/log/index.ts +3 -0
  244. package/src/log/logger.ts +142 -0
  245. package/src/map/get-or-insert.ts +33 -0
  246. package/src/map/index.ts +1 -0
  247. package/src/object/index.ts +3 -0
  248. package/src/object/omit.ts +26 -0
  249. package/src/object/pick-by.ts +30 -0
  250. package/src/object/structured-clone.ts +31 -0
  251. package/src/predicate/are-object-keys-equal.ts +15 -0
  252. package/src/predicate/index.ts +6 -0
  253. package/src/predicate/is-deep-equal.ts +41 -0
  254. package/src/predicate/is-plain-object.ts +25 -0
  255. package/src/predicate/is-record.ts +16 -0
  256. package/src/predicate/is-same-array-by.ts +21 -0
  257. package/src/predicate/is-same-array.ts +19 -0
  258. package/src/predicate/is-shallow-equal.ts +32 -0
  259. package/src/process/exit-code-for-signal.ts +20 -0
  260. package/src/process/index.ts +3 -0
  261. package/src/process/install-graceful-shutdown.ts +126 -0
  262. package/src/process/resolve-executable.ts +57 -0
  263. package/src/set/drain.ts +17 -0
  264. package/src/set/index.ts +1 -0
  265. package/src/source/index.ts +3 -0
  266. package/src/source/sanitize-identifier.ts +66 -0
  267. package/src/source/source-string-literal.ts +27 -0
  268. package/src/source/to-camel-identifier.ts +18 -0
  269. package/src/string/camel-case.ts +22 -0
  270. package/src/string/index.ts +5 -0
  271. package/src/string/kebab-case.ts +18 -0
  272. package/src/string/lower-first.ts +15 -0
  273. package/src/string/pascal-case.ts +21 -0
  274. package/src/string/upper-first.ts +15 -0
  275. package/src/string/word-segments.ts +15 -0
  276. package/src/util/index.ts +1 -0
  277. package/src/util/package-version.ts +16 -0
  278. package/dist/class.d.ts +0 -16
  279. package/dist/class.d.ts.map +0 -1
  280. package/dist/class.js +0 -2
  281. package/dist/class.js.map +0 -1
  282. package/dist/collection.d.ts +0 -58
  283. package/dist/collection.d.ts.map +0 -1
  284. package/dist/collection.js +0 -98
  285. package/dist/collection.js.map +0 -1
  286. package/dist/error.d.ts +0 -13
  287. package/dist/error.d.ts.map +0 -1
  288. package/dist/error.js +0 -13
  289. package/dist/error.js.map +0 -1
  290. package/dist/graceful-shutdown.d.ts +0 -70
  291. package/dist/graceful-shutdown.d.ts.map +0 -1
  292. package/dist/graceful-shutdown.js +0 -94
  293. package/dist/graceful-shutdown.js.map +0 -1
  294. package/dist/source.d.ts +0 -34
  295. package/dist/source.d.ts.map +0 -1
  296. package/dist/source.js +0 -99
  297. package/dist/source.js.map +0 -1
  298. package/dist/string.d.ts +0 -59
  299. package/dist/string.d.ts.map +0 -1
  300. package/dist/string.js +0 -73
  301. package/dist/string.js.map +0 -1
  302. package/src/class.ts +0 -17
  303. package/src/collection.ts +0 -103
  304. package/src/error.ts +0 -12
  305. package/src/graceful-shutdown.ts +0 -141
  306. package/src/source.ts +0 -103
  307. package/src/string.ts +0 -74
package/src/string.ts DELETED
@@ -1,74 +0,0 @@
1
- /**
2
- * Pure, runtime-agnostic string-case helpers.
3
- *
4
- * The conversions translate between snake_case, kebab-case, camelCase, and
5
- * PascalCase. They split only on underscores and hyphens and preserve the case
6
- * of each segment, so they are not a substitute for a full Unicode-aware case
7
- * transform.
8
- */
9
-
10
- /**
11
- * Uppercases the first character of `value`, leaving the remaining characters
12
- * untouched.
13
- *
14
- * The tail is preserved verbatim rather than lowercased, so
15
- * `toUpperFirst("fooBar")` is `"FooBar"` and `toUpperFirst("URL")` is `"URL"`. An
16
- * empty string returns an empty string.
17
- *
18
- * @param value - The string to transform.
19
- * @returns `value` with its first character uppercased.
20
- */
21
- export const toUpperFirst = (value: string): string => value.charAt(0).toUpperCase() + value.slice(1);
22
-
23
- /**
24
- * Converts a snake_case or kebab-case string to camelCase.
25
- *
26
- * The input is split on underscores and hyphens, dropping empty segments from
27
- * leading, trailing, or repeated separators. The first segment is kept
28
- * verbatim and every later segment is {@link toUpperFirst}-cased before joining,
29
- * so `toCamelCase("icon_name")` is `"iconName"` and `toCamelCase("Box")` is
30
- * `"Box"`. A string with no separators is returned unchanged.
31
- *
32
- * @param input - The snake_case or kebab-case identifier.
33
- * @returns The camelCase form of `input`.
34
- */
35
- export const toCamelCase = (input: string): string => {
36
- const parts = input.split(/[_-]/g).filter((part) => part.length > 0);
37
- if (parts.length === 0) return input;
38
- const [first, ...rest] = parts;
39
- const head = first ?? "";
40
- return head + rest.map(toUpperFirst).join("");
41
- };
42
-
43
- /**
44
- * Converts a snake_case, kebab-case, or already-PascalCase string to
45
- * PascalCase.
46
- *
47
- * The input is split on underscores and hyphens, dropping empty segments, and
48
- * every remaining segment is {@link toUpperFirst}-cased before joining, so
49
- * `toPascalCase("icon_name")` is `"IconName"` and `toPascalCase("Box")` is
50
- * `"Box"`. An empty string is returned unchanged.
51
- *
52
- * @param input - The identifier to transform.
53
- * @returns The PascalCase form of `input`.
54
- */
55
- export const toPascalCase = (input: string): string => {
56
- if (input.length === 0) return input;
57
- const parts = input.split(/[_-]/g).filter((part) => part.length > 0);
58
- if (parts.length === 0) return input;
59
- return parts.map(toUpperFirst).join("");
60
- };
61
-
62
- /**
63
- * Converts a camelCase or PascalCase string to kebab-case.
64
- *
65
- * Each uppercase character is lowercased; every uppercase character other than
66
- * the first is additionally prefixed with a hyphen, so `toKebabCase("iconName")`
67
- * is `"icon-name"` and `toKebabCase("Title")` is `"title"`. The leading
68
- * character is never prefixed with a hyphen.
69
- *
70
- * @param input - The camelCase or PascalCase identifier.
71
- * @returns The kebab-case form of `input`.
72
- */
73
- export const toKebabCase = (input: string): string =>
74
- input.replaceAll(/[A-Z]/g, (char, index: number) => (index === 0 ? char.toLowerCase() : `-${char.toLowerCase()}`));