Add settings page for managing forecasting API key and URL via UI

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
jtricerolph 2026-07-20 14:37:36 +00:00
parent cae411eae7
commit 1c411e402e
19809 changed files with 1962608 additions and 97 deletions

View file

@ -0,0 +1,37 @@
import { iteratee } from "./iteratee.mjs";
//#region src/compat/util/over.ts
/**
* Creates a function that invokes given functions and returns their results as an array.
*
* @param iteratees - The iteratees to invoke.
* @returns Returns the new function.
*
* @example
* const func = over([Math.max, Math.min]);
* const func2 = over(Math.max, Math.min); // same as above
* func(1, 2, 3, 4);
* // => [4, 1]
* func2(1, 2, 3, 4);
* // => [4, 1]
*
* const func = over(['a', 'b']);
* func({ a: 1, b: 2 });
* // => [1, 2]
*
* const func = over([{ a: 1 }, { b: 2 }]);
* func({ a: 1, b: 2 });
* // => [true, true]
*
* const func = over([['a', 1], ['b', 2]]);
* func({ a: 1, b: 2 });
* // => [true, true]
*/
function over(...iteratees) {
if (iteratees.length === 1 && Array.isArray(iteratees[0])) iteratees = iteratees[0];
const funcs = iteratees.map((item) => iteratee(item));
return function(...args) {
return funcs.map((func) => func.apply(this, args));
};
}
//#endregion
export { over };