-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.html
137 lines (130 loc) · 129 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!DOCTYPE html><html lang="en" dir="ltr" data-has-sidebar="true" data-theme="dark" class="astro-rwlsmwlq"> <head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Introducing Radashi | Radashi</title><link rel="canonical" href="https://radashi.js.org/"/><link rel="sitemap" href="/sitemap-index.xml"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Figtree:ital,wght@0,300..900;1,300..900&display=swap"/><link rel="shortcut icon" href="/favicon.svg" type="image/svg+xml"/><meta name="generator" content="Astro v4.11.5"/><meta name="generator" content="Starlight v0.24.5"/><meta property="og:title" content="Introducing Radashi"/><meta property="og:type" content="article"/><meta property="og:url" content="https://radashi.js.org/"/><meta property="og:locale" content="en"/><meta property="og:description" content="A new frontier in TypeScript utility libraries."/><meta property="og:site_name" content="Radashi"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Introducing Radashi"/><meta name="twitter:description" content="A new frontier in TypeScript utility libraries."/><meta name="description" content="A new frontier in TypeScript utility libraries."/><script>
window.StarlightThemeProvider = (() => {
const storedTheme =
typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
const theme =
storedTheme ||
(window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark');
document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark';
return {
updatePickers(theme = storedTheme || 'auto') {
document.querySelectorAll('starlight-theme-select').forEach((picker) => {
const select = picker.querySelector('select');
if (select) select.value = theme;
/** @type {HTMLTemplateElement | null} */
const tmpl = document.querySelector(`#theme-icons`);
const newIcon = tmpl && tmpl.content.querySelector('.' + theme);
if (newIcon) {
const oldIcon = picker.querySelector('svg.label-icon');
if (oldIcon) {
oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes);
}
}
});
},
};
})();
</script><template id="theme-icons"><svg aria-hidden="true" class="light astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg> <svg aria-hidden="true" class="dark astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg> <svg aria-hidden="true" class="auto astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> </template><script type="application/json" data-tooltips-options>{"interactive":false,"class":"astro-rwlsmwlq"}</script><link rel="stylesheet" href="/assets/browser-support.Bcx1rOFJ.css">
<link rel="stylesheet" href="/assets/browser-support.DPQomxZu.css"><script type="module" src="/assets/hoisted.Ew0AjFch.js"></script>
<script type="module" src="/assets/page.LpqHvsRr.js"></script></head> <body class="astro-rwlsmwlq"> <a href="#_top" class="astro-z2miczde">Skip to content</a> <div class="swup page-frame sl-flex astro-wu4nwam6"> <header class="header astro-wu4nwam6" data-swup-persist="starlight__header"> <div class="header sl-flex astro-wagtsxap"> <div class="title-wrapper sl-flex astro-wagtsxap"> <a href="/" class="site-title sl-flex astro-z73cwxac"> <img class="light:sl-hidden astro-z73cwxac" alt="" src="/assets/[email protected]" width="4578" height="1143"> <img class="dark:sl-hidden astro-z73cwxac" alt="" src="/assets/[email protected]" width="4578" height="1143"> <span class="sr-only astro-z73cwxac"> Radashi </span> </a> </div> <div class="search-root sl-flex astro-wagtsxap"> <site-search data-translations="{"placeholder":"Search"}" class="astro-n63ahxst"> <button role="search" data-open-modal disabled class="astro-n63ahxst"> <div class="search-icon astro-n63ahxst"></div> </button> <dialog style="padding:0" aria-label="Search" class="astro-n63ahxst"> <div class="dialog-frame sl-flex astro-n63ahxst"> <button data-close-modal class="sl-flex md:sl-hidden astro-n63ahxst"> Cancel </button> <div class="search-container astro-n63ahxst"> <div id="starlight__search" class="astro-n63ahxst"></div> </div> </div> </dialog> </site-search> </div> <div class="sl-hidden md:sl-flex right-group astro-wagtsxap"> <!-- <div class="sl-flex social-icons">
<SocialIcons {...Astro.props} />
</div> --> <!-- <ThemeSelect {...Astro.props} /> --> </div> </div> </header> <nav class="sidebar astro-wu4nwam6" aria-label="Main"> <starlight-menu-button class="astro-dwzdllxx"> <button aria-expanded="false" aria-label="Menu" aria-controls="starlight__sidebar" class="sl-flex md:sl-hidden astro-dwzdllxx"> <svg aria-hidden="true" class="astro-dwzdllxx astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg> </button> </starlight-menu-button> <div id="starlight__sidebar" class="sidebar-pane astro-wu4nwam6" data-swup-persist="starlight__sidebar"> <div class="sidebar-content sl-flex astro-wu4nwam6"> <ul class="top-level astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Getting Started</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/" aria-current="page" class="h3 astro-bgd6mkzw" class="h3"> <span class="astro-bgd6mkzw">Introduction</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/installation" class="h3 astro-bgd6mkzw" class="h3"> <span class="astro-bgd6mkzw">Installation</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/contributing" class="h3 astro-bgd6mkzw" class="h3"> <span class="astro-bgd6mkzw">Contributing</span> </a> </li> </ul> </details> </li><hr style="border:0.6px solid rgba(240, 240, 240, 0.1)" class="astro-bgd6mkzw"><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Quick Links</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/our-ethos" class="h3 astro-bgd6mkzw" class="h3"> <span class="astro-bgd6mkzw">Our Ethos</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/browser-support" class="h3 astro-bgd6mkzw" class="h3"> <span class="astro-bgd6mkzw">Browser Support</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/changelog" class="h3 astro-bgd6mkzw" class="h3"> <span class="astro-bgd6mkzw">Changelog</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/playground" class="h3 astro-bgd6mkzw" data-no-swup="" class="h3"> <span class="astro-bgd6mkzw">Playground</span> </a> </li> </ul> </details> </li><hr style="border:0.6px solid rgba(240, 240, 240, 0.1)" class="astro-bgd6mkzw"><li class="astro-bgd6mkzw"> <a href="https://marketplace.visualstudio.com/items?itemName=aleclarson.radashi" class="large h3 top-level-link astro-bgd6mkzw" class="h3 top-level-link" target="_blank"> <img fill="currentColor" src="/sidebar/vscode.svg" class="sidebar-icon astro-bgd6mkzw"> <span class="astro-bgd6mkzw">VS Code</span> </a> </li><li class="astro-bgd6mkzw"> <a href="https://github.com/orgs/radashi-org/discussions" class="large h3 top-level-link astro-bgd6mkzw" class="h3 top-level-link" target="_blank"> <img fill="currentColor" src="/sidebar/community.svg" class="sidebar-icon astro-bgd6mkzw"> <span class="astro-bgd6mkzw">Community</span> </a> </li><li class="astro-bgd6mkzw"> <a href="https://github.com/radashi-org/radashi" class="large h3 top-level-link astro-bgd6mkzw" class="h3 top-level-link" target="_blank"> <img fill="currentColor" src="/sidebar/github.svg" class="sidebar-icon astro-bgd6mkzw"> <span class="astro-bgd6mkzw">Github</span> </a> </li><li class="astro-bgd6mkzw"> <a href="https://www.npmjs.com/package/radashi" class="large h3 top-level-link astro-bgd6mkzw" class="h3 top-level-link" target="_blank"> <img fill="currentColor" src="/sidebar/npm.svg" class="sidebar-icon astro-bgd6mkzw"> <span class="astro-bgd6mkzw">NPM</span> </a> </li><li class="astro-bgd6mkzw"> <a href="https://jsr.io/@radashi-org/radashi" class="large h3 top-level-link astro-bgd6mkzw" class="h3 top-level-link" target="_blank"> <img fill="currentColor" src="/sidebar/jsr.svg" class="sidebar-icon astro-bgd6mkzw"> <span class="astro-bgd6mkzw">JSR.io</span> </a> </li><hr style="border:0.6px solid rgba(240, 240, 240, 0.1)" class="astro-bgd6mkzw"><li class="astro-bgd6mkzw"> <a href="/reference/" class="large h3 top-level-link astro-bgd6mkzw" class="h3 top-level-link"> <img fill="currentColor" src="/sidebar/functions.svg" class="sidebar-icon astro-bgd6mkzw"> <span class="astro-bgd6mkzw">All Functions</span> </a> </li><li class="astro-bgd6mkzw"> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Array</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/array/alphabetical" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">alphabetical</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/boil" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">boil</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/cartesianProduct" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">cartesianProduct</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/castArray" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">castArray</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/castArrayIfExists" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">castArrayIfExists</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/cluster" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">cluster</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/counting" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">counting</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/diff" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">diff</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/first" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">first</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/flat" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">flat</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/fork" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">fork</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/group" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">group</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/intersects" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">intersects</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/iterate" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">iterate</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/last" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">last</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/list" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">list</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/mapify" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">mapify</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/merge" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">merge</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/objectify" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">objectify</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/replace" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">replace</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/replaceOrAppend" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">replaceOrAppend</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/select" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">select</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/selectFirst" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">selectFirst</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/shift" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">shift</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/sift" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">sift</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/sort" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">sort</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/toggle" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">toggle</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/unique" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">unique</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/unzip" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">unzip</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/zip" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">zip</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/array/zipToObject" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">zipToObject</span> </a> </li> </ul> </details> </li><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Async</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/async/all" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">all</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/defer" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">defer</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/guard" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">guard</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/map" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">map</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/parallel" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">parallel</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/reduce" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">reduce</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/retry" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">retry</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/sleep" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">sleep</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/timeout" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">timeout</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/tryit" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">tryit</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/async/withResolvers" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">withResolvers</span> </a> </li> </ul> </details> </li><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Curry</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/curry/chain" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">chain</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/curry/compose" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">compose</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/curry/debounce" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">debounce</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/curry/flip" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">flip</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/curry/memo" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">memo</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/curry/once" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">once</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/curry/partial" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">partial</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/curry/partob" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">partob</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/curry/proxied" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">proxied</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/curry/throttle" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">throttle</span> </a> </li> </ul> </details> </li><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Function</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/function/always" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">always</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/function/castComparator" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">castComparator</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/function/castMapping" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">castMapping</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/function/noop" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">noop</span> </a> </li> </ul> </details> </li><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Number</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/number/clamp" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">clamp</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/number/inRange" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">inRange</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/number/lerp" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">lerp</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/number/max" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">max</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/number/min" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">min</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/number/range" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">range</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/number/round" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">round</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/number/sum" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">sum</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/number/toFloat" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">toFloat</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/number/toInt" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">toInt</span> </a> </li> </ul> </details> </li><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Object</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/object/assign" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">assign</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/clone" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">clone</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/cloneDeep" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">cloneDeep</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/construct" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">construct</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/crush" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">crush</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/filterKey" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">filterKey</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/get" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">get</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/invert" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">invert</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/keys" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">keys</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/listify" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">listify</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/lowerize" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">lowerize</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/mapEntries" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">mapEntries</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/mapKeys" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">mapKeys</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/mapValues" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">mapValues</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/omit" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">omit</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/pick" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">pick</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/set" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">set</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/shake" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">shake</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/traverse" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">traverse</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/object/upperize" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">upperize</span> </a> </li> </ul> </details> </li><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Random</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/random/draw" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">draw</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/random/random" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">random</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/random/shuffle" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">shuffle</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/random/uid" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">uid</span> </a> </li> </ul> </details> </li><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Series</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/series/series" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">series</span> </a> </li> </ul> </details> </li><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">String</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/string/camel" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">camel</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/string/capitalize" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">capitalize</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/string/dash" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">dash</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/string/dedent" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">dedent</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/string/pascal" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">pascal</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/string/similarity" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">similarity</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/string/snake" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">snake</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/string/template" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">template</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/string/title" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">title</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/string/trim" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">trim</span> </a> </li> </ul> </details> </li><li class="astro-bgd6mkzw"> <details open class="astro-bgd6mkzw"> <summary class="astro-bgd6mkzw"> <div class="group-label astro-bgd6mkzw"> <span class="large astro-bgd6mkzw">Typed</span> </div> <svg aria-hidden="true" class="caret astro-bgd6mkzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <ul class="astro-bgd6mkzw"> <li class="astro-bgd6mkzw"> <a href="/reference/typed/isArray" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isArray</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isBoolean" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isBoolean</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isClass" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isClass</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isDate" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isDate</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isEmpty" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isEmpty</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isEqual" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isEqual</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isError" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isError</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isFloat" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isFloat</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isFunction" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isFunction</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isInt" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isInt</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isIntString" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isIntString</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isMap" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isMap</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isNullish" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isNullish</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isNumber" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isNumber</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isObject" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isObject</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isPlainObject" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isPlainObject</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isPrimitive" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isPrimitive</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isPromise" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isPromise</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isRegExp" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isRegExp</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isResult" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isResult</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isResultErr" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isResultErr</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isResultOk" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isResultOk</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isSet" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isSet</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isString" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isString</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isSymbol" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isSymbol</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isUndefined" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isUndefined</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isWeakMap" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isWeakMap</span> </a> </li><li class="astro-bgd6mkzw"> <a href="/reference/typed/isWeakSet" class="astro-bgd6mkzw"> <span class="astro-bgd6mkzw">isWeakSet</span> </a> </li> </ul> </details> </li> </ul> </li> </ul> <div class="md:sl-hidden"> <div class="mobile-preferences sl-flex astro-ym3r2ldi"> <div class="sl-flex social-icons astro-ym3r2ldi"> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-xsfkp6md"> <span class="sr-only astro-xsfkp6md">Select theme</span> <svg aria-hidden="true" class="icon label-icon astro-xsfkp6md astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select value="auto" class="astro-xsfkp6md"> <option value="dark" class="astro-xsfkp6md">Dark</option><option value="light" class="astro-xsfkp6md">Light</option><option value="auto" selected="true" class="astro-xsfkp6md">Auto</option> </select> <svg aria-hidden="true" class="icon caret astro-xsfkp6md astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script>
StarlightThemeProvider.updatePickers();
</script> </div> </div> </div> </div> </nav> <script>
(function () {
const sidebarPane = document.querySelector('.sidebar-pane');
if (sidebarPane) {
const scrollPosition = sidebarPane.getAttribute('data-scroll-top');
if (scrollPosition) {
sidebarPane.scrollTop = +scrollPosition;
}
sidebarPane.addEventListener(
'scroll',
() => {
sidebarPane.setAttribute('data-scroll-top', '' + sidebarPane.scrollTop);
},
{ passive: true }
);
}
})();
</script> <div class="main-frame transition-fade astro-wu4nwam6"> <div class="lg:sl-flex astro-qzsemow5"> <div class="main-pane astro-qzsemow5"> <main data-pagefind-body lang="en" dir="ltr" class="astro-rwlsmwlq"> <div class="page transition-fade astro-rwlsmwlq" data-has-sidebar="true"> <script>
// This script updates the <html> element's data-* attributes
// and sets the display style of the sidebar. It will rerun on
// each page navigation.
(function () {
const parentElement = document.currentScript?.parentElement;
const { hasSidebar, hasToc, hasHero } = parentElement?.dataset || {};
/**
* @param {HTMLElement} element
* @param {string} key
* @param {any} value
*/
function setData(element, key, value) {
if (value == null) {
delete element.dataset[key];
} else {
element.dataset[key] = value;
}
}
const htmlElement = document.documentElement;
setData(htmlElement, 'hasSidebar', hasSidebar);
setData(htmlElement, 'hasToc', hasToc);
setData(htmlElement, 'hasHero', hasHero);
const sidebar = document.getElementById('starlight__sidebar');
if (sidebar) {
sidebar.style.display = hasSidebar ? 'block' : 'none';
}
})();
</script> <div class="content-panel astro-dmxftcma"> <div class="sl-container astro-dmxftcma"> <h1 id="_top" class="astro-3dzsydmp">Introducing Radashi</h1> <p class="astro-3dzsydmp">A new frontier in TypeScript utility libraries.</p> </div> </div> <div class="content-panel astro-dmxftcma"> <div class="sl-container astro-dmxftcma"> <div class="sl-markdown-content"> <p>Welcome to Radashi! We’re here to make your development life easier with a collection of super handy functions designed for modern JavaScript and TypeScript developers. Think of Radashi as a friendly toolbelt that’s all about simplicity, customization, and community.</p>
<aside aria-label="Are you coming from Radash, our predecessor?" class="starlight-aside starlight-aside--note"><p class="starlight-aside__title" aria-hidden="true"><svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" class="starlight-aside__icon"><path d="M12 11C11.7348 11 11.4804 11.1054 11.2929 11.2929C11.1054 11.4804 11 11.7348 11 12V16C11 16.2652 11.1054 16.5196 11.2929 16.7071C11.4804 16.8946 11.7348 17 12 17C12.2652 17 12.5196 16.8946 12.7071 16.7071C12.8946 16.5196 13 16.2652 13 16V12C13 11.7348 12.8946 11.4804 12.7071 11.2929C12.5196 11.1054 12.2652 11 12 11ZM12.38 7.08C12.1365 6.97998 11.8635 6.97998 11.62 7.08C11.4973 7.12759 11.3851 7.19896 11.29 7.29C11.2017 7.3872 11.1306 7.49882 11.08 7.62C11.024 7.73868 10.9966 7.86882 11 8C10.9992 8.13161 11.0245 8.26207 11.0742 8.38391C11.124 8.50574 11.1973 8.61656 11.29 8.71C11.3872 8.79833 11.4988 8.86936 11.62 8.92C11.7715 8.98224 11.936 9.00632 12.099 8.99011C12.2619 8.97391 12.4184 8.91792 12.5547 8.82707C12.691 8.73622 12.8029 8.61328 12.8805 8.46907C12.9582 8.32486 12.9992 8.16378 13 8C12.9963 7.73523 12.8927 7.48163 12.71 7.29C12.6149 7.19896 12.5028 7.12759 12.38 7.08ZM12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51809 6.3459 2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7363 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2ZM12 20C10.4178 20 8.87104 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60897 15.0615C4.00347 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21447 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12C20 14.1217 19.1572 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z"></path></svg>Are you coming from Radash, our predecessor?</p><section class="starlight-aside__content"><p>You’ll want to check out <a href="/blog/vs-radash">our comparison post</a> to see what makes Radashi better.</p></section></aside>
<h2 id="key-features">Key Features</h2>
<h4 id="-built-for-typescript">✨ Built for TypeScript</h4>
<p>Radashi is made with TypeScript at its core. This means our functions not only help you write better code but also catch errors early, making your development smoother and more reliable.</p>
<style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();;(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t)},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="vl2hY" component-url="/assets/tabbed-code-block.CqZYnBmR.js" component-export="TabbedCodeBlock" renderer-url="/assets/client.CFbmdnQb.js" props="{"names":[1,[[0,"castArray"],[0,"chain"]]]}" ssr="" client="load" opts="{"name":"TabbedCodeBlock","value":true}" await-children=""><div><div class="not-content flex flex-row items-center mt-3"><div role="button" class="relative cursor-pointer px-4 py-0.5 rounded-full"><span class="block text-pink100 font-600 text-0.9rem">castArray</span><div class="absolute left-0 bottom--1 w-full px-3"><div class="h-2.6px w-full rounded-full transition-650 bg-#8a6e6f opacity-50"></div></div></div><div role="button" class="relative cursor-pointer px-4 py-0.5 rounded-full"><span class="block text-pink100 font-600 text-0.9rem">chain</span><div class="absolute left-0 bottom--1 w-full px-3"><div class="h-2.6px w-full rounded-full transition-650 bg-#8a6e6f opacity-50"></div></div></div></div><div style="display:none;"><astro-slot><p>Below is our <code dir="auto">castArray</code> implementation. If you can read our <code dir="auto">CastArray<T></code> type, you’re officially a TypeScript nerd. But good news, we wrote it so you don’t have to!</p><div class="expressive-code"><link rel="stylesheet" href="/assets/ec.wnxus.css"><script type="module" src="/assets/ec.3zb7u.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="ts"><code><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">castArray</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7">>(</span><span style="--0:#F69D50">value</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">CastArray</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7">></span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">castArray</span><span style="--0:#ADBAC7">(</span><span style="--0:#F69D50">value</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">unknown</span><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">unknown</span><span style="--0:#ADBAC7"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">return</span><span style="--0:#ADBAC7"> Array.</span><span style="--0:#DCBDFB">isArray</span><span style="--0:#ADBAC7">(value) </span><span style="--0:#F5776E">?</span><span style="--0:#ADBAC7"> value.</span><span style="--0:#DCBDFB">slice</span><span style="--0:#ADBAC7">() </span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> [value]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">}</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">type</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">CastArray</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7">> </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> [</span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7">] </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> [</span><span style="--0:#6CB6FF">never</span><span style="--0:#ADBAC7">]</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">?</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">never</span><span style="--0:#ADBAC7">[]</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> [</span><span style="--0:#6CB6FF">unknown</span><span style="--0:#ADBAC7">] </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> [</span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7">]</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">?</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">unknown</span><span style="--0:#ADBAC7">[]</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">:</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">|</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">?</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">readonly</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">infer</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">U</span><span style="--0:#ADBAC7">)[]</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">?</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">U</span><span style="--0:#ADBAC7">[]</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">never</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">never</span><span style="--0:#ADBAC7">)</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">|</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">Exclude</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7">, </span><span style="--0:#F5776E">readonly</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[]> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">never</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">?</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">never</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">Exclude</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T</span><span style="--0:#ADBAC7">, </span><span style="--0:#F5776E">readonly</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[]>[])</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="export function castArray<T>(value: T): CastArray<T>export function castArray(value: unknown): unknown { return Array.isArray(value) ? value.slice() : [value]}export type CastArray<T> = [T] extends [never] ? never[] : [unknown] extends [T] ? unknown[] : | (T extends any ? T extends readonly (infer U)[] ? U[] : never : never) | (Exclude<T, readonly any[]> extends never ? never : Exclude<T, readonly any[]>[])"><div></div></button></div></figure></div><p>Our <code dir="auto">chain</code> function also has a gnarly type definition. As you can see, there’s a lot we can do to make your life with TypeScript easier.</p><div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="ts"><code><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[], </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">>(</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f1</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f2</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[], </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">>(</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f1</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f2</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f3</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T4</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T4</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[], </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">>(</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f1</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f2</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f3</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f4</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T5</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T5</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[], </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">>(</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f1</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f2</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f3</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f4</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f5</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T6</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T6</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[], </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T7</span><span style="--0:#ADBAC7">>(</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f1</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f2</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f3</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f4</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f5</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f6</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T7</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T7</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[], </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T7</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T8</span><span style="--0:#ADBAC7">>(</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f1</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f2</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f3</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f4</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f5</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f6</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T7</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f7</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T8</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T8</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[], </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T7</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T8</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T9</span><span style="--0:#ADBAC7">>(</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f1</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f2</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f3</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f4</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f5</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f6</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T7</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f7</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T8</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f8</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T9</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T9</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7"><</span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[], </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T7</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T8</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T9</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">T10</span><span style="--0:#ADBAC7">>(</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f1</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f2</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f3</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f4</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f5</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f6</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T7</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f7</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T8</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f8</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T9</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f9</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T10</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T10</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7"><</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">extends</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[],</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T7</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T8</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T9</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T10</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">T11</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">>(</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f1</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f2</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T2</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f3</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T4</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f4</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T5</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f5</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T6</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f6</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T7</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f7</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T8</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f8</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T9</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f9</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T10</span><span style="--0:#ADBAC7">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">f10</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T3</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T11</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">arg</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T1</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">T11</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">chain</span><span style="--0:#ADBAC7">(</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">funcs</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> ((</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">args</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[]) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">)[]) {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">return</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F5776E">...</span><span style="--0:#F69D50">args</span><span style="--0:#F5776E">:</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">any</span><span style="--0:#ADBAC7">[]) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">return</span><span style="--0:#ADBAC7"> funcs.</span><span style="--0:#DCBDFB">slice</span><span style="--0:#ADBAC7">(</span><span style="--0:#6CB6FF">1</span><span style="--0:#ADBAC7">).</span><span style="--0:#DCBDFB">reduce</span><span style="--0:#ADBAC7">((</span><span style="--0:#F69D50">acc</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">fn</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">fn</span><span style="--0:#ADBAC7">(acc), funcs[</span><span style="--0:#6CB6FF">0</span><span style="--0:#ADBAC7">](</span><span style="--0:#F5776E">...</span><span style="--0:#ADBAC7">args))</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">}</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">}</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="export function chain<T1 extends any[], T2, T3>( f1: (...arg: T1) => T2, f2: (arg: T2) => T3): (...arg: T1) => T3export function chain<T1 extends any[], T2, T3, T4>( f1: (...arg: T1) => T2, f2: (arg: T2) => T3, f3: (arg: T3) => T4): (...arg: T1) => T4export function chain<T1 extends any[], T2, T3, T4, T5>( f1: (...arg: T1) => T2, f2: (arg: T2) => T3, f3: (arg: T3) => T4, f4: (arg: T3) => T5): (...arg: T1) => T5export function chain<T1 extends any[], T2, T3, T4, T5, T6>( f1: (...arg: T1) => T2, f2: (arg: T2) => T3, f3: (arg: T3) => T4, f4: (arg: T3) => T5, f5: (arg: T3) => T6): (...arg: T1) => T6export function chain<T1 extends any[], T2, T3, T4, T5, T6, T7>( f1: (...arg: T1) => T2, f2: (arg: T2) => T3, f3: (arg: T3) => T4, f4: (arg: T3) => T5, f5: (arg: T3) => T6, f6: (arg: T3) => T7): (...arg: T1) => T7export function chain<T1 extends any[], T2, T3, T4, T5, T6, T7, T8>( f1: (...arg: T1) => T2, f2: (arg: T2) => T3, f3: (arg: T3) => T4, f4: (arg: T3) => T5, f5: (arg: T3) => T6, f6: (arg: T3) => T7, f7: (arg: T3) => T8): (...arg: T1) => T8export function chain<T1 extends any[], T2, T3, T4, T5, T6, T7, T8, T9>( f1: (...arg: T1) => T2, f2: (arg: T2) => T3, f3: (arg: T3) => T4, f4: (arg: T3) => T5, f5: (arg: T3) => T6, f6: (arg: T3) => T7, f7: (arg: T3) => T8, f8: (arg: T3) => T9): (...arg: T1) => T9export function chain<T1 extends any[], T2, T3, T4, T5, T6, T7, T8, T9, T10>( f1: (...arg: T1) => T2, f2: (arg: T2) => T3, f3: (arg: T3) => T4, f4: (arg: T3) => T5, f5: (arg: T3) => T6, f6: (arg: T3) => T7, f7: (arg: T3) => T8, f8: (arg: T3) => T9, f9: (arg: T3) => T10): (...arg: T1) => T10export function chain< T1 extends any[], T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,>( f1: (...arg: T1) => T2, f2: (arg: T2) => T3, f3: (arg: T3) => T4, f4: (arg: T3) => T5, f5: (arg: T3) => T6, f6: (arg: T3) => T7, f7: (arg: T3) => T8, f8: (arg: T3) => T9, f9: (arg: T3) => T10, f10: (arg: T3) => T11): (...arg: T1) => T11export function chain(...funcs: ((...args: any[]) => any)[]) { return (...args: any[]) => { return funcs.slice(1).reduce((acc, fn) => fn(acc), funcs[0](...args)) }}"><div></div></button></div></figure></div></astro-slot></div></div><!--astro:end--></astro-island>
<h4 id="-smart-function-choices">🎯 Smart Function Choices</h4>
<p>We pick our functions based on real needs and popular use cases. Our goal is to give you just what you need without the extra fluff, keeping everything straightforward and understandable.</p>
<astro-island uid="Z1mJ595" component-url="/assets/tabbed-code-block.CqZYnBmR.js" component-export="TabbedCodeBlock" renderer-url="/assets/client.CFbmdnQb.js" props="{"names":[1,[[0,"select"],[0,"objectify"],[0,"defer"]]]}" ssr="" client="load" opts="{"name":"TabbedCodeBlock","value":true}" await-children=""><div><div class="not-content flex flex-row items-center mt-3"><div role="button" class="relative cursor-pointer px-4 py-0.5 rounded-full"><span class="block text-pink100 font-600 text-0.9rem">select</span><div class="absolute left-0 bottom--1 w-full px-3"><div class="h-2.6px w-full rounded-full transition-650 bg-#8a6e6f opacity-50"></div></div></div><div role="button" class="relative cursor-pointer px-4 py-0.5 rounded-full"><span class="block text-pink100 font-600 text-0.9rem">objectify</span><div class="absolute left-0 bottom--1 w-full px-3"><div class="h-2.6px w-full rounded-full transition-650 bg-#8a6e6f opacity-50"></div></div></div><div role="button" class="relative cursor-pointer px-4 py-0.5 rounded-full"><span class="block text-pink100 font-600 text-0.9rem">defer</span><div class="absolute left-0 bottom--1 w-full px-3"><div class="h-2.6px w-full rounded-full transition-650 bg-#8a6e6f opacity-50"></div></div></div></div><div style="display:none;"><astro-slot><p>Use <code dir="auto">select</code> to create an array by filtering and mapping another array’s items.</p><div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="ts"><code><div class="ec-line"><div class="code"><span style="--0:#F5776E">import</span><span style="--0:#ADBAC7"> { select } </span><span style="--0:#F5776E">from</span><span style="--0:#ADBAC7"> </span><span style="--0:#96D0FF">'radashi'</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// Example: Filtering and transforming a list of products</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">const</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">products</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> [</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">{ id: </span><span style="--0:#6CB6FF">1</span><span style="--0:#ADBAC7">, name: </span><span style="--0:#96D0FF">'Laptop'</span><span style="--0:#ADBAC7">, price: </span><span style="--0:#6CB6FF">1000</span><span style="--0:#ADBAC7">, inStock: </span><span style="--0:#6CB6FF">true</span><span style="--0:#ADBAC7"> },</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">{ id: </span><span style="--0:#6CB6FF">2</span><span style="--0:#ADBAC7">, name: </span><span style="--0:#96D0FF">'Phone'</span><span style="--0:#ADBAC7">, price: </span><span style="--0:#6CB6FF">800</span><span style="--0:#ADBAC7">, inStock: </span><span style="--0:#6CB6FF">false</span><span style="--0:#ADBAC7"> },</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">{ id: </span><span style="--0:#6CB6FF">3</span><span style="--0:#ADBAC7">, name: </span><span style="--0:#96D0FF">'Tablet'</span><span style="--0:#ADBAC7">, price: </span><span style="--0:#6CB6FF">500</span><span style="--0:#ADBAC7">, inStock: </span><span style="--0:#6CB6FF">true</span><span style="--0:#ADBAC7"> },</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">{ id: </span><span style="--0:#6CB6FF">4</span><span style="--0:#ADBAC7">, name: </span><span style="--0:#96D0FF">'Headphones'</span><span style="--0:#ADBAC7">, price: </span><span style="--0:#6CB6FF">100</span><span style="--0:#ADBAC7">, inStock: </span><span style="--0:#6CB6FF">true</span><span style="--0:#ADBAC7"> },</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">]</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// Map to a new object with the name and price.</span></div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// Filter out products that are not in stock or are too expensive.</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">const</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">affordableInStockProducts</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">select</span><span style="--0:#ADBAC7">(</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">products,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">product</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> ({ name: product.name, price: product.price }),</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">product</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> product.inStock </span><span style="--0:#F5776E">&&</span><span style="--0:#ADBAC7"> product.price </span><span style="--0:#F5776E"><</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">600</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// => [{ name: 'Tablet', price: 500 }, { name: 'Headphones', price: 100 }]</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="import { select } from 'radashi'// Example: Filtering and transforming a list of productsconst products = [ { id: 1, name: 'Laptop', price: 1000, inStock: true }, { id: 2, name: 'Phone', price: 800, inStock: false }, { id: 3, name: 'Tablet', price: 500, inStock: true }, { id: 4, name: 'Headphones', price: 100, inStock: true },]// Map to a new object with the name and price.// Filter out products that are not in stock or are too expensive.const affordableInStockProducts = select( products, product => ({ name: product.name, price: product.price }), product => product.inStock && product.price < 600)// => [{ name: 'Tablet', price: 500 }, { name: 'Headphones', price: 100 }]"><div></div></button></div></figure></div><p>Use <code dir="auto">objectify</code> to create an object from an array.</p><div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="ts"><code><div class="ec-line"><div class="code"><span style="--0:#F5776E">import</span><span style="--0:#ADBAC7"> { objectify } </span><span style="--0:#F5776E">from</span><span style="--0:#ADBAC7"> </span><span style="--0:#96D0FF">'radashi'</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// A list of employees with their IDs and salaries</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">const</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">employees</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> [</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">{ id: </span><span style="--0:#6CB6FF">101</span><span style="--0:#ADBAC7">, name: </span><span style="--0:#96D0FF">'Alice'</span><span style="--0:#ADBAC7">, salary: </span><span style="--0:#6CB6FF">75000</span><span style="--0:#ADBAC7"> },</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">{ id: </span><span style="--0:#6CB6FF">102</span><span style="--0:#ADBAC7">, name: </span><span style="--0:#96D0FF">'Bob'</span><span style="--0:#ADBAC7">, salary: </span><span style="--0:#6CB6FF">82000</span><span style="--0:#ADBAC7"> },</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">{ id: </span><span style="--0:#6CB6FF">103</span><span style="--0:#ADBAC7">, name: </span><span style="--0:#96D0FF">'Charlie'</span><span style="--0:#ADBAC7">, salary: </span><span style="--0:#6CB6FF">68000</span><span style="--0:#ADBAC7"> },</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">]</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// Create a dictionary of employee salaries by their ID</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">const</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">salariesById</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">objectify</span><span style="--0:#ADBAC7">(</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">employees,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">employee</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> employee.id,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F69D50">employee</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> employee.salary</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// => { 101: 75000, 102: 82000, 103: 68000 }</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// Quickly look up an employee's salary</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">console.</span><span style="--0:#DCBDFB">log</span><span style="--0:#ADBAC7">(</span><span style="--0:#96D0FF">`Bob's salary: $${</span><span style="--0:#ADBAC7">salariesById</span><span style="--0:#96D0FF">[</span><span style="--0:#6CB6FF">102</span><span style="--0:#96D0FF">]</span><span style="--0:#96D0FF">}`</span><span style="--0:#ADBAC7">)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// Logs "Bob's salary: $82000"</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="import { objectify } from 'radashi'// A list of employees with their IDs and salariesconst employees = [ { id: 101, name: 'Alice', salary: 75000 }, { id: 102, name: 'Bob', salary: 82000 }, { id: 103, name: 'Charlie', salary: 68000 },]// Create a dictionary of employee salaries by their IDconst salariesById = objectify( employees, employee => employee.id, employee => employee.salary)// => { 101: 75000, 102: 82000, 103: 68000 }// Quickly look up an employee's salaryconsole.log(`Bob's salary: $${salariesById[102]}`)// Logs "Bob's salary: $82000""><div></div></button></div></figure></div><p>Use <code dir="auto">defer</code> for co-location of cleanup logic with resource creation.</p><div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="ts"><code><div class="ec-line"><div class="code"><span style="--0:#F5776E">import</span><span style="--0:#ADBAC7"> { defer } </span><span style="--0:#F5776E">from</span><span style="--0:#ADBAC7"> </span><span style="--0:#96D0FF">'radashi'</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">async</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">runDatabaseMigration</span><span style="--0:#ADBAC7">() {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">await</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">defer</span><span style="--0:#ADBAC7">(</span><span style="--0:#F5776E">async</span><span style="--0:#ADBAC7"> </span><span style="--0:#F69D50">cleanup</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">const</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">tempTable</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">await</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">createTempTable</span><span style="--0:#ADBAC7">()</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">cleanup</span><span style="--0:#ADBAC7">(</span><span style="--0:#F5776E">async</span><span style="--0:#ADBAC7"> () </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">dropTable</span><span style="--0:#ADBAC7">(tempTable))</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">const</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">backupFile</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">await</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">backupExistingData</span><span style="--0:#ADBAC7">()</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">cleanup</span><span style="--0:#ADBAC7">(</span><span style="--0:#F5776E">async</span><span style="--0:#ADBAC7"> () </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">deleteFile</span><span style="--0:#ADBAC7">(backupFile))</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">try</span><span style="--0:#ADBAC7"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">await</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">migrateData</span><span style="--0:#ADBAC7">(tempTable)</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">await</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">swapTables</span><span style="--0:#ADBAC7">(tempTable, </span><span style="--0:#96D0FF">'production_table'</span><span style="--0:#ADBAC7">)</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">} </span><span style="--0:#F5776E">catch</span><span style="--0:#ADBAC7"> (error) {</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">console.</span><span style="--0:#DCBDFB">error</span><span style="--0:#ADBAC7">(</span><span style="--0:#96D0FF">'Migration failed:'</span><span style="--0:#ADBAC7">, error)</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">throw</span><span style="--0:#ADBAC7"> error</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">}</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">console.</span><span style="--0:#DCBDFB">log</span><span style="--0:#ADBAC7">(</span><span style="--0:#96D0FF">'Migration completed successfully'</span><span style="--0:#ADBAC7">)</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">})</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">}</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#DCBDFB">runDatabaseMigration</span><span style="--0:#ADBAC7">().</span><span style="--0:#DCBDFB">catch</span><span style="--0:#ADBAC7">(console.error)</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="import { defer } from 'radashi'async function runDatabaseMigration() { await defer(async cleanup => { const tempTable = await createTempTable() cleanup(async () => dropTable(tempTable)) const backupFile = await backupExistingData() cleanup(async () => deleteFile(backupFile)) try { await migrateData(tempTable) await swapTables(tempTable, 'production_table') } catch (error) { console.error('Migration failed:', error) throw error } console.log('Migration completed successfully') })}runDatabaseMigration().catch(console.error)"><div></div></button></div></figure></div></astro-slot></div></div><!--astro:end--></astro-island>
<h4 id="-lightweight-and-efficient">🪶 Lightweight and Efficient</h4>
<p>We keep things simple to ensure your projects stay light and fast. Radashi is fully tree-shakeable, so you only include the functions you use. This means no unnecessary bulk in your code.</p>
<astro-island uid="2pmCuK" component-url="/assets/tabbed-code-block.CqZYnBmR.js" component-export="TabbedCodeBlock" renderer-url="/assets/client.CFbmdnQb.js" props="{"names":[1,[[0,"radashi"],[0,"lodash-es"]]]}" ssr="" client="load" opts="{"name":"TabbedCodeBlock","value":true}" await-children=""><div><div class="not-content flex flex-row items-center mt-3"><div role="button" class="relative cursor-pointer px-4 py-0.5 rounded-full"><span class="block text-pink100 font-600 text-0.9rem">radashi</span><div class="absolute left-0 bottom--1 w-full px-3"><div class="h-2.6px w-full rounded-full transition-650 bg-#8a6e6f opacity-50"></div></div></div><div role="button" class="relative cursor-pointer px-4 py-0.5 rounded-full"><span class="block text-pink100 font-600 text-0.9rem">lodash-es</span><div class="absolute left-0 bottom--1 w-full px-3"><div class="h-2.6px w-full rounded-full transition-650 bg-#8a6e6f opacity-50"></div></div></div></div><div style="display:none;"><astro-slot><p>For fun, let’s compare the size of Radashi’s <code dir="auto">mapValues</code> function to that of Lodash’s. I can assure you, this massive difference is not uncommon.</p><div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="ts"><code><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">mapValues</span><span style="--0:#ADBAC7">(</span><span style="--0:#F69D50">obj</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">mapFunc</span><span style="--0:#ADBAC7">) {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">const</span><span style="--0:#ADBAC7"> </span><span style="--0:#6CB6FF">keys</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> Object.</span><span style="--0:#DCBDFB">keys</span><span style="--0:#ADBAC7">(obj)</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">return</span><span style="--0:#ADBAC7"> keys.</span><span style="--0:#DCBDFB">reduce</span><span style="--0:#ADBAC7">((</span><span style="--0:#F69D50">acc</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">key</span><span style="--0:#ADBAC7">) </span><span style="--0:#F5776E">=></span><span style="--0:#ADBAC7"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">acc[key] </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">mapFunc</span><span style="--0:#ADBAC7">(obj[key], key)</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">return</span><span style="--0:#ADBAC7"> acc</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">}, {})</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">}</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="export function mapValues(obj, mapFunc) { const keys = Object.keys(obj) return keys.reduce((acc, key) => { acc[key] = mapFunc(obj[key], key) return acc }, {})}"><div></div></button></div></figure></div><p>This is the <code dir="auto">mapValues</code> function from Lodash. The bundle size clocks in at 16.6 kB minified. Obviously, we all want to avoid this!</p><div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="ts"><code><div class="ec-line"><div class="code"><span style="--0:#949EA8">// http-url:https://unpkg.com/[email protected]/_freeGlobal.js</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">var</span><span style="--0:#ADBAC7"> freeGlobal </span><span style="--0:#F5776E">=</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">typeof</span><span style="--0:#ADBAC7"> global </span><span style="--0:#F5776E">==</span><span style="--0:#ADBAC7"> </span><span style="--0:#96D0FF">'object'</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">&&</span><span style="--0:#ADBAC7"> global </span><span style="--0:#F5776E">&&</span><span style="--0:#ADBAC7"> global.Object </span><span style="--0:#F5776E">===</span><span style="--0:#ADBAC7"> Object </span><span style="--0:#F5776E">&&</span><span style="--0:#ADBAC7"> global</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">var</span><span style="--0:#ADBAC7"> freeGlobal_default </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> freeGlobal</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// http-url:https://unpkg.com/[email protected]/_root.js</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">var</span><span style="--0:#ADBAC7"> freeSelf </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">typeof</span><span style="--0:#ADBAC7"> self </span><span style="--0:#F5776E">==</span><span style="--0:#ADBAC7"> </span><span style="--0:#96D0FF">'object'</span><span style="--0:#ADBAC7"> </span><span style="--0:#F5776E">&&</span><span style="--0:#ADBAC7"> self </span><span style="--0:#F5776E">&&</span><span style="--0:#ADBAC7"> self.Object </span><span style="--0:#F5776E">===</span><span style="--0:#ADBAC7"> Object </span><span style="--0:#F5776E">&&</span><span style="--0:#ADBAC7"> self</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">var</span><span style="--0:#ADBAC7"> root </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> freeGlobal_default </span><span style="--0:#F5776E">||</span><span style="--0:#ADBAC7"> freeSelf </span><span style="--0:#F5776E">||</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">Function</span><span style="--0:#ADBAC7">(</span><span style="--0:#96D0FF">'return this'</span><span style="--0:#ADBAC7">)()</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">var</span><span style="--0:#ADBAC7"> root_default </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> root</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">/* ~1300 Lines Later... */</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#949EA8">// http-url:https://unpkg.com/[email protected]/mapValues.js</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">mapValues</span><span style="--0:#ADBAC7">(</span><span style="--0:#F69D50">object</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">iteratee</span><span style="--0:#ADBAC7">) {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">var</span><span style="--0:#ADBAC7"> result </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> {}</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">iteratee </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> </span><span style="--0:#DCBDFB">baseIteratee_default</span><span style="--0:#ADBAC7">(iteratee, </span><span style="--0:#6CB6FF">3</span><span style="--0:#ADBAC7">)</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">baseForOwn_default</span><span style="--0:#ADBAC7">(object, </span><span style="--0:#F5776E">function</span><span style="--0:#ADBAC7"> (</span><span style="--0:#F69D50">value</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">key</span><span style="--0:#ADBAC7">, </span><span style="--0:#F69D50">object2</span><span style="--0:#ADBAC7">) {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#DCBDFB">baseAssignValue_default</span><span style="--0:#ADBAC7">(result, key, </span><span style="--0:#DCBDFB">iteratee</span><span style="--0:#ADBAC7">(value, key, object2))</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ADBAC7"> </span></span><span style="--0:#ADBAC7">})</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#F5776E">return</span><span style="--0:#ADBAC7"> result</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ADBAC7">}</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">var</span><span style="--0:#ADBAC7"> mapValues_default </span><span style="--0:#F5776E">=</span><span style="--0:#ADBAC7"> mapValues</span></div></div><div class="ec-line"><div class="code"><span style="--0:#F5776E">export</span><span style="--0:#ADBAC7"> { mapValues_default </span><span style="--0:#F5776E">as</span><span style="--0:#ADBAC7"> mapValues }</span></div></div></code></pre><div class="copy"><button title="Copy to clipboard" data-copied="Copied!" data-code="// http-url:https://unpkg.com/[email protected]/_freeGlobal.jsvar freeGlobal = typeof global == 'object' && global && global.Object === Object && globalvar freeGlobal_default = freeGlobal// http-url:https://unpkg.com/[email protected]/_root.jsvar freeSelf = typeof self == 'object' && self && self.Object === Object && selfvar root = freeGlobal_default || freeSelf || Function('return this')()var root_default = root/* ~1300 Lines Later... */// http-url:https://unpkg.com/[email protected]/mapValues.jsfunction mapValues(object, iteratee) { var result = {} iteratee = baseIteratee_default(iteratee, 3) baseForOwn_default(object, function (value, key, object2) { baseAssignValue_default(result, key, iteratee(value, key, object2)) }) return result}var mapValues_default = mapValuesexport { mapValues_default as mapValues }"><div></div></button></div></figure></div></astro-slot></div></div><!--astro:end--></astro-island>
<h4 id="️-easy-to-customize">🛠️ Easy to Customize</h4>
<p>Want to add your own touch? You can easily extend Radashi with your own functions using our template repository. Make it yours and easily contribute your functions back to the community.</p>
<h4 id="-community-powered">🤝 Community-Powered</h4>
<p>Radashi thrives on contributions and new ideas. We welcome everyone to join in, share their knowledge, and help the library evolve. Our open process and regular updates keep us in tune with what developers need.</p>
<h3 id="tackling-common-problems">Tackling Common Problems</h3>
<p>Radashi is here to solve some big issues in utility libraries:</p>
<ol>
<li><strong>Central Control</strong>: We support a decentralized, community-driven approach.</li>
<li><strong>Customization</strong>: Easily extend Radashi with our <a href="https://github.com/radashi-org/radashi-template">template repository</a>.</li>
<li><strong>Fragmentation</strong>: We offer a unified platform for sharing and adopting TypeScript utility functions.</li>
</ol>
<h3 id="our-core-values">Our Core Values</h3>
<ul>
<li><strong>Purposeful Design</strong>: Guided by our evolving <a href="/our-ethos">“Our Ethos”</a> document</li>
<li><strong>Simplicity</strong>: Keeping code light and efficient</li>
<li><strong>Pragmatism</strong>: Focusing on what’s most useful</li>
<li><strong>Innovation</strong>: Staying ahead of emerging needs</li>
</ul>
<p> </p>
<hr>
<p>Radashi helps you write cleaner, more efficient code by offering a curated set of TypeScript utility functions. Customize it to fit your needs, contribute your own functions, and collaborate with a community of developers to build a better JavaScript ecosystem.</p>
<p><strong>Ready to dive in?</strong> Choose your next step with Radashi:</p>
<ul>
<li><a href="/installation">Installation</a>: Try out Radashi in your project.</li>
<li><a href="/reference">Functions Overview</a>: Explore the functions of Radashi.</li>
<li><a href="/contributing">Contributing</a>: Help us improve Radashi.</li>
</ul> </div> <footer class="sl-flex astro-ws7dwejz"> <div class="meta sl-flex astro-ws7dwejz"> </div> <div class="pagination-links astro-sh3f5jzw" dir="ltr"> <div class="astro-sh3f5jzw"></div> <a href="/installation" rel="next" class="astro-sh3f5jzw"> <svg aria-hidden="true" class="astro-sh3f5jzw astro-bkchasgr" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.8rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg> <span class="astro-sh3f5jzw"> <span class="next-link-tag astro-sh3f5jzw">Next</span> <br class="astro-sh3f5jzw"> <span class="link-title astro-sh3f5jzw">Installation</span> </span> </a> </div> </footer> </div> </div> </div> </main> </div> </div> </div> </div> </body></html>