<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.3">Jekyll</generator><link href="http://th3mon.github.io//feed.xml" rel="self" type="application/atom+xml" /><link href="http://th3mon.github.io//" rel="alternate" type="text/html" /><updated>2023-11-13T22:53:37+00:00</updated><id>http://th3mon.github.io//feed.xml</id><title type="html">Przemysław Szelenberger</title><subtitle>Przemysław Szelenberger - Frontend Developer from Poland
</subtitle><entry><title type="html">Lint Styled Components</title><link href="http://th3mon.github.io//react/2020/08/14/linting-styled-components.html" rel="alternate" type="text/html" title="Lint Styled Components" /><published>2020-08-14T00:00:00+00:00</published><updated>2020-08-14T00:00:00+00:00</updated><id>http://th3mon.github.io//react/2020/08/14/linting-styled-components</id><content type="html" xml:base="http://th3mon.github.io//react/2020/08/14/linting-styled-components.html">&lt;p&gt;&lt;strong&gt;TLDR:&lt;/strong&gt; Do &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;VSC&lt;/a&gt; jest wtyczka koloryzująca style napisane za pomocą &lt;a href=&quot;https://styled-components.com/&quot;&gt;Styled Components&lt;/a&gt; oraz najwidoczniej uruchamia się dodatkowo process lintowania -&amp;gt; &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=jpoissonnier.vscode-styled-components&quot;&gt;vscode-styled-components&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podczas implementowania projektu z &lt;a href=&quot;https://dev.to/nghiemthu/8-projects-with-designs-you-can-do-to-become-front-end-developer-4pf8&quot;&gt;8 Projects with Designs you can do to Become FRONT-END developer - DEV&lt;/a&gt; zastanawiałem się czy style napisać w &lt;a href=&quot;https://sass-lang.com/&quot;&gt;SCSS&lt;/a&gt; czy może jednak użyć &lt;a href=&quot;https://styled-components.com/&quot;&gt;Styled Components&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Tak naprawdę decyzji jeszcze nie podjąłem. Część styli mam w &lt;a href=&quot;https://sass-lang.com/&quot;&gt;SCSS&lt;/a&gt; a część w &lt;a href=&quot;https://styled-components.com/&quot;&gt;Styled Components&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;stylelint-processor-styled-components&quot;&gt;stylelint-processor-styled-components&lt;/h2&gt;

&lt;p&gt;Jedna sprawa mi przeszkadzała. Style z &lt;a href=&quot;https://styled-components.com/&quot;&gt;Styled Components&lt;/a&gt; nie przechodziły przez &lt;a href=&quot;https://stylelint.io/&quot;&gt;stylelint&lt;/a&gt;‘a. Natrafiłem na &lt;a href=&quot;https://github.com/styled-components/stylelint-processor-styled-components&quot;&gt;stylelint-processor-styled-components&lt;/a&gt;. “Świetnie!” pomyślałem i zastosowałem rady z dokumentacji. Problem w tym, że od tegomomentu pipe dla CSS i SCSS przestał mi działać. Jakoś dużo czasu nie chciałem spędzić na rozwiązanie tego problemu i zaparkowałem temat na &lt;a href=&quot;https://github.com/th3mon/button-component/tree/stylelint-styled-components&quot;&gt;branchu&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;vscode-styled-components&quot;&gt;vscode-styled-components&lt;/h2&gt;

&lt;p&gt;Zajrzałem do &lt;a href=&quot;https://styled-components.com/docs/tooling#jest-integration&quot;&gt;dokumentacji Styled Components&lt;/a&gt;. Zauważyłem, że jest wtyczka do kolorowania składni CSS’ów w &lt;a href=&quot;https://styled-components.com/&quot;&gt;Styled Components&lt;/a&gt; -&amp;gt; &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=jpoissonnier.vscode-styled-components&quot;&gt;vscode-styled-components&lt;/a&gt;. Doinstalowałem i ku memu zaskoczeniu &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;VSC&lt;/a&gt; uruchomił lint dla styli w komponencie używającym &lt;a href=&quot;https://styled-components.com/&quot;&gt;Styled Components&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;podsumowanie&quot;&gt;Podsumowanie&lt;/h2&gt;

&lt;p&gt;Myślę, że nie mam się co przejmować, którą drogą iść oraz cieszę się, że stylelint mi działa! Dodatkowo nie musiałem spędzać zbyt dużo czasu na rozwiązanie problemu lub szukaniu jego obejścia. Więcej czasu mi zajęło napisanie tego posta!&lt;/p&gt;</content><author><name></name></author><category term="React" /><summary type="html">TLDR: Do VSC jest wtyczka koloryzująca style napisane za pomocą Styled Components oraz najwidoczniej uruchamia się dodatkowo process lintowania -&amp;gt; vscode-styled-components</summary></entry><entry><title type="html">React Testing Library - intro</title><link href="http://th3mon.github.io//react/2020/07/16/react-testing-library-intro.html" rel="alternate" type="text/html" title="React Testing Library - intro" /><published>2020-07-16T00:00:00+00:00</published><updated>2020-07-16T00:00:00+00:00</updated><id>http://th3mon.github.io//react/2020/07/16/react-testing-library-intro</id><content type="html" xml:base="http://th3mon.github.io//react/2020/07/16/react-testing-library-intro.html">&lt;p&gt;Zauważyłem, że jest niewiele materiałów o &lt;a href=&quot;https://testing-library.com/docs/react-testing-library/intro&quot;&gt;React Testing Library&lt;/a&gt; po polsku.&lt;/p&gt;

&lt;p&gt;Posty, które się pojawią w serii, mają głównie pomóc mi w nauce korzystania z &lt;a href=&quot;https://testing-library.com/docs/react-testing-library/intro&quot;&gt;React Testing Library&lt;/a&gt;. Możliwe, że Tobie się też przydadzą.&lt;/p&gt;

&lt;p&gt;Posty będą oparte o workshop Kent’a C. Dodds’a:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=w6KCDFssHFA&amp;amp;feature=youtu.be&amp;amp;t=5004&quot;&gt;Testing React Workshop @ PayPal 2018-09 Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=OP2c0gs369U&quot;&gt;Testing React Workshop @ PayPal 2018-09 Part 2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chcę się zastosować do wyzwań z &lt;a href=&quot;https://dev.to/nghiemthu/8-projects-with-designs-you-can-do-to-become-front-end-developer-4pf8&quot;&gt;8 Projects with Designs you can do to Become FRONT-END developer - DEV&lt;/a&gt; i przy okazji poćwiczyć z &lt;a href=&quot;https://testing-library.com/docs/react-testing-library/intro&quot;&gt;React Testing Library&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Dlatego kod w postach nie będzie typu “foo/bar”. Wiem, klasyka, ale ile można :-).&lt;/p&gt;

&lt;p&gt;W miarę jak się posty będą pojawiać, to dodam w każdym z nich spis treści, by można było po nich nawigować. Oczywiście włącznie z obecnym postem.&lt;/p&gt;</content><author><name></name></author><category term="React" /><summary type="html">Zauważyłem, że jest niewiele materiałów o React Testing Library po polsku.</summary></entry><entry><title type="html">Why TypeScript fails to inform you about wrong use of getter?</title><link href="http://th3mon.github.io//typescript,/javascript/2019/03/27/why-ts-fails-to-inform-you-about-wrong-use-of-getter.html" rel="alternate" type="text/html" title="Why TypeScript fails to inform you about wrong use of getter?" /><published>2019-03-27T00:00:00+00:00</published><updated>2019-03-27T00:00:00+00:00</updated><id>http://th3mon.github.io//typescript,/javascript/2019/03/27/why-ts-fails-to-inform-you-about-wrong-use-of-getter</id><content type="html" xml:base="http://th3mon.github.io//typescript,/javascript/2019/03/27/why-ts-fails-to-inform-you-about-wrong-use-of-getter.html">&lt;h2 id=&quot;what-happend&quot;&gt;What Happend&lt;/h2&gt;

&lt;p&gt;While refactoring Switcher class in one of my projects I got error:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;error TS2349: Cannot invoke an expression whose type lacks a call signature. Type ‘Switcher’ has no compatible call signatures.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;“What the hell?!” - I thought. I looked into given line number of the error log. It looked like: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;path/to/file/switcher.ts(line,column)&lt;/code&gt; and in that line and column was only getter… I googled entire error message and found nothing that could help me. The solution is very easy and that is the reason of no solution on internet. But I couldn’t figure out how to fix the problem.&lt;/p&gt;

&lt;p&gt;I asked my collegue to look into the code, which looks similiar to:&lt;/p&gt;

&lt;div class=&quot;language-ts highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Switcher&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kr&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;kd&quot;&gt;constructor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kr&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;nx&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`Switcher &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; was clicked.`&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kd&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Page&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;get&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;switcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;():&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Switcher&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Switcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;nx&quot;&gt;toggleSwitcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;switcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;page&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Page&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;

&lt;span class=&quot;nx&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;toggleSwitcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;He found problem and solution very quickly. Do you know the solution? YES! In &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;toggleSwitcher()&lt;/code&gt; method &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;switcher&lt;/code&gt; is called but this is a getter not the method. When I got rid of brackets it worked fine. If I didn’t call for help I could wrestle with this for hour or more.&lt;/p&gt;

&lt;h2 id=&quot;the-next-day&quot;&gt;The next day&lt;/h2&gt;

&lt;p&gt;The next day I struggled with the fact I didn’t realize what was the reason behind the error. Why I didn’t notice that I called getter as a method?
I wrote the same code in JS.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Switcher&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;constructor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;nx&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;nx&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;`Switcher &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; was clicked.`&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kd&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Page&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kd&quot;&gt;get&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;switcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Switcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;nx&quot;&gt;toggleSwitcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;switcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;().&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;page&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;Page&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;

&lt;span class=&quot;nx&quot;&gt;page&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;toggleSwitcher&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;It logged me a message:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Uncaught TypeError: this.switcher is not a function
    at Page.toggleSwitcher (&lt;anonymous&gt;:17:10)
    at &lt;anonymous&gt;:23:6&lt;/anonymous&gt;&lt;/anonymous&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Wow! This message clearly said that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this.switcher&lt;/code&gt; is not a function. Not some lack of a signature like it was in TS error message! If TS could log this instead of crap it give to me, I think I wouldn’t ask anybody for help! &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this.switcher is not a function&lt;/code&gt;! Just like that! Bad TypeScript! BAAAD!!!&lt;/p&gt;</content><author><name></name></author><category term="typescript," /><category term="javascript" /><summary type="html">What Happend</summary></entry><entry><title type="html">Going with Ionic 3 in My Cookbook app</title><link href="http://th3mon.github.io//mycookbook/2019/01/04/going-with-ionic-3-in-my-cookbook-app.html" rel="alternate" type="text/html" title="Going with Ionic 3 in My Cookbook app" /><published>2019-01-04T00:00:00+00:00</published><updated>2019-01-04T00:00:00+00:00</updated><id>http://th3mon.github.io//mycookbook/2019/01/04/going-with-ionic-3-in-my-cookbook-app</id><content type="html" xml:base="http://th3mon.github.io//mycookbook/2019/01/04/going-with-ionic-3-in-my-cookbook-app.html">&lt;h2 id=&quot;my-cookbook&quot;&gt;My Cookbook&lt;/h2&gt;

&lt;p&gt;My Cookbook is a digital cookbook and pantry.&lt;/p&gt;

&lt;p&gt;In the Pantry, you can track the number of your ingredients.&lt;/p&gt;

&lt;p&gt;Based on the contents of your Pantry Cookbook shows which dish you can prepare immediately. Dishes are marked when there is lack of some ingredients. There is shown which ingredient is lack of and how many of it.&lt;/p&gt;

&lt;p&gt;I used &lt;a href=&quot;https://ionicframework.com/&quot;&gt;Ionic&lt;/a&gt; v1.&lt;/p&gt;

&lt;h2 id=&quot;migration-from-ionic-v1-to-v3&quot;&gt;Migration from &lt;a href=&quot;https://ionicframework.com/&quot;&gt;Ionic&lt;/a&gt; v1 to v3&lt;/h2&gt;

&lt;p&gt;I think &lt;a href=&quot;https://ionicframework.com/&quot;&gt;Ionic&lt;/a&gt; v3 is stable version of this framework and I will use it for app. I don’t want go with the newest 4th version for now. It has RC when I publish this post. I will struggle with many new things for me in v3 like “new” &lt;a href=&quot;https://angular.io/&quot;&gt;Angular&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I will build app upon one of the templates called &lt;strong&gt;super&lt;/strong&gt;. So I generated app with this template and then I will add functionalities from old code to the new one.&lt;/p&gt;

&lt;h2 id=&quot;repo&quot;&gt;Repo&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bitbucket.org/th3mon/my-cookbook-2/src/master/&quot;&gt;My Cookbook&lt;/a&gt; repo is on &lt;a href=&quot;https://bitbucket.org/&quot;&gt;Bitbucket&lt;/a&gt;. It is public so you can go there and look into my code.&lt;/p&gt;</content><author><name></name></author><category term="MyCookbook" /><summary type="html">My Cookbook</summary></entry><entry><title type="html">How I fixed the issue with using SimpleDebugger in a browser</title><link href="http://th3mon.github.io//simpledebugger/2018/04/09/fix-cant-use-by-script-tag.html" rel="alternate" type="text/html" title="How I fixed the issue with using SimpleDebugger in a browser" /><published>2018-04-09T00:00:00+00:00</published><updated>2018-04-09T00:00:00+00:00</updated><id>http://th3mon.github.io//simpledebugger/2018/04/09/fix-cant-use-by-script-tag</id><content type="html" xml:base="http://th3mon.github.io//simpledebugger/2018/04/09/fix-cant-use-by-script-tag.html">&lt;h2 id=&quot;i-made-a-mistake&quot;&gt;I made a mistake&lt;/h2&gt;

&lt;p&gt;I configured &lt;a href=&quot;https://webpack.github.io/&quot;&gt;Webpack&lt;/a&gt; for an app, not for library and that was the mistake I made.
&lt;a href=&quot;http://krasimirtsonev.com/blog/article/javascript-library-starter-using-webpack-es6&quot;&gt;Start your own JavaScript library using webpack and ES6&lt;/a&gt; post was very helpful and &lt;a href=&quot;https://webpack.js.org/guides/author-libraries/&quot;&gt;Authoring Libraries&lt;/a&gt; from Webpack documentation.
I changed &lt;a href=&quot;https://webpack.github.io/&quot;&gt;Webpack&lt;/a&gt;’s configuration. &lt;a href=&quot;https://github.com/th3mon/simple-debugger&quot;&gt;SimpleDebugger&lt;/a&gt; can be used as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag in a browser.&lt;/p&gt;

&lt;h2 id=&quot;what-else-i-changed&quot;&gt;What else I changed&lt;/h2&gt;

&lt;h3 id=&quot;i-extracted-logger&quot;&gt;I extracted Logger&lt;/h3&gt;

&lt;p&gt;I changed conception and &lt;a href=&quot;https://github.com/th3mon/simple-debugger&quot;&gt;SimpleDebugger&lt;/a&gt; is whole library now.
For now, it has only Logger module.
Logger is tool for logging the messages like &lt;a href=&quot;https://github.com/th3mon/simple-debugger&quot;&gt;SimpleDebugger&lt;/a&gt; was.
So functionally nothing is changed.&lt;/p&gt;

&lt;h3 id=&quot;classnames-refactor&quot;&gt;ClassNames refactor&lt;/h3&gt;

&lt;p&gt;I refactored ClassNames and every class is written in &lt;a href=&quot;http://wiki.c2.com/?KebabCase&quot;&gt;kebab-case&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;demo&quot;&gt;Demo&lt;/h3&gt;

&lt;p&gt;I’ve changed code &lt;a href=&quot;https://rawgit.com/th3mon/simple-debugger/develop/index.html&quot;&gt;Demo&lt;/a&gt;.
&lt;a href=&quot;https://github.com/th3mon/simple-debugger&quot;&gt;SimpleDebugger&lt;/a&gt; is loaded as a global variable.
You can play with it, e.g.:&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;myLogger&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;SimpleDebugger&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;Logger&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

&lt;span class=&quot;nx&quot;&gt;myLogger&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;Testing... Testing...&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</content><author><name></name></author><category term="SimpleDebugger" /><summary type="html">I made a mistake</summary></entry><entry><title type="html">Code Coverage</title><link href="http://th3mon.github.io//projects/simpledebugger/code-coverage/2018/02/19/code-coverage.html" rel="alternate" type="text/html" title="Code Coverage" /><published>2018-02-19T00:00:00+00:00</published><updated>2018-02-19T00:00:00+00:00</updated><id>http://th3mon.github.io//projects/simpledebugger/code-coverage/2018/02/19/code-coverage</id><content type="html" xml:base="http://th3mon.github.io//projects/simpledebugger/code-coverage/2018/02/19/code-coverage.html">&lt;h2 id=&quot;code-coverage-in-jest&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Code_coverage&quot;&gt;Code Coverage&lt;/a&gt; in &lt;a href=&quot;https://facebook.github.io/jest/&quot;&gt;Jest&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Code_coverage&quot;&gt;Code Coverage&lt;/a&gt; is built in &lt;a href=&quot;https://facebook.github.io/jest/&quot;&gt;Jest&lt;/a&gt;.
Only what is needed to do is &lt;a href=&quot;https://facebook.github.io/jest/docs/en/cli.html#coverage&quot;&gt;give &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--coverage&lt;/code&gt; parameter&lt;/a&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;jest --coverage
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;reports&quot;&gt;Reports&lt;/h2&gt;

&lt;p&gt;Reports are generated as statical sites which are very readable.
Report sites are linked in a way that you can click on the names of files to get more detailed reports.&lt;/p&gt;

&lt;p&gt;In detailed reports, you can notice which lines are covered and if all variants of code are covered.&lt;/p&gt;

&lt;p&gt;Reports are sortable. You can sort’em by click on the header in the report table.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/istanbuljs/nyc/&quot;&gt;Istanbul&lt;/a&gt; is used under &lt;a href=&quot;https://facebook.github.io/jest/&quot;&gt;Jest&lt;/a&gt; to generate &lt;a href=&quot;https://en.wikipedia.org/wiki/Code_coverage&quot;&gt;Code Coverage&lt;/a&gt; reports.&lt;/p&gt;

&lt;h2 id=&quot;configuration&quot;&gt;Configuration&lt;/h2&gt;

&lt;p&gt;I didn’t do any configuration. I hadn’t to!&lt;/p&gt;

&lt;h2 id=&quot;npm-script&quot;&gt;npm script&lt;/h2&gt;

&lt;p&gt;I wrote npm script to run &lt;a href=&quot;https://en.wikipedia.org/wiki/Code_coverage&quot;&gt;Code Coverage&lt;/a&gt; on watch:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&quot;test:coverage&quot;: &quot;jest --watch --coverage&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;things-to-do&quot;&gt;Things to do&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Create github page&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;things-i-done&quot;&gt;Things I done&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;add Code Coverage&lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><category term="projects" /><category term="SimpleDebugger" /><category term="code-coverage" /><summary type="html">Code Coverage in Jest</summary></entry><entry><title type="html">Continuous Integration</title><link href="http://th3mon.github.io//projects/simpledebugger/ci/continuous-integration/2018/02/16/continuous-integration.html" rel="alternate" type="text/html" title="Continuous Integration" /><published>2018-02-16T00:00:00+00:00</published><updated>2018-02-16T00:00:00+00:00</updated><id>http://th3mon.github.io//projects/simpledebugger/ci/continuous-integration/2018/02/16/continuous-integration</id><content type="html" xml:base="http://th3mon.github.io//projects/simpledebugger/ci/continuous-integration/2018/02/16/continuous-integration.html">&lt;h2 id=&quot;why-simple-project-as-simpledebugger-needs-ci&quot;&gt;Why simple project as &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt; needs &lt;a href=&quot;https://en.wikipedia.org/wiki/Continuous_integration&quot;&gt;CI&lt;/a&gt;?&lt;/h2&gt;

&lt;p&gt;Answer is simple.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;I what to learn something new&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Continuous_integration&quot;&gt;CI&lt;/a&gt; is not so much known topic for me&lt;/li&gt;
  &lt;li&gt;for fun!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;why-i-chose-circleci&quot;&gt;Why I chose &lt;a href=&quot;https://circleci.com/&quot;&gt;CircleCI&lt;/a&gt;?&lt;/h2&gt;

&lt;h3 id=&quot;i-didnt-want-use-travisci&quot;&gt;I didn’t want use &lt;a href=&quot;https://travis-ci.org/&quot;&gt;TravisCi&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;I saw &lt;a href=&quot;https://travis-ci.org/&quot;&gt;TravisCi&lt;/a&gt; in many projects on &lt;a href=&quot;https://github.com/&quot;&gt;Github&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;I think I will use it in some other project&lt;/li&gt;
  &lt;li&gt;I wanted something new for me&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;circleci&quot;&gt;&lt;a href=&quot;https://circleci.com/&quot;&gt;CircleCI&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;It is very easy to start working with it.
I don’t quite remember what things must be done but there is the reason for it.
&lt;a href=&quot;https://circleci.com/&quot;&gt;CircleCI&lt;/a&gt; needs a config file and connection with project repository.
Of course, you need to register on &lt;a href=&quot;https://circleci.com/&quot;&gt;CircleCI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I made mistake and &lt;a href=&quot;https://circleci.com/&quot;&gt;CircleCI&lt;/a&gt; gives me some errors at the start.
It was my fault.
I didn’t changed needed version of nodeJS in config file.
When I fixed it &lt;a href=&quot;https://circleci.com/&quot;&gt;CircleCI&lt;/a&gt; just started!&lt;/p&gt;

&lt;p&gt;I added integration with &lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt;.
When I commit something I get a message on &lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt; about the results from &lt;a href=&quot;https://circleci.com/&quot;&gt;CircleCI&lt;/a&gt;.
It is AWESOME!&lt;/p&gt;

&lt;p&gt;I added badges to &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger/blob/master/README.md&quot;&gt;README&lt;/a&gt; file.
It shows the status of branches &lt;strong&gt;master&lt;/strong&gt; and &lt;strong&gt;develop&lt;/strong&gt;.&lt;/p&gt;

&lt;h4 id=&quot;fun-fun-function&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q&quot;&gt;Fun Fun Function&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;I saw series about &lt;a href=&quot;https://en.wikipedia.org/wiki/Continuous_integration&quot;&gt;CI&lt;/a&gt; on &lt;a href=&quot;https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q&quot;&gt;Fun Fun Function&lt;/a&gt; channel on &lt;a href=&quot;https://youtube.com/&quot;&gt;Youtube&lt;/a&gt;.
You can watch it too: &lt;a href=&quot;https://youtu.be/ymPOI4gWQFY&quot;&gt;Continuous Integration - What’s the point?&lt;/a&gt;.
&lt;a href=&quot;https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q&quot;&gt;Fun Fun Function&lt;/a&gt; is great show of &lt;a href=&quot;https://twitter.com/mpjme&quot;&gt;@mpj&lt;/a&gt;.
He is talking a lot about JavaScript but it isn’t only one thing which he talks about.
You definitely should give him a try and watch some movie.&lt;/p&gt;

&lt;h2 id=&quot;things-to-do&quot;&gt;Things to do&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;add Code Coverage&lt;/li&gt;
  &lt;li&gt;Create github page&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;things-i-done&quot;&gt;Things I done&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;add CI
    &lt;ul&gt;
      &lt;li&gt;integration with &lt;a href=&quot;https://circleci.com/&quot;&gt;CircleCI&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;integration with &lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;badges in &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger/blob/master/README.md&quot;&gt;README&lt;/a&gt; file&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><category term="projects" /><category term="SimpleDebugger" /><category term="ci" /><category term="continuous-integration" /><summary type="html">Why simple project as SimpleDebugger needs CI?</summary></entry><entry><title type="html">Demo Page and scrollable Main Container</title><link href="http://th3mon.github.io//projects/simpledebugger/2018/02/10/demo-page-and-scrollable-main-container.html" rel="alternate" type="text/html" title="Demo Page and scrollable Main Container" /><published>2018-02-10T00:00:00+00:00</published><updated>2018-02-10T00:00:00+00:00</updated><id>http://th3mon.github.io//projects/simpledebugger/2018/02/10/demo-page-and-scrollable-main-container</id><content type="html" xml:base="http://th3mon.github.io//projects/simpledebugger/2018/02/10/demo-page-and-scrollable-main-container.html">&lt;h2 id=&quot;demo-page&quot;&gt;Demo Page&lt;/h2&gt;

&lt;p&gt;I prepared Demo Page for testing and adding new features purposes.&lt;/p&gt;

&lt;p&gt;I prepared two &lt;a href=&quot;https://www.npmjs.com/&quot;&gt;npm&lt;/a&gt; scripts:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;the first for building Demo Page files - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build:demo&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;the second for running the dev server - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;start:demo&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scripts using &lt;a href=&quot;https://webpack.github.io/&quot;&gt;Webpack&lt;/a&gt; which use config file prepared for Demo Page. I just duplicated &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;config/dev.js&lt;/code&gt; file and made some changes in it (&lt;a href=&quot;https://github.com/th3mon/SimpleDebugger/commit/1692fccff90595885146f9ad0cafe25888bceeae#diff-2be2302728160105338b268d775be73a&quot;&gt;Added Demo - config file&lt;/a&gt;).&lt;/p&gt;

&lt;h2 id=&quot;scrollable-main-container&quot;&gt;Scrollable Main Container&lt;/h2&gt;

&lt;h3 id=&quot;the-problem-with-height-of-main-container&quot;&gt;The problem with height of Main Container&lt;/h3&gt;

&lt;p&gt;In Main Container appears all messages. When a message was added or deleted then the height of Main Container actualized. It was possible to cover all page’s content when Main Container had many messages.&lt;/p&gt;

&lt;h3 id=&quot;how-did-i-fix-the-problem&quot;&gt;How did I fix the problem?&lt;/h3&gt;

&lt;p&gt;I thought that the Main Container should have a fixed height and that it should be scrollable. This solved the problem of covering the content of the page by &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;things-to-do&quot;&gt;Things to do&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;add CI&lt;/li&gt;
  &lt;li&gt;add Code Coverage&lt;/li&gt;
  &lt;li&gt;Create github page&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;things-i-done&quot;&gt;Things I done&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Create demo page&lt;/li&gt;
  &lt;li&gt;Fix Main Container: Now it enlarges and would cover all window view&lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><category term="projects" /><category term="SimpleDebugger" /><summary type="html">Demo Page</summary></entry><entry><title type="html">Refactoring: use ES6</title><link href="http://th3mon.github.io//projects/simpledebugger/refactoring/es6/2018/01/23/refactoring-es6.html" rel="alternate" type="text/html" title="Refactoring: use ES6" /><published>2018-01-23T00:00:00+00:00</published><updated>2018-01-23T00:00:00+00:00</updated><id>http://th3mon.github.io//projects/simpledebugger/refactoring/es6/2018/01/23/refactoring-es6</id><content type="html" xml:base="http://th3mon.github.io//projects/simpledebugger/refactoring/es6/2018/01/23/refactoring-es6.html">&lt;h2 id=&quot;es6&quot;&gt;ES6&lt;/h2&gt;

&lt;p&gt;When I started &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt; 5 years ago the &lt;a href=&quot;https://en.wikipedia.org/wiki/ECMAScript&quot;&gt;ES5&lt;/a&gt; was a standard. So I refactored code to ES6 using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;class&lt;/code&gt; and moving stuff to separate modules. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;index.js&lt;/code&gt; file is only start point code. Its grabbing all needed files and exports the main module which is &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;class&quot;&gt;Class&lt;/h3&gt;

&lt;p&gt;I don’t really like this thing because it causes confusion about objects in JavaScript. I hope it is well known that JavaScript has prototype based architecture. There are no classes in JS.&lt;/p&gt;

&lt;p&gt;I love prototypes. It is so different from class object-oriented architecture. I feel prototypes gives developer more freedom than classes. Prototypes are more flexible.&lt;/p&gt;

&lt;p&gt;Sure it is cool to have some shortcut to define &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Constructors&lt;/code&gt; (I will write post what I mean &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;Constructors&quot;&lt;/code&gt; in near future or you can read about it: &lt;a href=&quot;http://exploringjs.com/es6/ch_core-features.html#sec_from-constr-to-class&quot;&gt;From constructors to classes&lt;/a&gt;) and I really don’t know why the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;class&lt;/code&gt; is chosen.&lt;/p&gt;

&lt;p&gt;I used it in &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt; and it works fine.&lt;/p&gt;

&lt;h3 id=&quot;modules&quot;&gt;&lt;a href=&quot;http://exploringjs.com/es6/ch_modules.html&quot;&gt;Modules&lt;/a&gt;&lt;/h3&gt;

&lt;p&gt;I moved &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt; Constructor and &lt;strong&gt;removeNode()&lt;/strong&gt; to separate files.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt; has its own file and it exports only this module.&lt;/p&gt;

&lt;p&gt;I moved &lt;strong&gt;removeNode()&lt;/strong&gt; to &lt;strong&gt;dom.js&lt;/strong&gt;. This function is not the default of this module. I think &lt;strong&gt;dom&lt;/strong&gt; module will not have any default. It will be the collection of functions to do stuff on DOM.&lt;/p&gt;

&lt;h2 id=&quot;satisfy-todo-notes&quot;&gt;Satisfy TODO notes&lt;/h2&gt;

&lt;p&gt;I added some TODO notes in the past and well, I satisfied them.&lt;/p&gt;

&lt;p&gt;One of those notes was about adding version a number to the bundles. I searched for some plugins for &lt;a href=&quot;https://webpack.github.io/&quot;&gt;Webpack&lt;/a&gt;. There are some on &lt;a href=&quot;https://github.com/&quot;&gt;Github&lt;/a&gt; but I realized I don’t need a plugin. It is really simple to do that. You can grab the version of the project from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;package.json&lt;/code&gt; file and put to filename and source map.&lt;/p&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;webpack&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;webpack&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;path&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;ExtractTextPlugin&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;extract-text-webpack-plugin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HtmlWebpackPlugin&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;html-webpack-plugin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HtmlWebpackHarddiskPlugin&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;html-webpack-harddisk-plugin&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;version&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;../package.json&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;).&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;nx&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;exports&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;devtool&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;cheap-module-source-map&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;./src/index.js&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;output&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;resolve&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;__dirname&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;../dist&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;filename&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;`[name].&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;.bundle.js`&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;sourceMapFilename&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;`[name].&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;.map`&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;rules&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;enforce&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;pre&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sr&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\.&lt;/span&gt;&lt;span class=&quot;sr&quot;&gt;js$/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;exclude&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sr&quot;&gt;/node_modules/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;loader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;eslint-loader&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sr&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\.&lt;/span&gt;&lt;span class=&quot;sr&quot;&gt;js$/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;exclude&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sr&quot;&gt;/node_modules/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;loader&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;babel-loader&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
              &lt;span class=&quot;na&quot;&gt;presets&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
            &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
          &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sr&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\.&lt;/span&gt;&lt;span class=&quot;sr&quot;&gt;css$/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;ExtractTextPlugin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;extract&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;fallback&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;style-loader&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;css-loader&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;
          &lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;test&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sr&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\.&lt;/span&gt;&lt;span class=&quot;sr&quot;&gt;scss$/&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;na&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;ExtractTextPlugin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;extract&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;fallback&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;style-loader&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;na&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;css-loader&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;sass-loader&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
          &lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;plugins&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;ExtractTextPlugin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;filename&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;[name].bundle.css&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;}),&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HtmlWebpackPlugin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;SimpleDebugger&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;na&quot;&gt;alwaysWriteToDisk&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;
      &lt;span class=&quot;p&quot;&gt;}),&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;HtmlWebpackHarddiskPlugin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;webpack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;NamedModulesPlugin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt;
      &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nx&quot;&gt;webpack&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nx&quot;&gt;HotModuleReplacementPlugin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;],&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;devServer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;contentBase&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;./dist&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;port&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;7777&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;host&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;localhost&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;hot&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;noInfo&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;na&quot;&gt;stats&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;minimal&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;'&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And that’s it! Simple enough!&lt;/p&gt;

&lt;h2 id=&quot;added-bump-version-npm-script&quot;&gt;Added bump version &lt;a href=&quot;https://www.npmjs.com/&quot;&gt;npm&lt;/a&gt; script&lt;/h2&gt;

&lt;p&gt;I added &lt;a href=&quot;https://www.npmjs.com/&quot;&gt;npm&lt;/a&gt; script for bumping the version number. I know this will be helpful. I used it in my work, so this is tested on the live object!&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&quot;version-bump&quot;: &quot;npm run set-tag-prefix &amp;amp;&amp;amp; npm version&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;things-to-do&quot;&gt;Things to do&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Fix MainContainer: Now it enlarges and would cover all window view&lt;/li&gt;
  &lt;li&gt;Create demo page&lt;/li&gt;
  &lt;li&gt;Create github page&lt;/li&gt;
  &lt;li&gt;add CI&lt;/li&gt;
  &lt;li&gt;add Code Coverage&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;things-i-done&quot;&gt;Things I done&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Refactored Code to ES6&lt;/li&gt;
  &lt;li&gt;Moved code to separate modules&lt;/li&gt;
  &lt;li&gt;Satisfied TODO notes&lt;/li&gt;
  &lt;li&gt;created &lt;a href=&quot;https://www.npmjs.com/&quot;&gt;npm&lt;/a&gt; script for bumping version&lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><category term="projects" /><category term="SimpleDebugger" /><category term="refactoring" /><category term="es6" /><summary type="html">ES6</summary></entry><entry><title type="html">Unit Tests helped rid of jQuery</title><link href="http://th3mon.github.io//projects/simpledebugger/jest/unittests/2018/01/08/ut-helped-rid-of-jquery.html" rel="alternate" type="text/html" title="Unit Tests helped rid of jQuery" /><published>2018-01-08T00:00:00+00:00</published><updated>2018-01-08T00:00:00+00:00</updated><id>http://th3mon.github.io//projects/simpledebugger/jest/unittests/2018/01/08/ut-helped-rid-of-jquery</id><content type="html" xml:base="http://th3mon.github.io//projects/simpledebugger/jest/unittests/2018/01/08/ut-helped-rid-of-jquery.html">&lt;h2 id=&quot;xmas&quot;&gt;Xmas&lt;/h2&gt;

&lt;p&gt;I wrote some code during Xmas. Little but very important. I added &lt;a href=&quot;http://facebook.github.io/jest/&quot;&gt;Jest&lt;/a&gt; to running Unit Tests. That helped me to rid of &lt;a href=&quot;https://jquery.com/&quot;&gt;jQuery&lt;/a&gt;. I learned again some DOM API methods which I forgot that exist.&lt;/p&gt;

&lt;h2 id=&quot;unit-tests&quot;&gt;Unit Tests&lt;/h2&gt;

&lt;p&gt;Running tests with &lt;a href=&quot;http://facebook.github.io/jest/&quot;&gt;Jest&lt;/a&gt; is very delightful.
All you need to do is on &lt;a href=&quot;http://facebook.github.io/jest/&quot;&gt;Jest&lt;/a&gt; documentation website. Adding &lt;a href=&quot;http://facebook.github.io/jest/&quot;&gt;Jest&lt;/a&gt; was a very simple task to do.
When all config was ready I wrote tests which tested existing features. Then I started another task…&lt;/p&gt;

&lt;h2 id=&quot;rid-of-jquery&quot;&gt;Rid of &lt;a href=&quot;https://jquery.com/&quot;&gt;jQuery&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;…which was rid of &lt;a href=&quot;https://jquery.com/&quot;&gt;jQuery&lt;/a&gt;.
One of the goals from the start of mine comeback to &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt; project was rid of &lt;a href=&quot;https://jquery.com/&quot;&gt;jQuery&lt;/a&gt;.
It is not reason that I don’t like &lt;a href=&quot;https://jquery.com/&quot;&gt;jQuery&lt;/a&gt;. I want to &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt; to be independent.&lt;/p&gt;

&lt;p&gt;With unit tests rid of dependence was easy. I always knew when I broke something and detected which feature works wrong and I fixed it.&lt;/p&gt;

&lt;h2 id=&quot;future-of-simpledebugger&quot;&gt;Future of &lt;a href=&quot;https://github.com/th3mon/SimpleDebugger&quot;&gt;SimpleDebugger&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;Now I will need refactor code to ES6 and prepare some demo page.&lt;/p&gt;

&lt;p&gt;I prepared &lt;a href=&quot;https://trello.com/b/kjFt3yJd/simpledebugger&quot;&gt;Trello Board&lt;/a&gt; for this project.&lt;/p&gt;

&lt;p&gt;On this board I will add ideas for some new features.&lt;/p&gt;

&lt;h2 id=&quot;things-to-do&quot;&gt;Things to do&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Demo site&lt;/li&gt;
  &lt;li&gt;think about new features&lt;/li&gt;
  &lt;li&gt;Setup use linter&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;things-i-done&quot;&gt;Things I done&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;changed path to dist folder&lt;/li&gt;
  &lt;li&gt;Unit Tests
    &lt;ul&gt;
      &lt;li&gt;now I can run Unit Tests with &lt;a href=&quot;http://facebook.github.io/jest/&quot;&gt;Jest&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;added Unit Tests&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;added [linter] for JS&lt;/li&gt;
  &lt;li&gt;rid of &lt;a href=&quot;https://jquery.com/&quot;&gt;jQuery&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;added .editorconfig&lt;/li&gt;
&lt;/ul&gt;</content><author><name></name></author><category term="projects" /><category term="SimpleDebugger" /><category term="Jest" /><category term="UnitTests" /><summary type="html">Xmas</summary></entry></feed>