@ts-fns/stdlib 0.1.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 (135) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +132 -0
  3. package/dist/array/index.cjs +551 -0
  4. package/dist/array/index.cjs.map +1 -0
  5. package/dist/array/index.d.cts +334 -0
  6. package/dist/array/index.d.cts.map +1 -0
  7. package/dist/array/index.d.mts +334 -0
  8. package/dist/array/index.d.mts.map +1 -0
  9. package/dist/array/index.mjs +498 -0
  10. package/dist/array/index.mjs.map +1 -0
  11. package/dist/errors-CJsLpYo9.d.cts +25 -0
  12. package/dist/errors-CJsLpYo9.d.cts.map +1 -0
  13. package/dist/errors-CJsLpYo9.d.mts +25 -0
  14. package/dist/errors-CJsLpYo9.d.mts.map +1 -0
  15. package/dist/errors-Dw1kitu_.mjs +39 -0
  16. package/dist/errors-Dw1kitu_.mjs.map +1 -0
  17. package/dist/errors-O-d_Vemi.cjs +74 -0
  18. package/dist/errors-O-d_Vemi.cjs.map +1 -0
  19. package/dist/function/index.cjs +15 -0
  20. package/dist/function/index.d.cts +107 -0
  21. package/dist/function/index.d.cts.map +1 -0
  22. package/dist/function/index.d.mts +107 -0
  23. package/dist/function/index.d.mts.map +1 -0
  24. package/dist/function/index.mjs +3 -0
  25. package/dist/function-CB82a2GS.cjs +186 -0
  26. package/dist/function-CB82a2GS.cjs.map +1 -0
  27. package/dist/function-DnI2v0p3.mjs +121 -0
  28. package/dist/function-DnI2v0p3.mjs.map +1 -0
  29. package/dist/get-CWL_cu6G.mjs +27 -0
  30. package/dist/get-CWL_cu6G.mjs.map +1 -0
  31. package/dist/get-yrs1Kqho.cjs +38 -0
  32. package/dist/get-yrs1Kqho.cjs.map +1 -0
  33. package/dist/guard/index.cjs +43 -0
  34. package/dist/guard/index.cjs.map +1 -0
  35. package/dist/guard/index.d.cts +52 -0
  36. package/dist/guard/index.d.cts.map +1 -0
  37. package/dist/guard/index.d.mts +52 -0
  38. package/dist/guard/index.d.mts.map +1 -0
  39. package/dist/guard/index.mjs +40 -0
  40. package/dist/guard/index.mjs.map +1 -0
  41. package/dist/index-BJlKyBJH.d.cts +18 -0
  42. package/dist/index-BJlKyBJH.d.cts.map +1 -0
  43. package/dist/index-DGrnGMDt.d.mts +18 -0
  44. package/dist/index-DGrnGMDt.d.mts.map +1 -0
  45. package/dist/isNotNil-DrF-ohem.cjs +28 -0
  46. package/dist/isNotNil-DrF-ohem.cjs.map +1 -0
  47. package/dist/isNotNil-R5f1hC53.mjs +23 -0
  48. package/dist/isNotNil-R5f1hC53.mjs.map +1 -0
  49. package/dist/iterator/index.cjs +160 -0
  50. package/dist/iterator/index.cjs.map +1 -0
  51. package/dist/iterator/index.d.cts +71 -0
  52. package/dist/iterator/index.d.cts.map +1 -0
  53. package/dist/iterator/index.d.mts +71 -0
  54. package/dist/iterator/index.d.mts.map +1 -0
  55. package/dist/iterator/index.mjs +148 -0
  56. package/dist/iterator/index.mjs.map +1 -0
  57. package/dist/lens/index.cjs +199 -0
  58. package/dist/lens/index.cjs.map +1 -0
  59. package/dist/lens/index.d.cts +109 -0
  60. package/dist/lens/index.d.cts.map +1 -0
  61. package/dist/lens/index.d.mts +109 -0
  62. package/dist/lens/index.d.mts.map +1 -0
  63. package/dist/lens/index.mjs +187 -0
  64. package/dist/lens/index.mjs.map +1 -0
  65. package/dist/map/index.cjs +86 -0
  66. package/dist/map/index.cjs.map +1 -0
  67. package/dist/map/index.d.cts +41 -0
  68. package/dist/map/index.d.cts.map +1 -0
  69. package/dist/map/index.d.mts +41 -0
  70. package/dist/map/index.d.mts.map +1 -0
  71. package/dist/map/index.mjs +75 -0
  72. package/dist/map/index.mjs.map +1 -0
  73. package/dist/number/index.cjs +179 -0
  74. package/dist/number/index.cjs.map +1 -0
  75. package/dist/number/index.d.cts +112 -0
  76. package/dist/number/index.d.cts.map +1 -0
  77. package/dist/number/index.d.mts +112 -0
  78. package/dist/number/index.d.mts.map +1 -0
  79. package/dist/number/index.mjs +159 -0
  80. package/dist/number/index.mjs.map +1 -0
  81. package/dist/object/index.cjs +190 -0
  82. package/dist/object/index.cjs.map +1 -0
  83. package/dist/object/index.d.cts +118 -0
  84. package/dist/object/index.d.cts.map +1 -0
  85. package/dist/object/index.d.mts +118 -0
  86. package/dist/object/index.d.mts.map +1 -0
  87. package/dist/object/index.mjs +169 -0
  88. package/dist/object/index.mjs.map +1 -0
  89. package/dist/orThrow-V91Jw2lF.mjs +15 -0
  90. package/dist/orThrow-V91Jw2lF.mjs.map +1 -0
  91. package/dist/orThrow-ejzcQYAI.cjs +20 -0
  92. package/dist/orThrow-ejzcQYAI.cjs.map +1 -0
  93. package/dist/order/index.cjs +50 -0
  94. package/dist/order/index.cjs.map +1 -0
  95. package/dist/order/index.d.cts +3 -0
  96. package/dist/order/index.d.mts +3 -0
  97. package/dist/order/index.mjs +42 -0
  98. package/dist/order/index.mjs.map +1 -0
  99. package/dist/order.constants-BWSCg3C7.d.cts +11 -0
  100. package/dist/order.constants-BWSCg3C7.d.cts.map +1 -0
  101. package/dist/order.constants-BWSCg3C7.d.mts +11 -0
  102. package/dist/order.constants-BWSCg3C7.d.mts.map +1 -0
  103. package/dist/purry-B2_0DGLV.cjs +28 -0
  104. package/dist/purry-B2_0DGLV.cjs.map +1 -0
  105. package/dist/purry-BOWmqwDB.mjs +23 -0
  106. package/dist/purry-BOWmqwDB.mjs.map +1 -0
  107. package/dist/set/index.cjs +131 -0
  108. package/dist/set/index.cjs.map +1 -0
  109. package/dist/set/index.d.cts +61 -0
  110. package/dist/set/index.d.cts.map +1 -0
  111. package/dist/set/index.d.mts +61 -0
  112. package/dist/set/index.d.mts.map +1 -0
  113. package/dist/set/index.mjs +115 -0
  114. package/dist/set/index.mjs.map +1 -0
  115. package/dist/string/index.cjs +288 -0
  116. package/dist/string/index.cjs.map +1 -0
  117. package/dist/string/index.d.cts +144 -0
  118. package/dist/string/index.d.cts.map +1 -0
  119. package/dist/string/index.d.mts +144 -0
  120. package/dist/string/index.d.mts.map +1 -0
  121. package/dist/string/index.mjs +254 -0
  122. package/dist/string/index.mjs.map +1 -0
  123. package/dist/tuple/index.cjs +135 -0
  124. package/dist/tuple/index.cjs.map +1 -0
  125. package/dist/tuple/index.d.cts +207 -0
  126. package/dist/tuple/index.d.cts.map +1 -0
  127. package/dist/tuple/index.d.mts +207 -0
  128. package/dist/tuple/index.d.mts.map +1 -0
  129. package/dist/tuple/index.mjs +122 -0
  130. package/dist/tuple/index.mjs.map +1 -0
  131. package/dist/types-D8f67ZCe.d.cts +54 -0
  132. package/dist/types-D8f67ZCe.d.cts.map +1 -0
  133. package/dist/types-D8f67ZCe.d.mts +54 -0
  134. package/dist/types-D8f67ZCe.d.mts.map +1 -0
  135. package/package.json +177 -0
@@ -0,0 +1,159 @@
1
+ import { t as purry } from "../purry-BOWmqwDB.mjs";
2
+ import { n as NaNError } from "../errors-Dw1kitu_.mjs";
3
+ import "../order/index.mjs";
4
+ //#region src/number/_globalAliases.ts
5
+ const { isFinite, isInteger, isSafeInteger } = Number;
6
+ const numberConstructor = Number;
7
+ //#endregion
8
+ //#region src/number/add.ts
9
+ function addImplementation(left, right) {
10
+ return left + right;
11
+ }
12
+ function add(...args) {
13
+ return purry(addImplementation, args);
14
+ }
15
+ //#endregion
16
+ //#region src/number/compare.ts
17
+ function compare(left, right) {
18
+ if (left < right) return -1;
19
+ if (left > right) return 1;
20
+ return 0;
21
+ }
22
+ //#endregion
23
+ //#region src/number/decrement.ts
24
+ function decrement(num) {
25
+ return num - 1;
26
+ }
27
+ //#endregion
28
+ //#region src/number/divide.ts
29
+ function divideImplementation(left, right) {
30
+ return left / right;
31
+ }
32
+ function divide(...args) {
33
+ return purry(divideImplementation, args);
34
+ }
35
+ //#endregion
36
+ //#region src/number/increment.ts
37
+ function increment(num) {
38
+ return num + 1;
39
+ }
40
+ //#endregion
41
+ //#region src/number/isNaN.ts
42
+ /**
43
+ *
44
+ * @param num
45
+ * @returns
46
+ */
47
+ function isNaN(num) {
48
+ return Number.isNaN(num);
49
+ }
50
+ //#endregion
51
+ //#region src/number/isNil.ts
52
+ /**
53
+ * Check whether a value is nullish (`null` or `undefined`)
54
+ *
55
+ * @category Guard
56
+ * @param value - The value to check.
57
+ * @returns `true` if `value` is `null` or `undefined`; otherwise `false`.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * isNil(null); // true
62
+ * isNil(undefined); // true
63
+ * isNil(0); // false
64
+ * ```
65
+ */
66
+ function isNil(value) {
67
+ return value == null;
68
+ }
69
+ //#endregion
70
+ //#region src/number/isNotNaN.ts
71
+ /**
72
+ *
73
+ * @param num
74
+ * @returns
75
+ */
76
+ function isNotNaN(num) {
77
+ return !Number.isNaN(num);
78
+ }
79
+ //#endregion
80
+ //#region src/number/isNumber.ts
81
+ /**
82
+ * Check whether a value is a number (primitive `number`, not `NaN`).
83
+ *
84
+ * @category Guard
85
+ * @param data - The value to check.
86
+ * @returns `true` if `data` is a number; otherwise `false`.
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * isNumber(1); // true
91
+ * isNumber(Infinity); // true
92
+ * isNumber(NaN); // true
93
+ * isNumber('1'); // false
94
+ * ```
95
+ */
96
+ function isNumber(data) {
97
+ return typeof data === "number";
98
+ }
99
+ //#endregion
100
+ //#region src/number/multiply.ts
101
+ function multiplyImplementation(left, right) {
102
+ return left * right;
103
+ }
104
+ function multiply(...args) {
105
+ return purry(multiplyImplementation, args);
106
+ }
107
+ //#endregion
108
+ //#region src/number/parseFloat.ts
109
+ /**
110
+ *
111
+ */
112
+ function parseFloat(data) {
113
+ const num = Number.parseFloat(data);
114
+ if (Number.isNaN(num)) return new NaNError(`Num.parseFloat() :: "${data}" is NaN`);
115
+ return num;
116
+ }
117
+ //#endregion
118
+ //#region src/number/parseInt.ts
119
+ /**
120
+ * @throws {NanError}
121
+ */
122
+ function parseInt(data) {
123
+ const num = Number.parseInt(data, 10);
124
+ if (Number.isNaN(num)) return new NaNError(`Num.parseInt() :: "${data}" is NaN`);
125
+ return num;
126
+ }
127
+ //#endregion
128
+ //#region src/number/parseIntBase.ts
129
+ function parseIntBaseImplementation(data, radix) {
130
+ if (typeof radix !== "number") throw new NaNError(`Num.parseFloat(_, radix) :: "${data}" must be number`);
131
+ const num = Number.parseInt(data, radix);
132
+ if (Number.isNaN(num)) throw new NaNError(`Num.parseFloat(data, _) :: "${data}" is NaN`);
133
+ return num;
134
+ }
135
+ function parseIntBase(...args) {
136
+ return purry(parseIntBaseImplementation, args);
137
+ }
138
+ //#endregion
139
+ //#region src/number/product.ts
140
+ function product(data) {
141
+ return data.reduce((a, b) => a * b, 1);
142
+ }
143
+ //#endregion
144
+ //#region src/number/subtract.ts
145
+ function subtractImplementation(left, right) {
146
+ return left - right;
147
+ }
148
+ function subtract(...args) {
149
+ return purry(subtractImplementation, args);
150
+ }
151
+ //#endregion
152
+ //#region src/number/sum.ts
153
+ function sum(data) {
154
+ return data.reduce((a, b) => a + b, 0);
155
+ }
156
+ //#endregion
157
+ export { numberConstructor as Number, add, compare, decrement, divide, increment, isFinite, isInteger, isNaN, isNil, isNotNaN, isNumber, isSafeInteger, multiply, parseFloat, parseInt, parseIntBase, product, subtract, sum };
158
+
159
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/number/_globalAliases.ts","../../src/number/add.ts","../../src/number/compare.ts","../../src/number/decrement.ts","../../src/number/divide.ts","../../src/number/increment.ts","../../src/number/isNaN.ts","../../src/number/isNil.ts","../../src/number/isNotNaN.ts","../../src/number/isNumber.ts","../../src/number/multiply.ts","../../src/number/parseFloat.ts","../../src/number/parseInt.ts","../../src/number/parseIntBase.ts","../../src/number/product.ts","../../src/number/subtract.ts","../../src/number/sum.ts"],"sourcesContent":["export const { isFinite, isInteger, isSafeInteger } = Number;\n\nconst numberConstructor = Number;\nexport { numberConstructor as Number };\n","import { purry } from '../function/purry';\n\nfunction addImplementation(left: number, right: number): number {\n return left + right;\n}\n\nexport function add(right: number): (left: number) => number;\nexport function add(left: number, right: number): number;\nexport function add(...args: unknown[]): unknown {\n return purry(addImplementation, args);\n}\n","import type { Order } from '../order';\nimport { eq, gt, lt } from '../order';\n\nexport function compare(left: number, right: number): Order {\n if (left < right) return lt;\n if (left > right) return gt;\n return eq;\n}\n","export function decrement(num: number): number {\n return num - 1;\n}\n","import { purry } from '../function/purry';\n\nfunction divideImplementation(left: number, right: number): number {\n return left / right;\n}\n\nexport function divide(right: number): (left: number) => number;\nexport function divide(left: number, right: number): number;\nexport function divide(...args: unknown[]): unknown {\n return purry(divideImplementation, args);\n}\n","export function increment(num: number): number {\n return num + 1;\n}\n","/**\n *\n * @param num\n * @returns\n */\nexport function isNaN(num: number): boolean {\n return Number.isNaN(num);\n}\n","/**\n * Check whether a value is nullish (`null` or `undefined`)\n *\n * @category Guard\n * @param value - The value to check.\n * @returns `true` if `value` is `null` or `undefined`; otherwise `false`.\n *\n * @example\n * ```ts\n * isNil(null); // true\n * isNil(undefined); // true\n * isNil(0); // false\n * ```\n */\nexport function isNil<T>(value: T): value is T & (null | undefined) {\n return value == null;\n}\n","/**\n *\n * @param num\n * @returns\n */\nexport function isNotNaN(num: number): boolean {\n return !Number.isNaN(num);\n}\n","import type { NarrowedTo } from '../types';\n\n/**\n * Check whether a value is a number (primitive `number`, not `NaN`).\n *\n * @category Guard\n * @param data - The value to check.\n * @returns `true` if `data` is a number; otherwise `false`.\n *\n * @example\n * ```ts\n * isNumber(1); // true\n * isNumber(Infinity); // true\n * isNumber(NaN); // true\n * isNumber('1'); // false\n * ```\n */\nexport function isNumber<T>(data: T | number): data is NarrowedTo<T, number> {\n return typeof data === 'number';\n}\n","import { purry } from '../function/purry';\n\nfunction multiplyImplementation(left: number, right: number): number {\n return left * right;\n}\n\nexport function multiply(right: number): (left: number) => number;\nexport function multiply(left: number, right: number): number;\nexport function multiply(...args: unknown[]): unknown {\n return purry(multiplyImplementation, args);\n}\n","import { NaNError } from '../errors';\n\n/**\n *\n */\nexport function parseFloat(data: string): NaNError | number {\n const num = Number.parseFloat(data);\n\n if (Number.isNaN(num)) {\n return new NaNError(`Num.parseFloat() :: \"${data}\" is NaN`);\n }\n\n return num;\n}\n","import { NaNError } from '../errors';\n\n/**\n * @throws {NanError}\n */\nexport function parseInt(data: string): NaNError | number {\n const num = Number.parseInt(data, 10);\n\n if (Number.isNaN(num)) {\n return new NaNError(`Num.parseInt() :: \"${data}\" is NaN`);\n }\n\n return num;\n}\n","import { NaNError } from '../errors';\nimport { purry } from '../function/purry';\n\nfunction parseIntBaseImplementation(data: string, radix: number): number {\n if (typeof radix !== 'number') {\n throw new NaNError(`Num.parseFloat(_, radix) :: \"${data}\" must be number`);\n }\n\n const num = Number.parseInt(data, radix);\n\n if (Number.isNaN(num)) {\n throw new NaNError(`Num.parseFloat(data, _) :: \"${data}\" is NaN`);\n }\n\n return num;\n}\n\n/**\n *\n * @throws {NaNError}\n */\nexport function parseIntBase(radix: number): (data: string) => number;\nexport function parseIntBase(data: string, radix: number): number;\nexport function parseIntBase(...args: unknown[]): unknown {\n return purry(parseIntBaseImplementation, args);\n}\n","export function product(data: number[]): number {\n return data.reduce((a, b) => a * b, 1);\n}\n","import { purry } from '../function/purry';\n\nfunction subtractImplementation(left: number, right: number): number {\n return left - right;\n}\n\nexport function subtract(right: number): (left: number) => number;\nexport function subtract(left: number, right: number): number;\nexport function subtract(...args: unknown[]): unknown {\n return purry(subtractImplementation, args);\n}\n","export function sum(data: number[]): number {\n return data.reduce((a, b) => a + b, 0);\n}\n"],"mappings":";;;;AAAA,MAAa,EAAE,UAAU,WAAW,kBAAkB;AAEtD,MAAM,oBAAoB;;;ACA1B,SAAS,kBAAkB,MAAc,OAAuB;CAC9D,OAAO,OAAO;AAChB;AAIA,SAAgB,IAAI,GAAG,MAA0B;CAC/C,OAAO,MAAM,mBAAmB,IAAI;AACtC;;;ACPA,SAAgB,QAAQ,MAAc,OAAsB;CAC1D,IAAI,OAAO,OAAO,OAAA;CAClB,IAAI,OAAO,OAAO,OAAA;CAClB,OAAA;AACF;;;ACPA,SAAgB,UAAU,KAAqB;CAC7C,OAAO,MAAM;AACf;;;ACAA,SAAS,qBAAqB,MAAc,OAAuB;CACjE,OAAO,OAAO;AAChB;AAIA,SAAgB,OAAO,GAAG,MAA0B;CAClD,OAAO,MAAM,sBAAsB,IAAI;AACzC;;;ACVA,SAAgB,UAAU,KAAqB;CAC7C,OAAO,MAAM;AACf;;;;;;;;ACGA,SAAgB,MAAM,KAAsB;CAC1C,OAAO,OAAO,MAAM,GAAG;AACzB;;;;;;;;;;;;;;;;;ACOA,SAAgB,MAAS,OAA2C;CAClE,OAAO,SAAS;AAClB;;;;;;;;ACXA,SAAgB,SAAS,KAAsB;CAC7C,OAAO,CAAC,OAAO,MAAM,GAAG;AAC1B;;;;;;;;;;;;;;;;;;ACUA,SAAgB,SAAY,MAAiD;CAC3E,OAAO,OAAO,SAAS;AACzB;;;ACjBA,SAAS,uBAAuB,MAAc,OAAuB;CACnE,OAAO,OAAO;AAChB;AAIA,SAAgB,SAAS,GAAG,MAA0B;CACpD,OAAO,MAAM,wBAAwB,IAAI;AAC3C;;;;;;ACLA,SAAgB,WAAW,MAAiC;CAC1D,MAAM,MAAM,OAAO,WAAW,IAAI;CAElC,IAAI,OAAO,MAAM,GAAG,GAClB,OAAO,IAAI,SAAS,wBAAwB,KAAK,SAAS;CAG5D,OAAO;AACT;;;;;;ACRA,SAAgB,SAAS,MAAiC;CACxD,MAAM,MAAM,OAAO,SAAS,MAAM,EAAE;CAEpC,IAAI,OAAO,MAAM,GAAG,GAClB,OAAO,IAAI,SAAS,sBAAsB,KAAK,SAAS;CAG1D,OAAO;AACT;;;ACVA,SAAS,2BAA2B,MAAc,OAAuB;CACvE,IAAI,OAAO,UAAU,UACnB,MAAM,IAAI,SAAS,gCAAgC,KAAK,iBAAiB;CAG3E,MAAM,MAAM,OAAO,SAAS,MAAM,KAAK;CAEvC,IAAI,OAAO,MAAM,GAAG,GAClB,MAAM,IAAI,SAAS,+BAA+B,KAAK,SAAS;CAGlE,OAAO;AACT;AAQA,SAAgB,aAAa,GAAG,MAA0B;CACxD,OAAO,MAAM,4BAA4B,IAAI;AAC/C;;;ACzBA,SAAgB,QAAQ,MAAwB;CAC9C,OAAO,KAAK,QAAQ,GAAG,MAAM,IAAI,GAAG,CAAC;AACvC;;;ACAA,SAAS,uBAAuB,MAAc,OAAuB;CACnE,OAAO,OAAO;AAChB;AAIA,SAAgB,SAAS,GAAG,MAA0B;CACpD,OAAO,MAAM,wBAAwB,IAAI;AAC3C;;;ACVA,SAAgB,IAAI,MAAwB;CAC1C,OAAO,KAAK,QAAQ,GAAG,MAAM,IAAI,GAAG,CAAC;AACvC"}
@@ -0,0 +1,190 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_purry = require("../purry-B2_0DGLV.cjs");
3
+ require("../function-CB82a2GS.cjs");
4
+ const require_get = require("../get-yrs1Kqho.cjs");
5
+ //#region src/object/_globalAliases.ts
6
+ const { fromEntries, hasOwn, is, keys, values } = Object;
7
+ /**
8
+ * @category Object
9
+ * @function
10
+ * @example
11
+ * ```ts
12
+ * entries({ a: 1, b: 2 }); // [['a', 1], ['b', 2]]
13
+ * ```
14
+ */
15
+ const entries = Object.entries;
16
+ //#endregion
17
+ //#region src/object/clone.ts
18
+ /**
19
+ * Alias of structuredClone without the optional second argument
20
+ */
21
+ function clone(data) {
22
+ return globalThis.structuredClone(data);
23
+ }
24
+ //#endregion
25
+ //#region src/object/evolve.ts
26
+ function evolveImplementation(obj, evolver) {
27
+ const evolved = Object.entries(evolver).reduce((acc, [k, fn]) => {
28
+ if (Object.hasOwn(obj, k)) acc[k] = fn(obj[k]);
29
+ return acc;
30
+ }, {});
31
+ return {
32
+ ...obj,
33
+ ...evolved
34
+ };
35
+ }
36
+ function evolve(...args) {
37
+ return require_purry.purry(evolveImplementation, args);
38
+ }
39
+ //#endregion
40
+ //#region src/object/forEach.ts
41
+ function forEachImplementation(data, callbackfn) {
42
+ for (const [k, v] of Object.entries(data)) callbackfn(v, k);
43
+ return data;
44
+ }
45
+ function forEach(...args) {
46
+ return require_purry.purry(forEachImplementation, args);
47
+ }
48
+ //#endregion
49
+ //#region src/object/groupBy.ts
50
+ function groupByImplementation(items, keySelector) {
51
+ return Object.groupBy(items, keySelector);
52
+ }
53
+ function groupBy(...args) {
54
+ return require_purry.purry(groupByImplementation, args);
55
+ }
56
+ //#endregion
57
+ //#region src/object/indexBy.ts
58
+ function indexByImplementation(data, keySelector) {
59
+ const asArray = [...data];
60
+ const len = asArray.length;
61
+ const rtnObj = {};
62
+ for (let i = 0; i < len; i += 1) {
63
+ const value = asArray[i];
64
+ rtnObj[keySelector(value, i)] = value;
65
+ }
66
+ return rtnObj;
67
+ }
68
+ function indexBy(...args) {
69
+ return require_purry.purry(indexByImplementation, args);
70
+ }
71
+ //#endregion
72
+ //#region src/object/map.ts
73
+ function mapImplementation(data, callbackfn) {
74
+ const entries = Object.entries(data);
75
+ const len = entries.length;
76
+ const newObj = {};
77
+ for (let i = 0; i < len; i += 1) {
78
+ const [k, v] = entries[i];
79
+ newObj[k] = callbackfn(v, k);
80
+ }
81
+ return newObj;
82
+ }
83
+ function map(...args) {
84
+ return require_purry.purry(mapImplementation, args);
85
+ }
86
+ //#endregion
87
+ //#region src/object/merge.ts
88
+ function mergeImplementation(left, right) {
89
+ return {
90
+ ...left,
91
+ ...right
92
+ };
93
+ }
94
+ function merge(...args) {
95
+ return require_purry.purry(mergeImplementation, args);
96
+ }
97
+ function mergeLeftImplementation(left, right) {
98
+ return {
99
+ ...right,
100
+ ...left
101
+ };
102
+ }
103
+ function mergeLeft(...args) {
104
+ return require_purry.purry(mergeLeftImplementation, args);
105
+ }
106
+ merge.left = mergeLeft;
107
+ //#endregion
108
+ //#region src/object/omit.ts
109
+ function omitImplementation(data, keys) {
110
+ const keysSet = new Set(keys);
111
+ const newObj = {};
112
+ for (const [key, value] of Object.entries(data)) if (!keysSet.has(key)) newObj[key] = value;
113
+ return newObj;
114
+ }
115
+ function omit(...args) {
116
+ return require_purry.purry(omitImplementation, args);
117
+ }
118
+ //#endregion
119
+ //#region src/object/pick.ts
120
+ function pickImplementation(data, keys) {
121
+ const keysSet = new Set(keys);
122
+ const newObj = {};
123
+ for (const [key, value] of Object.entries(data)) if (keysSet.has(key)) newObj[key] = value;
124
+ return newObj;
125
+ }
126
+ function pick(...args) {
127
+ return require_purry.purry(pickImplementation, args);
128
+ }
129
+ //#endregion
130
+ //#region src/object/set.ts
131
+ function setImplementation(obj, key, value) {
132
+ return {
133
+ ...obj,
134
+ [key]: value
135
+ };
136
+ }
137
+ function set(...args) {
138
+ return require_purry.purry(setImplementation, args);
139
+ }
140
+ //#endregion
141
+ //#region src/object/upsert.ts
142
+ function upsertImplementation(data, key, fn) {
143
+ if (!(key in data)) {
144
+ const updatedValue = fn(void 0);
145
+ return {
146
+ ...data,
147
+ [key]: updatedValue
148
+ };
149
+ }
150
+ const value = data[key];
151
+ if (value == null) {
152
+ const updatedValue = fn(null);
153
+ return {
154
+ ...data,
155
+ [key]: updatedValue
156
+ };
157
+ }
158
+ const updatedValue = fn(value);
159
+ return {
160
+ ...data,
161
+ [key]: updatedValue
162
+ };
163
+ }
164
+ function upsert(...args) {
165
+ return require_purry.purry(upsertImplementation, args);
166
+ }
167
+ //#endregion
168
+ exports.clone = clone;
169
+ exports.entries = entries;
170
+ exports.evolve = evolve;
171
+ exports.forEach = forEach;
172
+ exports.fromEntries = fromEntries;
173
+ exports.get = require_get.get;
174
+ exports.getAssert = require_get.getAssert;
175
+ exports.groupBy = groupBy;
176
+ exports.hasOwn = hasOwn;
177
+ exports.indexBy = indexBy;
178
+ exports.is = is;
179
+ exports.keys = keys;
180
+ exports.map = map;
181
+ exports.merge = merge;
182
+ exports.mergeLeft = mergeLeft;
183
+ exports.omit = omit;
184
+ exports.pick = pick;
185
+ exports.set = set;
186
+ exports.setImplementation = setImplementation;
187
+ exports.upsert = upsert;
188
+ exports.values = values;
189
+
190
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["purry","purry","purry","purry","purry","purry","purry","purry","purry","purry"],"sources":["../../src/object/_globalAliases.ts","../../src/object/clone.ts","../../src/object/evolve.ts","../../src/object/forEach.ts","../../src/object/groupBy.ts","../../src/object/indexBy.ts","../../src/object/map.ts","../../src/object/merge.ts","../../src/object/omit.ts","../../src/object/pick.ts","../../src/object/set.ts","../../src/object/upsert.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-destructuring */\nexport const { fromEntries, hasOwn, is, keys, values } = Object;\n\n/**\n * @category Object\n * @function\n * @example\n * ```ts\n * entries({ a: 1, b: 2 }); // [['a', 1], ['b', 2]]\n * ```\n */\nexport const entries = Object.entries;\n","/**\n * Alias of structuredClone without the optional second argument\n */\nexport function clone<T>(data: T): T {\n return globalThis.structuredClone(data);\n}\n","import type { Simplify } from 'type-fest';\n\nimport { purry } from '../function';\n\ntype Evolved<Obj extends object, Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown }> = {\n [K in keyof Obj]: Obj extends Record<K, infer T>\n ? Evolver extends Record<K, (value: Obj[K]) => infer R>\n ? R extends T\n ? T\n : unknown\n : never\n : never;\n};\n\nfunction evolveImplementation<\n Obj extends object,\n Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown },\n>(obj: Obj, evolver: Evolver): Simplify<Evolved<Obj, Evolver>> {\n const evolved = (Object.entries(evolver) as [keyof Obj, (value: unknown) => unknown][]).reduce<\n Partial<Record<keyof Obj, any>>\n >((acc, [k, fn]) => {\n // key must exist on obj, otherwise no value\n if (Object.hasOwn(obj, k)) {\n acc[k] = fn(obj[k]);\n }\n return acc;\n }, {});\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return { ...obj, ...evolved } as any;\n}\n\nexport function evolve<Obj extends object, Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown }>(\n evolver: Evolver,\n): (obj: Obj) => Simplify<Evolved<Obj, Evolver>>;\nexport function evolve<Obj extends object, Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown }>(\n obj: Obj,\n evolver: Evolver,\n): Simplify<Evolved<Obj, Evolver>>;\nexport function evolve(...args: unknown[]): unknown {\n return purry(evolveImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction forEachImplementation<T>(\n data: Record<string, T>,\n callbackfn: (value: T, key: string) => void,\n): Record<string, T> {\n for (const [k, v] of Object.entries(data)) {\n callbackfn(v, k);\n }\n return data;\n}\n\nexport function forEach<T>(callbackfn: (value: T, key: string) => void): (data: Record<string, T>) => Record<string, T>;\nexport function forEach<T>(data: Record<string, T>, callbackfn: (value: T, key: string) => void): Record<string, T>;\nexport function forEach(...args: readonly unknown[]): unknown {\n return purry(forEachImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction groupByImplementation<T>(\n items: Iterable<T>,\n keySelector: (item: T, index: number) => string,\n): Partial<Record<string, T[]>> {\n return Object.groupBy(items, keySelector);\n}\n\nexport function groupBy<T>(\n keySelector: (item: T, index: number) => string,\n): (items: Iterable<T>) => Partial<Record<string, T[]>>;\nexport function groupBy<T>(\n items: Iterable<T>,\n keySelector: (item: T, index: number) => string,\n): Partial<Record<string, T[]>>;\nexport function groupBy(...args: readonly unknown[]): unknown {\n return purry(groupByImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction indexByImplementation<T>(\n data: Iterable<T>,\n keySelector: (item: T, index: number) => string,\n): Record<string, T> {\n const asArray = [...data];\n const len = asArray.length;\n const rtnObj: Record<string, T> = {};\n for (let i = 0; i < len; i += 1) {\n const value = asArray[i]!;\n rtnObj[keySelector(value, i)] = value;\n }\n return rtnObj;\n}\n\nexport function indexBy<T>(keySelector: (item: T, index: number) => string): (data: Iterable<T>) => Record<string, T>;\nexport function indexBy<T>(data: Iterable<T>, keySelector: (item: T, index: number) => string): Record<string, T>;\nexport function indexBy(...args: readonly unknown[]): unknown {\n return purry(indexByImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction mapImplementation<T, U>(data: Record<string, T>, callbackfn: (value: T, key: string) => U): Record<string, U> {\n const entries = Object.entries(data);\n const len = entries.length;\n const newObj: Record<string, U> = {};\n for (let i = 0; i < len; i += 1) {\n const [k, v] = entries[i]!;\n newObj[k] = callbackfn(v, k);\n }\n return newObj;\n}\n\nexport function map<T, U>(callbackfn: (value: T, key: string) => U): (data: Record<string, T>) => Record<string, U>;\nexport function map<T, U>(data: Record<string, T>, callbackfn: (value: T, key: string) => U): Record<string, U>;\nexport function map(...args: readonly unknown[]): unknown {\n return purry(mapImplementation, args);\n}\n","import type { Merge } from 'type-fest';\n\nimport { purry } from '../function';\n\nfunction mergeImplementation<Obj extends object, Other extends object>(left: Obj, right: Other): Merge<Obj, Other> {\n return { ...left, ...right } as unknown as Merge<Obj, Other>;\n}\n\nexport function merge<Obj extends object, Other extends object>(right: Other): (left: Obj) => Merge<Obj, Other>;\nexport function merge<Obj extends object, Other extends object>(left: Obj, right: Other): Merge<Obj, Other>;\nexport function merge(...args: unknown[]): unknown {\n return purry(mergeImplementation, args);\n}\n\nfunction mergeLeftImplementation<Obj extends object, Other extends object>(left: Obj, right: Other): Merge<Other, Obj> {\n return { ...right, ...left } as unknown as Merge<Other, Obj>;\n}\n\nexport function mergeLeft<Obj extends object, Other extends object>(right: Other): (left: Obj) => Merge<Other, Obj>;\nexport function mergeLeft<Obj extends object, Other extends object>(left: Obj, right: Other): Merge<Other, Obj>;\nexport function mergeLeft(...args: unknown[]): unknown {\n return purry(mergeLeftImplementation, args);\n}\n\nmerge.left = mergeLeft;\n","import { purry } from '../function/purry';\n\nfunction omitImplementation(data: Record<string, unknown>, keys: Iterable<string>): Record<string, unknown> {\n const keysSet = new Set(keys);\n\n const newObj: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(data)) {\n if (!keysSet.has(key)) {\n newObj[key] = value;\n }\n }\n\n return newObj;\n}\n\nexport function omit<Obj extends Record<string, unknown>, Key extends keyof Obj>(\n keys: Iterable<Key>,\n): (data: Obj) => Omit<Obj, Key>;\nexport function omit<Obj extends Record<string, unknown>, Key extends keyof Obj>(\n data: Obj,\n keys: Iterable<Key>,\n): Omit<Obj, Key>;\nexport function omit(...args: readonly unknown[]): unknown {\n return purry(omitImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction pickImplementation(data: Record<string, unknown>, keys: Iterable<string>): Record<string, unknown> {\n const keysSet = new Set(keys);\n\n const newObj: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(data)) {\n if (keysSet.has(key)) {\n newObj[key] = value;\n }\n }\n\n return newObj;\n}\n\nexport function pick<Obj extends Record<string, unknown>, Key extends keyof Obj>(\n keys: Iterable<Key>,\n): (data: Obj) => Pick<Obj, Key>;\nexport function pick<Obj extends Record<string, unknown>, Key extends keyof Obj>(\n data: Obj,\n keys: Iterable<Key>,\n): Pick<Obj, Key>;\nexport function pick(...args: readonly unknown[]): unknown {\n return purry(pickImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nexport function setImplementation<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key, value: Obj[Key]): Obj {\n return { ...obj, [key]: value };\n}\n\nexport function set<Obj extends object, Key extends keyof Obj>(key: Key, value: Obj[Key]): (obj: Obj) => Obj;\nexport function set<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key, value: Obj[Key]): Obj;\nexport function set(...args: readonly unknown[]): unknown {\n return purry(setImplementation, args);\n}\n","import { purry } from '../function/purry';\n\nfunction upsertImplementation<T>(\n data: Record<string, T>,\n key: string,\n fn: (value: T | null | undefined) => T,\n): Record<string, T> {\n if (!(key in data)) {\n const updatedValue = fn(undefined);\n return { ...data, [key]: updatedValue };\n }\n\n const value = data[key];\n\n // this checks for both `undefined` and `null`\n if (value == null) {\n const updatedValue = fn(null);\n return { ...data, [key]: updatedValue };\n }\n\n const updatedValue = fn(value);\n return { ...data, [key]: updatedValue };\n}\n\n/**\n * Upsert is meant to be used on `Record<K, V>` types that have unknown keys that may or may not exists\n * The callback function is unique in that it will return `V | null | undefined`\n * * `V` is returned if the key is present and a value exists\n * * `null` is returned if the key is present, but is set to `null` or `undefined`\n * * `undefined` is returned if the key is not present\n */\nexport function upsert<T>(\n key: string,\n fn: (value: T | null | undefined) => T,\n): (data: Record<string, T>) => Record<string, T>;\nexport function upsert<T>(\n data: Record<string, T>,\n key: string,\n fn: (value: T | null | undefined) => T,\n): Record<string, T>;\nexport function upsert(...args: readonly unknown[]): unknown {\n return purry(upsertImplementation, args);\n}\n"],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { r as NotFoundError } from "../errors-CJsLpYo9.cjs";
2
+ import { Merge, Simplify } from "type-fest";
3
+
4
+ //#region src/object/_globalAliases.d.ts
5
+ declare const fromEntries: {
6
+ <T = any>(entries: Iterable<readonly [PropertyKey, T]>): {
7
+ [k: string]: T;
8
+ };
9
+ (entries: Iterable<readonly any[]>): any;
10
+ }, hasOwn: (o: object, v: PropertyKey) => boolean, is: (value1: any, value2: any) => boolean, keys: {
11
+ (o: object): string[];
12
+ (o: {}): string[];
13
+ }, values: {
14
+ <T>(o: {
15
+ [s: string]: T;
16
+ } | ArrayLike<T>): T[];
17
+ (o: {}): any[];
18
+ };
19
+ /**
20
+ * @category Object
21
+ * @function
22
+ * @example
23
+ * ```ts
24
+ * entries({ a: 1, b: 2 }); // [['a', 1], ['b', 2]]
25
+ * ```
26
+ */
27
+ declare const entries: {
28
+ <T>(o: {
29
+ [s: string]: T;
30
+ } | ArrayLike<T>): [string, T][];
31
+ (o: {}): [string, any][];
32
+ };
33
+ //#endregion
34
+ //#region src/object/clone.d.ts
35
+ /**
36
+ * Alias of structuredClone without the optional second argument
37
+ */
38
+ declare function clone<T>(data: T): T;
39
+ //#endregion
40
+ //#region src/object/evolve.d.ts
41
+ type Evolved<Obj extends object, Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown }> = { [K in keyof Obj]: Obj extends Record<K, infer T> ? Evolver extends Record<K, (value: Obj[K]) => infer R> ? R extends T ? T : unknown : never : never };
42
+ declare function evolve<Obj extends object, Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown }>(evolver: Evolver): (obj: Obj) => Simplify<Evolved<Obj, Evolver>>;
43
+ declare function evolve<Obj extends object, Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown }>(obj: Obj, evolver: Evolver): Simplify<Evolved<Obj, Evolver>>;
44
+ //#endregion
45
+ //#region src/object/forEach.d.ts
46
+ declare function forEach<T>(callbackfn: (value: T, key: string) => void): (data: Record<string, T>) => Record<string, T>;
47
+ declare function forEach<T>(data: Record<string, T>, callbackfn: (value: T, key: string) => void): Record<string, T>;
48
+ //#endregion
49
+ //#region src/object/get.d.ts
50
+ /**
51
+ * Get a property from an object by key.
52
+ *
53
+ * @category Object
54
+ * @param key - The key to get the property from.
55
+ * @param obj - The object to get the property from.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * get('name', { name: 'John' }); // 'John'
60
+ * ```
61
+ */
62
+ declare function get<Obj extends object, Key extends keyof Obj>(key: Key): (obj: Obj) => NonNullable<Obj[Key]> | NotFoundError;
63
+ declare function get<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key): NonNullable<Obj[Key]> | NotFoundError;
64
+ declare namespace get {
65
+ var or: typeof getOr;
66
+ var assert: typeof getAssert;
67
+ }
68
+ declare function getOr<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key, defaultValue: NonNullable<Obj[Key]>): Obj[Key];
69
+ declare function getAssert<Obj extends object, Key extends keyof Obj>(key: Key): (obj: Obj) => NonNullable<Obj[Key]>;
70
+ declare function getAssert<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key): NonNullable<Obj[Key]>;
71
+ //#endregion
72
+ //#region src/object/groupBy.d.ts
73
+ declare function groupBy<T>(keySelector: (item: T, index: number) => string): (items: Iterable<T>) => Partial<Record<string, T[]>>;
74
+ declare function groupBy<T>(items: Iterable<T>, keySelector: (item: T, index: number) => string): Partial<Record<string, T[]>>;
75
+ //#endregion
76
+ //#region src/object/indexBy.d.ts
77
+ declare function indexBy<T>(keySelector: (item: T, index: number) => string): (data: Iterable<T>) => Record<string, T>;
78
+ declare function indexBy<T>(data: Iterable<T>, keySelector: (item: T, index: number) => string): Record<string, T>;
79
+ //#endregion
80
+ //#region src/object/map.d.ts
81
+ declare function map<T, U>(callbackfn: (value: T, key: string) => U): (data: Record<string, T>) => Record<string, U>;
82
+ declare function map<T, U>(data: Record<string, T>, callbackfn: (value: T, key: string) => U): Record<string, U>;
83
+ //#endregion
84
+ //#region src/object/merge.d.ts
85
+ declare function merge<Obj extends object, Other extends object>(right: Other): (left: Obj) => Merge<Obj, Other>;
86
+ declare function merge<Obj extends object, Other extends object>(left: Obj, right: Other): Merge<Obj, Other>;
87
+ declare namespace merge {
88
+ var left: typeof mergeLeft;
89
+ }
90
+ declare function mergeLeft<Obj extends object, Other extends object>(right: Other): (left: Obj) => Merge<Other, Obj>;
91
+ declare function mergeLeft<Obj extends object, Other extends object>(left: Obj, right: Other): Merge<Other, Obj>;
92
+ //#endregion
93
+ //#region src/object/omit.d.ts
94
+ declare function omit<Obj extends Record<string, unknown>, Key extends keyof Obj>(keys: Iterable<Key>): (data: Obj) => Omit<Obj, Key>;
95
+ declare function omit<Obj extends Record<string, unknown>, Key extends keyof Obj>(data: Obj, keys: Iterable<Key>): Omit<Obj, Key>;
96
+ //#endregion
97
+ //#region src/object/pick.d.ts
98
+ declare function pick<Obj extends Record<string, unknown>, Key extends keyof Obj>(keys: Iterable<Key>): (data: Obj) => Pick<Obj, Key>;
99
+ declare function pick<Obj extends Record<string, unknown>, Key extends keyof Obj>(data: Obj, keys: Iterable<Key>): Pick<Obj, Key>;
100
+ //#endregion
101
+ //#region src/object/set.d.ts
102
+ declare function setImplementation<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key, value: Obj[Key]): Obj;
103
+ declare function set<Obj extends object, Key extends keyof Obj>(key: Key, value: Obj[Key]): (obj: Obj) => Obj;
104
+ declare function set<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key, value: Obj[Key]): Obj;
105
+ //#endregion
106
+ //#region src/object/upsert.d.ts
107
+ /**
108
+ * Upsert is meant to be used on `Record<K, V>` types that have unknown keys that may or may not exists
109
+ * The callback function is unique in that it will return `V | null | undefined`
110
+ * * `V` is returned if the key is present and a value exists
111
+ * * `null` is returned if the key is present, but is set to `null` or `undefined`
112
+ * * `undefined` is returned if the key is not present
113
+ */
114
+ declare function upsert<T>(key: string, fn: (value: T | null | undefined) => T): (data: Record<string, T>) => Record<string, T>;
115
+ declare function upsert<T>(data: Record<string, T>, key: string, fn: (value: T | null | undefined) => T): Record<string, T>;
116
+ //#endregion
117
+ export { clone, entries, evolve, forEach, fromEntries, get, getAssert, groupBy, hasOwn, indexBy, is, keys, map, merge, mergeLeft, omit, pick, set, setImplementation, upsert, values };
118
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/object/_globalAliases.ts","../../src/object/clone.ts","../../src/object/evolve.ts","../../src/object/forEach.ts","../../src/object/get.ts","../../src/object/groupBy.ts","../../src/object/indexBy.ts","../../src/object/map.ts","../../src/object/merge.ts","../../src/object/omit.ts","../../src/object/pick.ts","../../src/object/set.ts","../../src/object/upsert.ts"],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { r as NotFoundError } from "../errors-CJsLpYo9.mjs";
2
+ import { Merge, Simplify } from "type-fest";
3
+
4
+ //#region src/object/_globalAliases.d.ts
5
+ declare const fromEntries: {
6
+ <T = any>(entries: Iterable<readonly [PropertyKey, T]>): {
7
+ [k: string]: T;
8
+ };
9
+ (entries: Iterable<readonly any[]>): any;
10
+ }, hasOwn: (o: object, v: PropertyKey) => boolean, is: (value1: any, value2: any) => boolean, keys: {
11
+ (o: object): string[];
12
+ (o: {}): string[];
13
+ }, values: {
14
+ <T>(o: {
15
+ [s: string]: T;
16
+ } | ArrayLike<T>): T[];
17
+ (o: {}): any[];
18
+ };
19
+ /**
20
+ * @category Object
21
+ * @function
22
+ * @example
23
+ * ```ts
24
+ * entries({ a: 1, b: 2 }); // [['a', 1], ['b', 2]]
25
+ * ```
26
+ */
27
+ declare const entries: {
28
+ <T>(o: {
29
+ [s: string]: T;
30
+ } | ArrayLike<T>): [string, T][];
31
+ (o: {}): [string, any][];
32
+ };
33
+ //#endregion
34
+ //#region src/object/clone.d.ts
35
+ /**
36
+ * Alias of structuredClone without the optional second argument
37
+ */
38
+ declare function clone<T>(data: T): T;
39
+ //#endregion
40
+ //#region src/object/evolve.d.ts
41
+ type Evolved<Obj extends object, Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown }> = { [K in keyof Obj]: Obj extends Record<K, infer T> ? Evolver extends Record<K, (value: Obj[K]) => infer R> ? R extends T ? T : unknown : never : never };
42
+ declare function evolve<Obj extends object, Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown }>(evolver: Evolver): (obj: Obj) => Simplify<Evolved<Obj, Evolver>>;
43
+ declare function evolve<Obj extends object, Evolver extends { [K in keyof Partial<Obj>]: (value: Obj[K]) => unknown }>(obj: Obj, evolver: Evolver): Simplify<Evolved<Obj, Evolver>>;
44
+ //#endregion
45
+ //#region src/object/forEach.d.ts
46
+ declare function forEach<T>(callbackfn: (value: T, key: string) => void): (data: Record<string, T>) => Record<string, T>;
47
+ declare function forEach<T>(data: Record<string, T>, callbackfn: (value: T, key: string) => void): Record<string, T>;
48
+ //#endregion
49
+ //#region src/object/get.d.ts
50
+ /**
51
+ * Get a property from an object by key.
52
+ *
53
+ * @category Object
54
+ * @param key - The key to get the property from.
55
+ * @param obj - The object to get the property from.
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * get('name', { name: 'John' }); // 'John'
60
+ * ```
61
+ */
62
+ declare function get<Obj extends object, Key extends keyof Obj>(key: Key): (obj: Obj) => NonNullable<Obj[Key]> | NotFoundError;
63
+ declare function get<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key): NonNullable<Obj[Key]> | NotFoundError;
64
+ declare namespace get {
65
+ var or: typeof getOr;
66
+ var assert: typeof getAssert;
67
+ }
68
+ declare function getOr<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key, defaultValue: NonNullable<Obj[Key]>): Obj[Key];
69
+ declare function getAssert<Obj extends object, Key extends keyof Obj>(key: Key): (obj: Obj) => NonNullable<Obj[Key]>;
70
+ declare function getAssert<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key): NonNullable<Obj[Key]>;
71
+ //#endregion
72
+ //#region src/object/groupBy.d.ts
73
+ declare function groupBy<T>(keySelector: (item: T, index: number) => string): (items: Iterable<T>) => Partial<Record<string, T[]>>;
74
+ declare function groupBy<T>(items: Iterable<T>, keySelector: (item: T, index: number) => string): Partial<Record<string, T[]>>;
75
+ //#endregion
76
+ //#region src/object/indexBy.d.ts
77
+ declare function indexBy<T>(keySelector: (item: T, index: number) => string): (data: Iterable<T>) => Record<string, T>;
78
+ declare function indexBy<T>(data: Iterable<T>, keySelector: (item: T, index: number) => string): Record<string, T>;
79
+ //#endregion
80
+ //#region src/object/map.d.ts
81
+ declare function map<T, U>(callbackfn: (value: T, key: string) => U): (data: Record<string, T>) => Record<string, U>;
82
+ declare function map<T, U>(data: Record<string, T>, callbackfn: (value: T, key: string) => U): Record<string, U>;
83
+ //#endregion
84
+ //#region src/object/merge.d.ts
85
+ declare function merge<Obj extends object, Other extends object>(right: Other): (left: Obj) => Merge<Obj, Other>;
86
+ declare function merge<Obj extends object, Other extends object>(left: Obj, right: Other): Merge<Obj, Other>;
87
+ declare namespace merge {
88
+ var left: typeof mergeLeft;
89
+ }
90
+ declare function mergeLeft<Obj extends object, Other extends object>(right: Other): (left: Obj) => Merge<Other, Obj>;
91
+ declare function mergeLeft<Obj extends object, Other extends object>(left: Obj, right: Other): Merge<Other, Obj>;
92
+ //#endregion
93
+ //#region src/object/omit.d.ts
94
+ declare function omit<Obj extends Record<string, unknown>, Key extends keyof Obj>(keys: Iterable<Key>): (data: Obj) => Omit<Obj, Key>;
95
+ declare function omit<Obj extends Record<string, unknown>, Key extends keyof Obj>(data: Obj, keys: Iterable<Key>): Omit<Obj, Key>;
96
+ //#endregion
97
+ //#region src/object/pick.d.ts
98
+ declare function pick<Obj extends Record<string, unknown>, Key extends keyof Obj>(keys: Iterable<Key>): (data: Obj) => Pick<Obj, Key>;
99
+ declare function pick<Obj extends Record<string, unknown>, Key extends keyof Obj>(data: Obj, keys: Iterable<Key>): Pick<Obj, Key>;
100
+ //#endregion
101
+ //#region src/object/set.d.ts
102
+ declare function setImplementation<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key, value: Obj[Key]): Obj;
103
+ declare function set<Obj extends object, Key extends keyof Obj>(key: Key, value: Obj[Key]): (obj: Obj) => Obj;
104
+ declare function set<Obj extends object, Key extends keyof Obj>(obj: Obj, key: Key, value: Obj[Key]): Obj;
105
+ //#endregion
106
+ //#region src/object/upsert.d.ts
107
+ /**
108
+ * Upsert is meant to be used on `Record<K, V>` types that have unknown keys that may or may not exists
109
+ * The callback function is unique in that it will return `V | null | undefined`
110
+ * * `V` is returned if the key is present and a value exists
111
+ * * `null` is returned if the key is present, but is set to `null` or `undefined`
112
+ * * `undefined` is returned if the key is not present
113
+ */
114
+ declare function upsert<T>(key: string, fn: (value: T | null | undefined) => T): (data: Record<string, T>) => Record<string, T>;
115
+ declare function upsert<T>(data: Record<string, T>, key: string, fn: (value: T | null | undefined) => T): Record<string, T>;
116
+ //#endregion
117
+ export { clone, entries, evolve, forEach, fromEntries, get, getAssert, groupBy, hasOwn, indexBy, is, keys, map, merge, mergeLeft, omit, pick, set, setImplementation, upsert, values };
118
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/object/_globalAliases.ts","../../src/object/clone.ts","../../src/object/evolve.ts","../../src/object/forEach.ts","../../src/object/get.ts","../../src/object/groupBy.ts","../../src/object/indexBy.ts","../../src/object/map.ts","../../src/object/merge.ts","../../src/object/omit.ts","../../src/object/pick.ts","../../src/object/set.ts","../../src/object/upsert.ts"],"mappings":"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"}