clear-af.js 1.0.0 β†’ 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +90 -62
  2. package/README_FR.md +125 -0
  3. package/dist/index.d.ts +108 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +126 -1
  6. package/docs/.nojekyll +1 -0
  7. package/docs/assets/hierarchy.js +1 -0
  8. package/docs/assets/highlight.css +78 -0
  9. package/docs/assets/icons.js +18 -0
  10. package/docs/assets/icons.svg +1 -0
  11. package/docs/assets/main.js +60 -0
  12. package/docs/assets/navigation.js +1 -0
  13. package/docs/assets/search.js +1 -0
  14. package/docs/assets/style.css +1633 -0
  15. package/docs/functions/camelify.html +7 -0
  16. package/docs/functions/capitalize.html +7 -0
  17. package/docs/functions/deepClone.html +7 -0
  18. package/docs/functions/isEmail.html +7 -0
  19. package/docs/functions/isEmpty.html +7 -0
  20. package/docs/functions/isType.html +8 -0
  21. package/docs/functions/isURL.html +7 -0
  22. package/docs/functions/kebabify.html +7 -0
  23. package/docs/functions/logHeader.html +6 -0
  24. package/docs/functions/logSeparator.html +5 -0
  25. package/docs/functions/noTwins.html +7 -0
  26. package/docs/functions/prettyDebug.html +7 -0
  27. package/docs/functions/prettyError.html +7 -0
  28. package/docs/functions/prettyInfo.html +7 -0
  29. package/docs/functions/prettySuccess.html +7 -0
  30. package/docs/functions/prettyWarn.html +7 -0
  31. package/docs/functions/snakify.html +7 -0
  32. package/docs/hierarchy.html +1 -0
  33. package/docs/index.html +87 -0
  34. package/docs/media/README_FR.md +125 -0
  35. package/docs/modules.html +69 -0
  36. package/package.json +4 -2
  37. package/src/index.ts +4 -251
  38. package/src/logging.ts +129 -0
  39. package/src/object_manipulation.ts +42 -0
  40. package/src/transformation.ts +89 -0
  41. package/src/validation.ts +79 -0
@@ -0,0 +1,7 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>snakify | clear-af.js</title><meta name="description" content="Documentation for clear-af.js"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">clear-af.js</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">snakify</a></li></ul><h1>Function snakify</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="snakify"><span class="tsd-kind-call-signature">snakify</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">str</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><a href="#snakify" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><code class="tsd-tag">Function</code><div class="tsd-comment tsd-typography"><p>Transform a string to snake_case format</p>
2
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">str</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The string to transform</p>
3
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><p>The string in snake_case format</p>
4
+ <div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example">Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="ts"><span class="hl-0">snakify</span><span class="hl-1">(</span><span class="hl-2">&quot;hello world&quot;</span><span class="hl-1">); </span><span class="hl-6">// &quot;hello_world&quot;</span><br/><span class="hl-0">snakify</span><span class="hl-1">(</span><span class="hl-2">&quot;C&#39;est un test&quot;</span><span class="hl-1">); </span><span class="hl-6">// &quot;ceststun_test&quot;</span><br/><span class="hl-0">snakify</span><span class="hl-1">(</span><span class="hl-2">&quot;foo bar baz&quot;</span><span class="hl-1">); </span><span class="hl-6">// &quot;foo_bar_baz&quot;</span>
5
+ </code><button type="button">Copy</button></pre>
6
+
7
+ </div></div><aside class="tsd-sources"><ul><li>Defined in transformation.ts:62</li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">clear-af.js</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>clear-af.js</title><meta name="description" content="Documentation for clear-af.js"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">clear-af.js</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>clear-af.js</h1></div><h2>Hierarchy Summary</h2></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">clear-af.js</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,87 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>clear-af.js</title><meta name="description" content="Documentation for clear-af.js"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">clear-af.js</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>clear-af.js</h1></div><div class="tsd-panel tsd-typography"><h1 id="clear-afjs" class="tsd-anchor-link">clear-af.js<a href="#clear-afjs" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1>
2
+ <p>A JavaScript package packed with utilities to make your code <strong>readable af</strong>. Because clarity is the key to survival in programming.</p>
3
+ <p>πŸ“– <strong>Languages</strong> : <a href="#">πŸ‡¬πŸ‡§ English</a> | <a href="media/README_FR.md">πŸ‡«πŸ‡· FranΓ§ais</a></p>
4
+ <p>πŸ“š <strong><a href="https://froostdev.github.io/clear-af.js/">Full Documentation</a></strong></p>
5
+ <hr>
6
+ <h2 id="πŸ“¦-installation" class="tsd-anchor-link">πŸ“¦ Installation<a href="#πŸ“¦-installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
7
+ <pre><code class="bash"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-2">clear-af</span>
8
+ </code><button type="button">Copy</button></pre>
9
+
10
+ <hr>
11
+ <h2 id="πŸš€-quick-start" class="tsd-anchor-link">πŸš€ Quick Start<a href="#πŸš€-quick-start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
12
+ <pre><code class="javascript"><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-4">clear</span><span class="hl-1"> = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">&#39;clear-af&#39;</span><span class="hl-1">);</span><br/><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">prettyError</span><span class="hl-1">(</span><span class="hl-2">&quot;An error!&quot;</span><span class="hl-1">);</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">camelify</span><span class="hl-1">(</span><span class="hl-2">&quot;hello world&quot;</span><span class="hl-1">); </span><span class="hl-6">// &quot;helloWorld&quot;</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">isEmpty</span><span class="hl-1">(</span><span class="hl-5">data</span><span class="hl-1">);</span>
13
+ </code><button type="button">Copy</button></pre>
14
+
15
+ <hr>
16
+ <h2 id="✨-features" class="tsd-anchor-link">✨ Features<a href="#✨-features" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
17
+ <h3 id="πŸ”-improved-logging" class="tsd-anchor-link">πŸ” Improved Logging<a href="#πŸ”-improved-logging" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
18
+ <p>Colored and formatted messages for better debugging.</p>
19
+ <pre><code class="javascript"><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">prettyError</span><span class="hl-1">(</span><span class="hl-5">error</span><span class="hl-1">);</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">prettySuccess</span><span class="hl-1">(</span><span class="hl-5">message</span><span class="hl-1">);</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">prettyWarn</span><span class="hl-1">(</span><span class="hl-5">warning</span><span class="hl-1">);</span>
20
+ </code><button type="button">Copy</button></pre>
21
+
22
+ <h3 id="βœ…-easy-validation" class="tsd-anchor-link">βœ… Easy Validation<a href="#βœ…-easy-validation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
23
+ <p>Verify your data quickly.</p>
24
+ <pre><code class="javascript"><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">isEmpty</span><span class="hl-1">(</span><span class="hl-5">value</span><span class="hl-1">);</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">isEmail</span><span class="hl-1">(</span><span class="hl-2">&quot;test@example.com&quot;</span><span class="hl-1">);</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">isURL</span><span class="hl-1">(</span><span class="hl-2">&quot;https://example.com&quot;</span><span class="hl-1">);</span>
25
+ </code><button type="button">Copy</button></pre>
26
+
27
+ <h3 id="πŸ”„-object-manipulation" class="tsd-anchor-link">πŸ”„ Object Manipulation<a href="#πŸ”„-object-manipulation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
28
+ <p>Deep clone and manipulate your data.</p>
29
+ <pre><code class="javascript"><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">deepClone</span><span class="hl-1">(</span><span class="hl-5">obj</span><span class="hl-1">);</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">noTwins</span><span class="hl-1">([</span><span class="hl-7">1</span><span class="hl-1">, </span><span class="hl-7">2</span><span class="hl-1">, </span><span class="hl-7">2</span><span class="hl-1">, </span><span class="hl-7">3</span><span class="hl-1">]); </span><span class="hl-6">// [1, 2, 3]</span>
30
+ </code><button type="button">Copy</button></pre>
31
+
32
+ <h3 id="πŸ“-string-transformation" class="tsd-anchor-link">πŸ“ String Transformation<a href="#πŸ“-string-transformation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
33
+ <p>Convert your strings to different formats.</p>
34
+ <pre><code class="javascript"><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">camelify</span><span class="hl-1">(</span><span class="hl-2">&quot;hello world&quot;</span><span class="hl-1">); </span><span class="hl-6">// &quot;helloWorld&quot;</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">kebabify</span><span class="hl-1">(</span><span class="hl-2">&quot;hello world&quot;</span><span class="hl-1">); </span><span class="hl-6">// &quot;hello-world&quot;</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">snakify</span><span class="hl-1">(</span><span class="hl-2">&quot;hello world&quot;</span><span class="hl-1">); </span><span class="hl-6">// &quot;hello_world&quot;</span><br/><span class="hl-5">clear</span><span class="hl-1">.</span><span class="hl-0">capitalize</span><span class="hl-1">(</span><span class="hl-2">&quot;hello&quot;</span><span class="hl-1">); </span><span class="hl-6">// &quot;Hello&quot;</span>
35
+ </code><button type="button">Copy</button></pre>
36
+
37
+ <hr>
38
+ <h2 id="πŸ“š-complete-api" class="tsd-anchor-link">πŸ“š Complete API<a href="#πŸ“š-complete-api" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
39
+ <h3 id="logging" class="tsd-anchor-link">Logging<a href="#logging" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
40
+ <ul>
41
+ <li><code>prettyError(message, showTime?)</code></li>
42
+ <li><code>prettyWarn(message, showTime?)</code></li>
43
+ <li><code>prettySuccess(message, showTime?)</code></li>
44
+ <li><code>prettyInfo(message, showTime?)</code></li>
45
+ <li><code>prettyDebug(message, showTime?)</code></li>
46
+ <li><code>logSeparator()</code></li>
47
+ <li><code>logHeader(title)</code></li>
48
+ </ul>
49
+ <h3 id="validation" class="tsd-anchor-link">Validation<a href="#validation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
50
+ <ul>
51
+ <li><code>isEmpty(value)</code></li>
52
+ <li><code>isType(value, type)</code></li>
53
+ <li><code>isEmail(email)</code></li>
54
+ <li><code>isURL(url)</code></li>
55
+ </ul>
56
+ <h3 id="objects-arrays" class="tsd-anchor-link">Objects &amp; Arrays<a href="#objects-arrays" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
57
+ <ul>
58
+ <li><code>deepClone(obj)</code></li>
59
+ <li><code>noTwins(array)</code></li>
60
+ </ul>
61
+ <h3 id="string-transformation" class="tsd-anchor-link">String Transformation<a href="#string-transformation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
62
+ <ul>
63
+ <li><code>camelify(string)</code></li>
64
+ <li><code>kebabify(string)</code></li>
65
+ <li><code>snakify(string)</code></li>
66
+ <li><code>capitalize(string)</code></li>
67
+ </ul>
68
+ <hr>
69
+ <h2 id="πŸ€”-faq" class="tsd-anchor-link">πŸ€” FAQ<a href="#πŸ€”-faq" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
70
+ <p><strong>Q: Why &quot;-af&quot; in the name?</strong><br>
71
+ A: Because your code should be readable <em>af</em>, mate.</p>
72
+ <p><strong>Q: Is it compatible with TypeScript?</strong><br>
73
+ A: Yes! TypeScript types are included.</p>
74
+ <p><strong>Q: Will it slow down my app?</strong><br>
75
+ A: No, zero overhead. These are just helpers.</p>
76
+ <hr>
77
+ <h2 id="πŸ“-license" class="tsd-anchor-link">πŸ“ License<a href="#πŸ“-license" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
78
+ <p>MIT - Free to use as you see fit.</p>
79
+ <hr>
80
+ <h2 id="🀝-contributing" class="tsd-anchor-link">🀝 Contributing<a href="#🀝-contributing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
81
+ <p>Contributions are welcome!</p>
82
+ <pre><code class="bash"><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">clone</span><span class="hl-1"> </span><span class="hl-2">https://github.com/FroostDev/clear-af.js</span><br/><span class="hl-0">cd</span><span class="hl-1"> </span><span class="hl-2">clear-af.js</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span>
83
+ </code><button type="button">Copy</button></pre>
84
+
85
+ <hr>
86
+ <p><strong>clear-af.js</strong> - <em>Because clarity is the developer's mental health.</em> πŸ–€</p>
87
+ </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#clear-afjs"><span>clear-<wbr/>af.js</span></a><ul><li><a href="#πŸ“¦-installation"><span>πŸ“¦ <wbr/>Installation</span></a></li><li><a href="#πŸš€-quick-start"><span>πŸš€ <wbr/>Quick <wbr/>Start</span></a></li><li><a href="#✨-features"><span>✨ <wbr/>Features</span></a></li><li><ul><li><a href="#πŸ”-improved-logging"><span>πŸ” <wbr/>Improved <wbr/>Logging</span></a></li><li><a href="#βœ…-easy-validation"><span>βœ… <wbr/>Easy <wbr/>Validation</span></a></li><li><a href="#πŸ”„-object-manipulation"><span>πŸ”„ <wbr/>Object <wbr/>Manipulation</span></a></li><li><a href="#πŸ“-string-transformation"><span>πŸ“ <wbr/>String <wbr/>Transformation</span></a></li></ul></li><li><a href="#πŸ“š-complete-api"><span>πŸ“š <wbr/>Complete <wbr/>API</span></a></li><li><ul><li><a href="#logging"><span>Logging</span></a></li><li><a href="#validation"><span>Validation</span></a></li><li><a href="#objects-arrays"><span>Objects &amp; <wbr/>Arrays</span></a></li><li><a href="#string-transformation"><span>String <wbr/>Transformation</span></a></li></ul></li><li><a href="#πŸ€”-faq"><span>πŸ€” <wbr/>FAQ</span></a></li><li><a href="#πŸ“-license"><span>πŸ“ <wbr/>License</span></a></li><li><a href="#🀝-contributing"><span>🀝 <wbr/>Contributing</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">clear-af.js</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,125 @@
1
+ # clear-af.js
2
+
3
+ Un package JavaScript rempli d'utilitaires pour rendre votre code **lisible af**. Parce que la clartΓ©, c'est la clΓ© de la survie en programmation.
4
+
5
+ πŸ“– **Languages** : [πŸ‡¬πŸ‡§ English](README.md) | [πŸ‡«πŸ‡· FranΓ§ais](#)
6
+
7
+ πŸ“š **[Documentation ComplΓ¨te](https://froostdev.github.io/clear-af.js/)**
8
+
9
+ ---
10
+
11
+ ## πŸ“¦ Installation
12
+ ```bash
13
+ npm install clear-af
14
+ ```
15
+
16
+ ---
17
+
18
+ ## πŸš€ Utilisation rapide
19
+ ```javascript
20
+ const clear = require('clear-af');
21
+
22
+ clear.prettyError("Une erreur !");
23
+ clear.camelify("hello world"); // "helloWorld"
24
+ clear.isEmpty(data);
25
+ ```
26
+
27
+ ---
28
+
29
+ ## ✨ Fonctionnalités
30
+
31
+ ### πŸ” Logging amΓ©liorΓ©
32
+ Messages colorΓ©s et formatΓ©s pour un meilleur debugging.
33
+ ```javascript
34
+ clear.prettyError(error);
35
+ clear.prettySuccess(message);
36
+ clear.prettyWarn(warning);
37
+ ```
38
+
39
+ ### βœ… Validation facile
40
+ VΓ©rifiez vos donnΓ©es rapidement.
41
+ ```javascript
42
+ clear.isEmpty(value);
43
+ clear.isEmail("test@example.com");
44
+ clear.isURL("https://example.com");
45
+ ```
46
+
47
+ ### πŸ”„ Manipulation d'objets
48
+ Clonez profondΓ©ment et manipulez vos donnΓ©es.
49
+ ```javascript
50
+ clear.deepClone(obj);
51
+ clear.noTwins([1, 2, 2, 3]); // [1, 2, 3]
52
+ ```
53
+
54
+ ### πŸ“ Transformation de strings
55
+ Convertissez vos strings en diffΓ©rents formats.
56
+ ```javascript
57
+ clear.camelify("hello world"); // "helloWorld"
58
+ clear.kebabify("hello world"); // "hello-world"
59
+ clear.snakify("hello world"); // "hello_world"
60
+ clear.capitalize("hello"); // "Hello"
61
+ ```
62
+
63
+ ---
64
+
65
+ ## πŸ“š API ComplΓ¨te
66
+
67
+ ### Logging
68
+ - `prettyError(message, showTime?)`
69
+ - `prettyWarn(message, showTime?)`
70
+ - `prettySuccess(message, showTime?)`
71
+ - `prettyInfo(message, showTime?)`
72
+ - `prettyDebug(message, showTime?)`
73
+ - `logSeparator()`
74
+ - `logHeader(title)`
75
+
76
+ ### Validation
77
+ - `isEmpty(value)`
78
+ - `isType(value, type)`
79
+ - `isEmail(email)`
80
+ - `isURL(url)`
81
+
82
+ ### Objets & Arrays
83
+ - `deepClone(obj)`
84
+ - `noTwins(array)`
85
+
86
+ ### Transformation de strings
87
+ - `camelify(string)`
88
+ - `kebabify(string)`
89
+ - `snakify(string)`
90
+ - `capitalize(string)`
91
+
92
+ ---
93
+
94
+ ## πŸ€” FAQ
95
+
96
+ **Q: Pourquoi "-af" dans le nom ?**
97
+ R: Parce que ton code doit Γͺtre lisible *af*, mec.
98
+
99
+ **Q: Compatible avec TypeScript ?**
100
+ R: Oui ! Les types TypeScript sont inclus.
101
+
102
+ **Q: Γ‡a ralentit mon app ?**
103
+ R: Non, zΓ©ro overhead. Ce ne sont que des helpers.
104
+
105
+ ---
106
+
107
+ ## πŸ“ Licence
108
+
109
+ MIT - Libre de l'utiliser comme bon vous semble.
110
+
111
+ ---
112
+
113
+ ## 🀝 Contribution
114
+
115
+ Les contributions sont bienvenues !
116
+ ```bash
117
+ git clone https://github.com/FroostDev/clear-af.js
118
+ cd clear-af.js
119
+ npm install
120
+ npm run build
121
+ ```
122
+
123
+ ---
124
+
125
+ **clear-af.js** - *Parce que la clartΓ©, c'est la santΓ© mentale du dev.* πŸ–€
@@ -0,0 +1,69 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>clear-af.js</title><meta name="description" content="Documentation for clear-af.js"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">clear-af.js</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"></ul><h1>clear-af.js</h1></div><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Logging
2
+ logHeader"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Logging
3
+ logHeader</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="logheader"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/logHeader.html">logHeader</a><a href="#logheader" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Logging
4
+ logSeparator"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Logging
5
+ logSeparator</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="logseparator"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/logSeparator.html">logSeparator</a><a href="#logseparator" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Logging
6
+ prettyDebug"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Logging
7
+ prettyDebug</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="prettydebug"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/prettyDebug.html">prettyDebug</a><a href="#prettydebug" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Logging
8
+ prettyError"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Logging
9
+ prettyError</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="prettyerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/prettyError.html">prettyError</a><a href="#prettyerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Logging
10
+ prettyInfo"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Logging
11
+ prettyInfo</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="prettyinfo"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/prettyInfo.html">prettyInfo</a><a href="#prettyinfo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Logging
12
+ prettySuccess"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Logging
13
+ prettySuccess</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="prettysuccess"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/prettySuccess.html">prettySuccess</a><a href="#prettysuccess" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Logging
14
+ prettyWarn"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Logging
15
+ prettyWarn</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="prettywarn"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/prettyWarn.html">prettyWarn</a><a href="#prettywarn" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Object Manipulation
16
+ deepClone"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Object Manipulation
17
+ deepClone</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="deepclone"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/deepClone.html">deepClone</a><a href="#deepclone" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Object Manipulation
18
+ noTwins"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Object Manipulation
19
+ noTwins</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="notwins"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/noTwins.html">noTwins</a><a href="#notwins" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Transformation
20
+ camelify"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Transformation
21
+ camelify</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="camelify"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/camelify.html">camelify</a><a href="#camelify" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Transformation
22
+ capitalize"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Transformation
23
+ capitalize</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="capitalize"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/capitalize.html">capitalize</a><a href="#capitalize" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Transformation
24
+ kebabify"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Transformation
25
+ kebabify</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="kebabify"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/kebabify.html">kebabify</a><a href="#kebabify" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Transformation
26
+ snakify"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Transformation
27
+ snakify</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="snakify"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/snakify.html">snakify</a><a href="#snakify" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Validation
28
+ isEmail"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Validation
29
+ isEmail</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="isemail"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/isEmail.html">isEmail</a><a href="#isemail" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Validation
30
+ isEmpty"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Validation
31
+ isEmpty</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="isempty"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/isEmpty.html">isEmpty</a><a href="#isempty" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Validation
32
+ isType"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Validation
33
+ isType</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="istype"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/isType.html">isType</a><a href="#istype" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Validation
34
+ isURL"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h2>Validation
35
+ isURL</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="isurl"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><a href="functions/isURL.html">isURL</a><a href="#isurl" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Logging
36
+ logHeader"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Logging
37
+ logHeader</summary><div><a href="#logheader"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>log<wbr/>Header</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Logging
38
+ logSeparator"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Logging
39
+ logSeparator</summary><div><a href="#logseparator"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>log<wbr/>Separator</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Logging
40
+ prettyDebug"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Logging
41
+ prettyDebug</summary><div><a href="#prettydebug"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>pretty<wbr/>Debug</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Logging
42
+ prettyError"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Logging
43
+ prettyError</summary><div><a href="#prettyerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>pretty<wbr/>Error</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Logging
44
+ prettyInfo"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Logging
45
+ prettyInfo</summary><div><a href="#prettyinfo"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>pretty<wbr/>Info</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Logging
46
+ prettySuccess"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Logging
47
+ prettySuccess</summary><div><a href="#prettysuccess"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>pretty<wbr/>Success</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Logging
48
+ prettyWarn"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Logging
49
+ prettyWarn</summary><div><a href="#prettywarn"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>pretty<wbr/>Warn</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Object Manipulation
50
+ deepClone"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Object Manipulation
51
+ deepClone</summary><div><a href="#deepclone"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>deep<wbr/>Clone</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Object Manipulation
52
+ noTwins"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Object Manipulation
53
+ noTwins</summary><div><a href="#notwins"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>no<wbr/>Twins</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Transformation
54
+ camelify"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Transformation
55
+ camelify</summary><div><a href="#camelify"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>camelify</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Transformation
56
+ capitalize"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Transformation
57
+ capitalize</summary><div><a href="#capitalize"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>capitalize</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Transformation
58
+ kebabify"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Transformation
59
+ kebabify</summary><div><a href="#kebabify"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>kebabify</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Transformation
60
+ snakify"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Transformation
61
+ snakify</summary><div><a href="#snakify"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>snakify</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Validation
62
+ isEmail"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Validation
63
+ isEmail</summary><div><a href="#isemail"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>is<wbr/>Email</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Validation
64
+ isEmpty"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Validation
65
+ isEmpty</summary><div><a href="#isempty"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>is<wbr/>Empty</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Validation
66
+ isType"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Validation
67
+ isType</summary><div><a href="#istype"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>is<wbr/>Type</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Validation
68
+ isURL"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Validation
69
+ isURL</summary><div><a href="#isurl"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="assets/icons.svg#icon-64"></use></svg><span>is<wbr/>URL</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current">clear-af.js</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clear-af.js",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Make your code readable af with zero bullsh*t utilities.",
5
5
  "keywords": [
6
6
  "javascript",
@@ -24,9 +24,11 @@
24
24
  "type": "commonjs",
25
25
  "main": "index.js",
26
26
  "scripts": {
27
- "test": "echo \"Error: no test specified\" && exit 1"
27
+ "test": "echo \"Error: no test specified\" && exit 1",
28
+ "docs": "typedoc --out docs src"
28
29
  },
29
30
  "devDependencies": {
31
+ "typedoc": "^0.28.18",
30
32
  "typescript": "^6.0.2"
31
33
  }
32
34
  }