@oazmi/superbuild 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 (118) hide show
  1. package/esm/_dnt.shims.d.ts +2 -0
  2. package/esm/_dnt.shims.d.ts.map +1 -0
  3. package/esm/_dnt.shims.js +57 -0
  4. package/esm/deps/jsr.io/@oazmi/esbuild-types/0.28.0/src/mod.d.ts +598 -0
  5. package/esm/deps/jsr.io/@oazmi/esbuild-types/0.28.0/src/mod.d.ts.map +1 -0
  6. package/esm/deps/jsr.io/@oazmi/esbuild-types/0.28.0/src/mod.js +1 -0
  7. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/alias.d.ts +617 -0
  8. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/alias.d.ts.map +1 -0
  9. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/alias.js +671 -0
  10. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/array1d.d.ts +487 -0
  11. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/array1d.d.ts.map +1 -0
  12. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/array1d.js +536 -0
  13. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/array2d.d.ts +266 -0
  14. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/array2d.d.ts.map +1 -0
  15. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/array2d.js +318 -0
  16. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/binder.d.ts +368 -0
  17. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/binder.d.ts.map +1 -0
  18. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/binder.js +380 -0
  19. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/crossenv.d.ts +711 -0
  20. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/crossenv.d.ts.map +1 -0
  21. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/crossenv.js +1173 -0
  22. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/cryptoman.d.ts +171 -0
  23. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/cryptoman.d.ts.map +1 -0
  24. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/cryptoman.js +308 -0
  25. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/deps.d.ts +10 -0
  26. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/deps.d.ts.map +1 -0
  27. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/deps.js +10 -0
  28. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/eightpack.d.ts +168 -0
  29. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/eightpack.d.ts.map +1 -0
  30. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/eightpack.js +236 -0
  31. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/eightpack_varint.d.ts +90 -0
  32. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/eightpack_varint.d.ts.map +1 -0
  33. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/eightpack_varint.js +237 -0
  34. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/numericarray.d.ts +213 -0
  35. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/numericarray.d.ts.map +1 -0
  36. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/numericarray.js +363 -0
  37. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/numericmethods.d.ts +233 -0
  38. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/numericmethods.d.ts.map +1 -0
  39. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/numericmethods.js +256 -0
  40. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/pathman.d.ts +1436 -0
  41. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/pathman.d.ts.map +1 -0
  42. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/pathman.js +1730 -0
  43. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/promiseman.d.ts +647 -0
  44. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/promiseman.d.ts.map +1 -0
  45. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/promiseman.js +762 -0
  46. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/stringman.d.ts +538 -0
  47. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/stringman.d.ts.map +1 -0
  48. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/stringman.js +626 -0
  49. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/struct.d.ts +734 -0
  50. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/struct.d.ts.map +1 -0
  51. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/struct.js +764 -0
  52. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/typedbuffer.d.ts +137 -0
  53. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/typedbuffer.d.ts.map +1 -0
  54. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/typedbuffer.js +234 -0
  55. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/typedefs.d.ts +391 -0
  56. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/typedefs.d.ts.map +1 -0
  57. package/esm/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/typedefs.js +8 -0
  58. package/esm/deps.d.ts +56 -0
  59. package/esm/deps.d.ts.map +1 -0
  60. package/esm/deps.js +37 -0
  61. package/esm/esbuild/metafile.d.ts +90 -0
  62. package/esm/esbuild/metafile.d.ts.map +1 -0
  63. package/esm/esbuild/metafile.js +275 -0
  64. package/esm/esbuild/native.d.ts +95 -0
  65. package/esm/esbuild/native.d.ts.map +1 -0
  66. package/esm/esbuild/native.js +127 -0
  67. package/esm/esbuild/outputfile.d.ts +86 -0
  68. package/esm/esbuild/outputfile.d.ts.map +1 -0
  69. package/esm/esbuild/outputfile.js +221 -0
  70. package/esm/esbuild/strongtypes.d.ts +90 -0
  71. package/esm/esbuild/strongtypes.d.ts.map +1 -0
  72. package/esm/esbuild/strongtypes.js +8 -0
  73. package/esm/esbuild/typedefs.d.ts +121 -0
  74. package/esm/esbuild/typedefs.d.ts.map +1 -0
  75. package/esm/esbuild/typedefs.js +55 -0
  76. package/esm/esbuild/weaktypes.d.ts +46 -0
  77. package/esm/esbuild/weaktypes.d.ts.map +1 -0
  78. package/esm/esbuild/weaktypes.js +8 -0
  79. package/esm/funcdefs.d.ts +89 -0
  80. package/esm/funcdefs.d.ts.map +1 -0
  81. package/esm/funcdefs.js +145 -0
  82. package/esm/mod.d.ts +4 -0
  83. package/esm/mod.d.ts.map +1 -0
  84. package/esm/mod.js +2 -0
  85. package/esm/package.json +3 -0
  86. package/esm/plugins/emissions_driver.d.ts +33 -0
  87. package/esm/plugins/emissions_driver.d.ts.map +1 -0
  88. package/esm/plugins/emissions_driver.js +260 -0
  89. package/esm/plugins/long_build.d.ts +138 -0
  90. package/esm/plugins/long_build.d.ts.map +1 -0
  91. package/esm/plugins/long_build.js +288 -0
  92. package/esm/plugins/native_replica.d.ts +48 -0
  93. package/esm/plugins/native_replica.d.ts.map +1 -0
  94. package/esm/plugins/native_replica.js +122 -0
  95. package/esm/super/build.d.ts +53 -0
  96. package/esm/super/build.d.ts.map +1 -0
  97. package/esm/super/build.js +39 -0
  98. package/esm/super/build_context.d.ts +83 -0
  99. package/esm/super/build_context.d.ts.map +1 -0
  100. package/esm/super/build_context.js +124 -0
  101. package/esm/super/mod.d.ts +12 -0
  102. package/esm/super/mod.d.ts.map +1 -0
  103. package/esm/super/mod.js +9 -0
  104. package/esm/super/plugin.d.ts +23 -0
  105. package/esm/super/plugin.d.ts.map +1 -0
  106. package/esm/super/plugin.js +31 -0
  107. package/esm/super/plugin_build.d.ts +38 -0
  108. package/esm/super/plugin_build.d.ts.map +1 -0
  109. package/esm/super/plugin_build.js +198 -0
  110. package/esm/super/typedefs.d.ts +323 -0
  111. package/esm/super/typedefs.d.ts.map +1 -0
  112. package/esm/super/typedefs.js +10 -0
  113. package/esm/typedefs.d.ts +21 -0
  114. package/esm/typedefs.d.ts.map +1 -0
  115. package/esm/typedefs.js +5 -0
  116. package/license.md +37 -0
  117. package/package.json +88 -0
  118. package/readme.md +181 -0
@@ -0,0 +1,368 @@
1
+ /** utility functions for creating other general purpose functions that can bind their passed function's functionality to some specific object.
2
+ *
3
+ * those are certainly a lot of words thrown in the air with no clarity as to what am I even saying.
4
+ * just as they say, a code block example is worth a thousand assembly instructions. here's the gist of it:
5
+ *
6
+ * ```ts
7
+ * import { assertEquals } from "jsr:@std/assert"
8
+ *
9
+ * const bind_pushing_to = bindMethodFactory(Array.prototype.push) // equivalent to `bindMethodFactoryByName(Array.prototype, "push")`
10
+ * const bind_seek_to = bindMethodFactory(Array.prototype.at, -1) // equivalent to `bindMethodFactoryByName(Array.prototype, "at", -1)`
11
+ * const bind_splicing_to = bindMethodFactoryByName(Array.prototype, "splice") // equivalent to `bindMethodFactory(Array.prototype.splice)`
12
+ * const bind_clear_to = bindMethodFactoryByName(Array.prototype, "splice", 0) // equivalent to `bindMethodFactory(Array.prototype.splice, 0)`
13
+ *
14
+ * const my_array = [1, 2, 3, 4, 5, 6]
15
+ * const push_my_array = bind_pushing_to(my_array)
16
+ * const seek_my_array = bind_seek_to(my_array)
17
+ * const splice_my_array = bind_splicing_to(my_array)
18
+ * const clear_my_array = bind_clear_to(my_array) as (deleteCount?: number, ...items: number[]) => number[]
19
+ *
20
+ * push_my_array(7, 8, 9)
21
+ * assertEquals(my_array, [1, 2, 3, 4, 5, 6, 7, 8, 9])
22
+ * assertEquals(seek_my_array(), 9)
23
+ * splice_my_array(4, 3)
24
+ * assertEquals(my_array, [1, 2, 3, 4, 8, 9])
25
+ * clear_my_array()
26
+ * assertEquals(my_array, [])
27
+ * ```
28
+ *
29
+ * you may have some amateur level questions about *why?* would anyone want to do that. here is why:
30
+ * - calling a method via property access is slower. so when you call an array `arr`'s push or pop methods a million times,
31
+ * having a bound function for that specific purpose will be quicker by about x1.3 times:
32
+ *
33
+ * ```ts
34
+ * import { assertLess } from "jsr:@std/assert"
35
+ * import { timeIt } from "./timeman.ts"
36
+ *
37
+ * // WARNING: JIT is pretty smart, and the test consistiently fails for `i` and `j` > `10_000_000`,
38
+ * // this is despite my efforts to make it difficult for the JIT to optimize the slow method, by computing some modulo and only popping when it is zero.
39
+ * // thus to be safe, I tuned `i` and `j` down to `100_000` iterations
40
+ *
41
+ * let i = 100_000, j = 100_000, sum1 = 0, sum2 = 0
42
+ * const
43
+ * arr1 = Array(777).fill(0).map(Math.random),
44
+ * arr2 = Array(777).fill(0).map(Math.random)
45
+ *
46
+ * // slower way:
47
+ * const t1 = timeIt(() => {
48
+ * while(i--) {
49
+ * const new_length = arr1.push(Math.random())
50
+ * sum1 += ((new_length + i) % 3 === 0 ? arr1.pop()! : arr1.at(-1)!)
51
+ * }
52
+ * })
53
+ *
54
+ * // faster way (allegedly):
55
+ * const
56
+ * push_arr2 = Array.prototype.push.bind(arr2),
57
+ * pop_arr2 = Array.prototype.pop.bind(arr2),
58
+ * seek_arr2 = Array.prototype.at.bind(arr2, -1)
59
+ * const t2 = timeIt(() => {
60
+ * while(j--) {
61
+ * const new_length = push_arr2(Math.random())
62
+ * sum2 += ((new_length + i) % 3 === 0 ? pop_arr2()! : seek_arr2()!)
63
+ * }
64
+ * })
65
+ *
66
+ * // assertLess(t2, t1) // TODO: RIP, performance gains have diminished in deno. curse you V8 JIT.
67
+ * // I still do think that in non-micro-benchmarks and real life applications (where there are a variety of objects and structures),
68
+ * // there still is a bit of performance gain. and lets not forget the benefit of minifiability.
69
+ * ```
70
+ *
71
+ * next, you may be wondering why not destructure the method or assign it to a variable?
72
+ * - this cannot be generally done for prototype-bound methods, because it needs the context of *who* is the caller (and therefor the *this* of interest).
73
+ * all builtin javascript class methods are prototype-bound. meaning that for every instance of a builtin class no new functions are specifically created for that instance,
74
+ * and instead, the instance holds a reference to the class's prototype object's method, but applies itself as the *this* when called.
75
+ *
76
+ * ```ts
77
+ * import { assertEquals, assertThrows } from "jsr:@std/assert"
78
+ *
79
+ * const arr = [1, 2, 3, 4, 5, 6]
80
+ *
81
+ * // prototype-bound methods need to be called via property access, otherwise they will loose their `this` context when uncoupled from their parent object
82
+ * const { push, pop } = arr
83
+ * assertThrows(() => push(7, 8, 9)) // `TypeError: Cannot convert undefined or null to object`
84
+ * assertThrows(() => pop()) // `TypeError: Cannot convert undefined or null to object`
85
+ *
86
+ * const
87
+ * push2 = arr.push,
88
+ * pop2 = arr.pop
89
+ * assertThrows(() => push2(7, 8, 9)) // `TypeError: Cannot convert undefined or null to object`
90
+ * assertThrows(() => pop2()) // `TypeError: Cannot convert undefined or null to object`
91
+ *
92
+ * // but you can do the binding yourself too to make it work
93
+ * const push3 = arr.push.bind(arr) // equivalent to `Array.prototype.push.bind(arr)`
94
+ * const pop3 = arr.pop.bind(arr) // equivalent to `Array.prototype.pop.bind(arr)`
95
+ * push3(7, 8, 9) // will work
96
+ * pop3() // will work
97
+ *
98
+ * // or use this submodule to do the same thing:
99
+ * // import { bind_array_pop, bind_array_push } from "@oazmi/kitchensink/binder"
100
+ * const push4 = bind_array_push(arr)
101
+ * const pop4 = bind_array_pop(arr)
102
+ * push4(7, 8, 9) // will work
103
+ * pop4() // will work
104
+ * ```
105
+ * - finally, property accesses are not easily minifiable (although they do get compressed when gzipped).
106
+ * however, if you bind your method calls to a variable, then it will become minifiable, which is somewhat the primary motivation for this submodule.
107
+ *
108
+ * with full automatic typing, you won't be compensating in any way.
109
+ * on the side note, it was figuring out the automatic typing that took me almost 16 hours just to write 3 lines of equivalent javascript code for the main 2 factory functions of this submodule.
110
+ * **curse you typescript!**
111
+ *
112
+ * @module
113
+ */
114
+ export type BindableFunction<T, A extends any[], B extends any[], R> = ((this: T, ...args: [...A, ...B]) => R);
115
+ /** generates a factory function that binds a class-prototype-method `func` (by reference) to the passed object `S` (which should be an instance of the class).
116
+ * @param func the method to generate the binding for
117
+ * @param args partial tuple of the first few arguments that should be passed in by default
118
+ * @returns a function that can bind any object `obj: S` to the said method
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * const bind_map_set = bindMethodFactory(Map.prototype.set)
123
+ * type ID = number
124
+ * const graph_edges = new Map<ID, Set<ID>>()
125
+ * const set_graph_edge = bind_map_set(graph_edges) // automatic type inference will correctly assign it the type: `(key: number, value: Set<number>) => Map<number, Set<number>>`
126
+ * const edges: [ID, ID[]][] = [[1, [1,2,3]], [2, [3,5]], [3, [4, 7]], [4, [4,5]], [5, [7]]]
127
+ * for (const [id, adjacent_ids] of edges) { set_graph_edge(id, new Set(adjacent_ids)) }
128
+ * ```
129
+ *
130
+ * example with assigned default arguments
131
+ * ```ts
132
+ * import { assertEquals } from "jsr:@std/assert"
133
+ *
134
+ * const bind_queue_delete_bottom_n_elements = bindMethodFactory(Array.prototype.splice, 0)
135
+ * const queue = [1, 2, 3, 7, 7, 7, 9, 9, 9]
136
+ * const release_from_queue = bind_queue_delete_bottom_n_elements(queue) // automatic type inference will correctly assign it the type: `(deleteCount: number, ...items: number[]) => number[]`
137
+ * const test_arr: number[][] = []
138
+ * while (queue.length > 0) { test_arr.push(release_from_queue(3)) }
139
+ * assertEquals(test_arr, [
140
+ * [1, 2, 3],
141
+ * [7, 7, 7],
142
+ * [9, 9, 9],
143
+ * ])
144
+ * ```
145
+ */
146
+ export declare const bindMethodFactory: <T, A extends any[], B extends any[], R>(func: BindableFunction<T, A, B, R>, ...args: A) => <S extends T>(thisArg: S) => (...args: B) => R;
147
+ /** generates a factory function that binds a class-prototype-method (by name) to the passed object `S` (which should be an instance of the class).
148
+ * @param instance an object containing the the method (typically a prototype object, but it doesn't have to be that)
149
+ * @param method_name the name of the method to generate the binding for
150
+ * @param args partial tuple of the first few arguments that should be passed in by default
151
+ * @returns a function that can bind any object `obj: S` to the said method
152
+ *
153
+ * @example
154
+ * ```ts
155
+ * const bind_map_set = bindMethodFactoryByName(Map.prototype, "set")
156
+ * type ID = number
157
+ * const graph_edges = new Map<ID, Set<ID>>()
158
+ * const set_graph_edge = bind_map_set(graph_edges) // automatic type inference will correctly assign it the type: `(key: number, value: Set<number>) => Map<number, Set<number>>`
159
+ * const edges: [ID, ID[]][] = [[1, [1,2,3]], [2, [3,5]], [3, [4, 7]], [4, [4,5]], [5, [7]]]
160
+ * for (const [id, adjacent_ids] of edges) { set_graph_edge(id, new Set(adjacent_ids)) }
161
+ * ```
162
+ *
163
+ * example with assigned default arguments
164
+ * ```ts
165
+ * import { assertEquals } from "jsr:@std/assert"
166
+ *
167
+ * const bind_queue_delete_bottom_n_elements = bindMethodFactoryByName(Array.prototype, "splice", 0)
168
+ * const queue = [1, 2, 3, 7, 7, 7, 9, 9, 9]
169
+ * const release_from_queue = bind_queue_delete_bottom_n_elements(queue) // automatic type inference will correctly assign it the type: `(deleteCount: number, ...items: number[]) => number[]`
170
+ * const test_arr: number[][] = []
171
+ * while (queue.length > 0) { test_arr.push(release_from_queue(3)) }
172
+ * assertEquals(test_arr, [
173
+ * [1, 2, 3],
174
+ * [7, 7, 7],
175
+ * [9, 9, 9],
176
+ * ])
177
+ * ```
178
+ */
179
+ export declare const bindMethodFactoryByName: <T extends Record<M, BindableFunction<T, any[], unknown[], any>>, M extends PropertyKey, A extends (T[M] extends BindableFunction<T, infer P, any[], R> ? P : never), R extends ReturnType<T[M]>>(instance: T, method_name: M, ...args: A) => <S extends T, SB extends (S[M] extends BindableFunction<S, A, infer P, SR> ? P : never), SR extends ReturnType<S[M]>>(thisArg: S) => (...args: SB) => SR;
180
+ /** binds a class-prototype-method `func` (by reference) to the passed object `self` (which should be an instance of the class), and returns that bound method.
181
+ * @param self the object to bind the method `func` to
182
+ * @param func the prototype-method to bind (by reference)
183
+ * @param args partial tuple of the first few arguments that should be passed in by default
184
+ * @returns a version of the function `func` that is now bound to the object `self`, with the default first few partial arguments `args`
185
+ *
186
+ * @example
187
+ * ```ts
188
+ * type ID = number
189
+ * const graph_edges = new Map<ID, Set<ID>>()
190
+ * const set_graph_edge = bindMethodToSelf(graph_edges, graph_edges.set) // automatic type inference will correctly assign it the type: `(key: number, value: Set<number>) => Map<number, Set<number>>`
191
+ * const edges: [ID, ID[]][] = [[1, [1,2,3]], [2, [3,5]], [3, [4, 7]], [4, [4,5]], [5, [7]]]
192
+ * for (const [id, adjacent_ids] of edges) { set_graph_edge(id, new Set(adjacent_ids)) }
193
+ * ```
194
+ *
195
+ * example with assigned default arguments
196
+ * ```ts
197
+ * import { assertEquals } from "jsr:@std/assert"
198
+ *
199
+ * const queue = [1, 2, 3, 7, 7, 7, 9, 9, 9]
200
+ * const release_from_queue = bindMethodToSelf(queue, queue.splice, 0) // automatic type inference will correctly assign it the type: `(deleteCount: number, ...items: number[]) => number[]`
201
+ * const test_arr: number[][] = []
202
+ * while (queue.length > 0) { test_arr.push(release_from_queue(3)) }
203
+ * assertEquals(test_arr, [
204
+ * [1, 2, 3],
205
+ * [7, 7, 7],
206
+ * [9, 9, 9],
207
+ * ])
208
+ * ```
209
+ */
210
+ export declare const bindMethodToSelf: <S, A extends any[], B extends any[], R>(self: S, func: BindableFunction<S, A, B, R>, ...args: A) => (...args: B) => R;
211
+ /** binds a class-prototype-method (by name `method_name`) to the passed object `self` (which should be an instance of the class), and returns that bound method.
212
+ * @param self the object to bind the method `method_name` to
213
+ * @param method_name the name of the prototype-method to bind
214
+ * @param args partial tuple of the first few arguments that should be passed in by default
215
+ * @returns a version of the function `method_name` that is now bound to the object `self`, with the default first few partial arguments `args`
216
+ *
217
+ * @example
218
+ * ```ts
219
+ * type ID = number
220
+ * const graph_edges = new Map<ID, Set<ID>>()
221
+ * const set_graph_edge = bindMethodToSelfByName(graph_edges, "set") // automatic type inference will correctly assign it the type: `(key: number, value: Set<number>) => Map<number, Set<number>>`
222
+ * const edges: [ID, ID[]][] = [[1, [1,2,3]], [2, [3,5]], [3, [4, 7]], [4, [4,5]], [5, [7]]]
223
+ * for (const [id, adjacent_ids] of edges) { set_graph_edge(id, new Set(adjacent_ids)) }
224
+ * ```
225
+ *
226
+ * example with assigned default arguments
227
+ * ```ts
228
+ * import { assertEquals } from "jsr:@std/assert"
229
+ *
230
+ * const queue = [1, 2, 3, 7, 7, 7, 9, 9, 9]
231
+ * const release_from_queue = bindMethodToSelfByName(queue, "splice", 0) // automatic type inference will correctly assign it the type: `(deleteCount: number, ...items: number[]) => number[]`
232
+ * const test_arr: number[][] = []
233
+ * while (queue.length > 0) { test_arr.push(release_from_queue(3)) }
234
+ * assertEquals(test_arr, [
235
+ * [1, 2, 3],
236
+ * [7, 7, 7],
237
+ * [9, 9, 9],
238
+ * ])
239
+ * ```
240
+ */
241
+ export declare const bindMethodToSelfByName: <S extends Record<M, BindableFunction<S, A, any[], any>>, M extends PropertyKey, A extends (S[M] extends BindableFunction<S, (infer P)[], any[], R> ? P[] : never), R extends ReturnType<S[M]>>(self: S, method_name: M, ...args: A) => (...args: S[M] extends BindableFunction<S, A, infer B extends any[], R> ? B : never) => R;
242
+ /** binding function for `Array.prototype.at`. */
243
+ export declare const bind_array_at: <S extends unknown[], SB extends S["at"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["at"]>>(thisArg: S) => (...args: SB) => SR;
244
+ /** binding function for `Array.prototype.concat`. */
245
+ export declare const bind_array_concat: <S extends unknown[], SB extends S["concat"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["concat"]>>(thisArg: S) => (...args: SB) => SR;
246
+ /** binding function for `Array.prototype.copyWithin`. */
247
+ export declare const bind_array_copyWithin: <S extends unknown[], SB extends S["copyWithin"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["copyWithin"]>>(thisArg: S) => (...args: SB) => SR;
248
+ /** binding function for `Array.prototype.entries`. */
249
+ export declare const bind_array_entries: <S extends unknown[], SB extends S["entries"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["entries"]>>(thisArg: S) => (...args: SB) => SR;
250
+ /** binding function for `Array.prototype.every`. */
251
+ export declare const bind_array_every: <S extends unknown[], SB extends S["every"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["every"]>>(thisArg: S) => (...args: SB) => SR;
252
+ /** binding function for `Array.prototype.fill`. */
253
+ export declare const bind_array_fill: <S extends unknown[], SB extends S["fill"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["fill"]>>(thisArg: S) => (...args: SB) => SR;
254
+ /** binding function for `Array.prototype.filter`. */
255
+ export declare const bind_array_filter: <S extends unknown[], SB extends S["filter"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["filter"]>>(thisArg: S) => (...args: SB) => SR;
256
+ /** binding function for `Array.prototype.find`. */
257
+ export declare const bind_array_find: <S extends unknown[], SB extends S["find"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["find"]>>(thisArg: S) => (...args: SB) => SR;
258
+ /** binding function for `Array.prototype.findIndex`. */
259
+ export declare const bind_array_findIndex: <S extends unknown[], SB extends S["findIndex"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["findIndex"]>>(thisArg: S) => (...args: SB) => SR;
260
+ /** binding function for `Array.prototype.findLast`. */
261
+ export declare const bind_array_findLast: <S extends unknown[], SB extends S["findLast"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["findLast"]>>(thisArg: S) => (...args: SB) => SR;
262
+ /** binding function for `Array.prototype.findLastIndex`. */
263
+ export declare const bind_array_findLastIndex: <S extends unknown[], SB extends S["findLastIndex"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["findLastIndex"]>>(thisArg: S) => (...args: SB) => SR;
264
+ /** binding function for `Array.prototype.flat`. */
265
+ export declare const bind_array_flat: <S extends unknown[], SB extends S["flat"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["flat"]>>(thisArg: S) => (...args: SB) => SR;
266
+ /** binding function for `Array.prototype.flatMap`. */
267
+ export declare const bind_array_flatMap: <S extends unknown[], SB extends S["flatMap"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["flatMap"]>>(thisArg: S) => (...args: SB) => SR;
268
+ /** binding function for `Array.prototype.forEach`. */
269
+ export declare const bind_array_forEach: <S extends unknown[], SB extends S["forEach"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["forEach"]>>(thisArg: S) => (...args: SB) => SR;
270
+ /** binding function for `Array.prototype.includes`. */
271
+ export declare const bind_array_includes: <S extends unknown[], SB extends S["includes"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["includes"]>>(thisArg: S) => (...args: SB) => SR;
272
+ /** binding function for `Array.prototype.indexOf`. */
273
+ export declare const bind_array_indexOf: <S extends unknown[], SB extends S["indexOf"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["indexOf"]>>(thisArg: S) => (...args: SB) => SR;
274
+ /** binding function for `Array.prototype.join`. */
275
+ export declare const bind_array_join: <S extends unknown[], SB extends S["join"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["join"]>>(thisArg: S) => (...args: SB) => SR;
276
+ /** binding function for `Array.prototype.keys`. */
277
+ export declare const bind_array_keys: <S extends unknown[], SB extends S["keys"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["keys"]>>(thisArg: S) => (...args: SB) => SR;
278
+ /** binding function for `Array.prototype.lastIndexOf`. */
279
+ export declare const bind_array_lastIndexOf: <S extends unknown[], SB extends S["lastIndexOf"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["lastIndexOf"]>>(thisArg: S) => (...args: SB) => SR;
280
+ /** binding function for `Array.prototype.map`. */
281
+ export declare const bind_array_map: <S extends unknown[], SB extends S["map"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["map"]>>(thisArg: S) => (...args: SB) => SR;
282
+ /** binding function for `Array.prototype.pop`. */
283
+ export declare const bind_array_pop: <S extends unknown[], SB extends S["pop"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["pop"]>>(thisArg: S) => (...args: SB) => SR;
284
+ /** binding function for `Array.prototype.push`. */
285
+ export declare const bind_array_push: <S extends unknown[], SB extends S["push"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["push"]>>(thisArg: S) => (...args: SB) => SR;
286
+ /** binding function for `Array.prototype.reduce`. */
287
+ export declare const bind_array_reduce: <S extends unknown[], SB extends S["reduce"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["reduce"]>>(thisArg: S) => (...args: SB) => SR;
288
+ /** binding function for `Array.prototype.reduceRight`. */
289
+ export declare const bind_array_reduceRight: <S extends unknown[], SB extends S["reduceRight"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["reduceRight"]>>(thisArg: S) => (...args: SB) => SR;
290
+ /** binding function for `Array.prototype.reverse`. */
291
+ export declare const bind_array_reverse: <S extends unknown[], SB extends S["reverse"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["reverse"]>>(thisArg: S) => (...args: SB) => SR;
292
+ /** binding function for `Array.prototype.shift`. */
293
+ export declare const bind_array_shift: <S extends unknown[], SB extends S["shift"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["shift"]>>(thisArg: S) => (...args: SB) => SR;
294
+ /** binding function for `Array.prototype.slice`. */
295
+ export declare const bind_array_slice: <S extends unknown[], SB extends S["slice"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["slice"]>>(thisArg: S) => (...args: SB) => SR;
296
+ /** binding function for `Array.prototype.some`. */
297
+ export declare const bind_array_some: <S extends unknown[], SB extends S["some"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["some"]>>(thisArg: S) => (...args: SB) => SR;
298
+ /** binding function for `Array.prototype.sort`. */
299
+ export declare const bind_array_sort: <S extends unknown[], SB extends S["sort"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["sort"]>>(thisArg: S) => (...args: SB) => SR;
300
+ /** binding function for `Array.prototype.splice`. */
301
+ export declare const bind_array_splice: <S extends unknown[], SB extends S["splice"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["splice"]>>(thisArg: S) => (...args: SB) => SR;
302
+ /** binding function for `Array.prototype.unshift`. */
303
+ export declare const bind_array_unshift: <S extends unknown[], SB extends S["unshift"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["unshift"]>>(thisArg: S) => (...args: SB) => SR;
304
+ /** binding function for `Array.prototype.toLocaleString`. */
305
+ export declare const bind_array_toLocaleString: <S extends unknown[], SB extends S["toLocaleString"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["toLocaleString"]>>(thisArg: S) => (...args: SB) => SR;
306
+ /** binding function for `Array.prototype.toReversed`. */
307
+ export declare const bind_array_toReversed: <S extends unknown[], SB extends S["toReversed"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["toReversed"]>>(thisArg: S) => (...args: SB) => SR;
308
+ /** binding function for `Array.prototype.toSorted`. */
309
+ export declare const bind_array_toSorted: <S extends unknown[], SB extends S["toSorted"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["toSorted"]>>(thisArg: S) => (...args: SB) => SR;
310
+ /** binding function for `Array.prototype.toSpliced`. */
311
+ export declare const bind_array_toSpliced: <S extends unknown[], SB extends S["toSpliced"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["toSpliced"]>>(thisArg: S) => (...args: SB) => SR;
312
+ /** binding function for `Array.prototype.toString`. */
313
+ export declare const bind_array_toString: <S extends unknown[], SB extends S["toString"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["toString"]>>(thisArg: S) => (...args: SB) => SR;
314
+ /** binding function for `Array.prototype.values`. */
315
+ export declare const bind_array_values: <S extends unknown[], SB extends S["values"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["values"]>>(thisArg: S) => (...args: SB) => SR;
316
+ /** binding function for `Array.prototype.with`. */
317
+ export declare const bind_array_with: <S extends unknown[], SB extends S["with"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["with"]>>(thisArg: S) => (...args: SB) => SR;
318
+ /** binding function for `Array.prototype.splice(0)`. */
319
+ export declare const bind_array_clear: <T>(array: T[]) => ((deleteCount?: number, ...items: T[]) => T[]);
320
+ /** binding function for `Array.prototype.at(-1)`. */
321
+ export declare const bind_stack_seek: <S extends unknown[], SB extends S["at"] extends BindableFunction<S, [number], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["at"]>>(thisArg: S) => (...args: SB) => SR;
322
+ /** binding function for `Set.prototype.add`. */
323
+ export declare const bind_set_add: <S extends Set<unknown>, SB extends S["add"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["add"]>>(thisArg: S) => (...args: SB) => SR;
324
+ /** binding function for `Set.prototype.clear`. */
325
+ export declare const bind_set_clear: <S extends Set<unknown>, SB extends S["clear"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["clear"]>>(thisArg: S) => (...args: SB) => SR;
326
+ /** binding function for `Set.prototype.delete`. */
327
+ export declare const bind_set_delete: <S extends Set<unknown>, SB extends S["delete"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["delete"]>>(thisArg: S) => (...args: SB) => SR;
328
+ /** binding function for `Set.prototype.entries`. */
329
+ export declare const bind_set_entries: <S extends Set<unknown>, SB extends S["entries"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["entries"]>>(thisArg: S) => (...args: SB) => SR;
330
+ /** binding function for `Set.prototype.forEach`. */
331
+ export declare const bind_set_forEach: <S extends Set<unknown>, SB extends S["forEach"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["forEach"]>>(thisArg: S) => (...args: SB) => SR;
332
+ /** binding function for `Set.prototype.has`. */
333
+ export declare const bind_set_has: <S extends Set<unknown>, SB extends S["has"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["has"]>>(thisArg: S) => (...args: SB) => SR;
334
+ /** binding function for `Set.prototype.keys`. */
335
+ export declare const bind_set_keys: <S extends Set<unknown>, SB extends S["keys"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["keys"]>>(thisArg: S) => (...args: SB) => SR;
336
+ /** binding function for `Set.prototype.values`. */
337
+ export declare const bind_set_values: <S extends Set<unknown>, SB extends S["values"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["values"]>>(thisArg: S) => (...args: SB) => SR;
338
+ /** binding function for `Map.prototype.clear`. */
339
+ export declare const bind_map_clear: <S extends Map<unknown, unknown>, SB extends S["clear"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["clear"]>>(thisArg: S) => (...args: SB) => SR;
340
+ /** binding function for `Map.prototype.delete`. */
341
+ export declare const bind_map_delete: <S extends Map<unknown, unknown>, SB extends S["delete"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["delete"]>>(thisArg: S) => (...args: SB) => SR;
342
+ /** binding function for `Map.prototype.entries`. */
343
+ export declare const bind_map_entries: <S extends Map<unknown, unknown>, SB extends S["entries"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["entries"]>>(thisArg: S) => (...args: SB) => SR;
344
+ /** binding function for `Map.prototype.forEach`. */
345
+ export declare const bind_map_forEach: <S extends Map<unknown, unknown>, SB extends S["forEach"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["forEach"]>>(thisArg: S) => (...args: SB) => SR;
346
+ /** binding function for `Map.prototype.get`. */
347
+ export declare const bind_map_get: <S extends Map<unknown, unknown>, SB extends S["get"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["get"]>>(thisArg: S) => (...args: SB) => SR;
348
+ /** binding function for `Map.prototype.has`. */
349
+ export declare const bind_map_has: <S extends Map<unknown, unknown>, SB extends S["has"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["has"]>>(thisArg: S) => (...args: SB) => SR;
350
+ /** binding function for `Map.prototype.keys`. */
351
+ export declare const bind_map_keys: <S extends Map<unknown, unknown>, SB extends S["keys"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["keys"]>>(thisArg: S) => (...args: SB) => SR;
352
+ /** binding function for `Map.prototype.set`. */
353
+ export declare const bind_map_set: <S extends Map<unknown, unknown>, SB extends S["set"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["set"]>>(thisArg: S) => (...args: SB) => SR;
354
+ /** binding function for `Map.prototype.values`. */
355
+ export declare const bind_map_values: <S extends Map<unknown, unknown>, SB extends S["values"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["values"]>>(thisArg: S) => (...args: SB) => SR;
356
+ /** binding function for `String.prototype.at`. */
357
+ export declare const bind_string_at: <S extends String, SB extends S["at"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["at"]>>(thisArg: S) => (...args: SB) => SR;
358
+ /** binding function for `String.prototype.charAt`. */
359
+ export declare const bind_string_charAt: <S extends String, SB extends S["charAt"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["charAt"]>>(thisArg: S) => (...args: SB) => SR;
360
+ /** binding function for `String.prototype.charCodeAt`. */
361
+ export declare const bind_string_charCodeAt: <S extends String, SB extends S["charCodeAt"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["charCodeAt"]>>(thisArg: S) => (...args: SB) => SR;
362
+ /** binding function for `String.prototype.codePointAt`. */
363
+ export declare const bind_string_codePointAt: <S extends String, SB extends S["codePointAt"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["codePointAt"]>>(thisArg: S) => (...args: SB) => SR;
364
+ /** binding function for `String.prototype.startsWith`. */
365
+ export declare const bind_string_startsWith: <S extends String, SB extends S["startsWith"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["startsWith"]>>(thisArg: S) => (...args: SB) => SR;
366
+ /** binding function for `String.prototype.endsWith`. */
367
+ export declare const bind_string_endsWith: <S extends String, SB extends S["endsWith"] extends BindableFunction<S, [], infer P extends any[], SR> ? P : never, SR extends ReturnType<S["endsWith"]>>(thisArg: S) => (...args: SB) => SR;
368
+ //# sourceMappingURL=binder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binder.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@oazmi/kitchensink/0.10.0/src/binder.ts"],"names":[],"mappings":"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"}