<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vasyl Stokolosa</title>
    <description>The latest articles on DEV Community by Vasyl Stokolosa (@shystruk).</description>
    <link>https://dev.to/shystruk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F88376%2F670694f2-0815-43db-8212-1d8cc08943a5.jpg</url>
      <title>DEV Community: Vasyl Stokolosa</title>
      <link>https://dev.to/shystruk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shystruk"/>
    <language>en</language>
    <item>
      <title>React Native Android Currency Formatter</title>
      <dc:creator>Vasyl Stokolosa</dc:creator>
      <pubDate>Wed, 15 Sep 2021 16:06:41 +0000</pubDate>
      <link>https://dev.to/shystruk/react-native-android-currency-formatter-47g0</link>
      <guid>https://dev.to/shystruk/react-native-android-currency-formatter-47g0</guid>
      <description>&lt;p&gt;Hey, Devs!&lt;/p&gt;

&lt;p&gt;I will appreciate any feedback about this package.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/react-native-android-currency-formatter"&gt;https://www.npmjs.com/package/react-native-android-currency-formatter&lt;/a&gt;&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>javascript</category>
      <category>android</category>
    </item>
    <item>
      <title>Web Workers in React + Redux application</title>
      <dc:creator>Vasyl Stokolosa</dc:creator>
      <pubDate>Wed, 24 Oct 2018 23:51:06 +0000</pubDate>
      <link>https://dev.to/shystruk/web-workers-in-react--redux-application-2bgc</link>
      <guid>https://dev.to/shystruk/web-workers-in-react--redux-application-2bgc</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjnrj7gxv8z34f45yuzbx.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjnrj7gxv8z34f45yuzbx.jpeg" alt="Photo by Ben Konfrst on Unsplash"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are interested in using &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Worker/Worker" rel="noopener noreferrer"&gt;Web Workers&lt;/a&gt; in React+Redux application.&lt;/p&gt;

&lt;p&gt;Read this article&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hackernoon.com/web-workers-in-react-redux-application-129274e84a4e" rel="noopener noreferrer"&gt;https://hackernoon.com/web-workers-in-react-redux-application-129274e84a4e&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>discuss</category>
      <category>opensource</category>
    </item>
    <item>
      <title>JavaScript library that provides useful functional programming helpers</title>
      <dc:creator>Vasyl Stokolosa</dc:creator>
      <pubDate>Wed, 10 Oct 2018 22:13:48 +0000</pubDate>
      <link>https://dev.to/shystruk/javascript-library-that-provides-useful-functional-programming-helpers-3ml4</link>
      <guid>https://dev.to/shystruk/javascript-library-that-provides-useful-functional-programming-helpers-3ml4</guid>
      <description>&lt;p&gt;Just curious, have you ever had a moment when you realized that you’ve already written that helper?&lt;/p&gt;

&lt;p&gt;I had, so decided to start collecting them into the package.&lt;br&gt;
Join 😉&lt;/p&gt;

&lt;p&gt;I will appreciate any thoughts and feedbacks.&lt;br&gt;
Thanks!&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/shystruk"&gt;
        shystruk
      &lt;/a&gt; / &lt;a href="https://github.com/shystruk/famulus"&gt;
        famulus
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      JavaScript library that provides useful functional programming helpers. Add your own 👍
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
famulus &lt;a href="https://twitter.com/intent/tweet?hashtags=javascript%20%23helpers%20%23utilities&amp;amp;original_referer=https%3A%2F%2Fpublish.twitter.com%2F&amp;amp;ref_src=twsrc%5Etfw&amp;amp;text=JavaScript%20library%20that%20provides%20a%20useful%20functional%20programming%20helpers.%20Do%20not%20wait%2C%20add%20your%20own%20%F0%9F%94%A7%F0%9F%92%AA&amp;amp;tw_p=tweetbutton&amp;amp;url=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2Ffamulus&amp;amp;via=shystrukk" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/83d4084f7b71558e33b08844da5c773a8657e271/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c2f687474702f736869656c64732e696f2e7376673f7374796c653d736f6369616c" alt="Twitter URL"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://opensource.org/licenses/mit-license.php" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/1e5d6c593654e3673fe4323032b7af9656157b1e/68747470733a2f2f6261646765732e66726170736f66742e636f6d2f6f732f6d69742f6d69742e7376673f763d313033" alt="MIT Licence"&gt;&lt;/a&gt; &lt;a href="https://codecov.io/gh/shystruk/famulus" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/b51eb3b404cc8e7c6b58dee58f10b0cb6487c3c4/68747470733a2f2f636f6465636f762e696f2f67682f736879737472756b2f66616d756c75732f6272616e63682f6d61737465722f67726170682f62616467652e737667" alt="codecov"&gt;&lt;/a&gt; &lt;a href="https://travis-ci.org/shystruk/famulus" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/2796aa3940773be4f4922825f459161e81223f72/68747470733a2f2f7472617669732d63692e6f72672f736879737472756b2f66616d756c75732e7376673f6272616e63683d6d6173746572" alt="Build Status"&gt;&lt;/a&gt;
&lt;a href="https://snyk.io/test/github/shystruk/famulus?targetFile=package.json" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/7300a889b027f1ffe14aab0c2146c0473323b45f/68747470733a2f2f736e796b2e696f2f746573742f6769746875622f736879737472756b2f66616d756c75732f62616467652e7376673f74617267657446696c653d7061636b6167652e6a736f6e" alt="Known Vulnerabilities"&gt;&lt;/a&gt;
&lt;a href="https://badge.fury.io/js/famulus" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/402f13e4c729c69d7c73bb95ccdb926b6f766ef9/68747470733a2f2f62616467652e667572792e696f2f6a732f66616d756c75732e737667" alt="npm version"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;JavaScript library that provides a useful functional programming helpers. Do not wait, fork and add your own 🔧💪&lt;/p&gt;
&lt;h2&gt;
Installation&lt;/h2&gt;
&lt;h4&gt;
npm&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;npm install --save famulus&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;
yarn&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;yarn add famulus --save&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;h4&gt;
ES6 module&lt;/h4&gt;
&lt;div class="highlight highlight-source-js"&gt;&lt;pre&gt;&lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-s1"&gt;famulus&lt;/span&gt; &lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s"&gt;'famulus'&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight highlight-source-js"&gt;&lt;pre&gt;&lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-s1"&gt;helper&lt;/span&gt; &lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s"&gt;'famulus/helper'&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;
Node.js&lt;/h4&gt;
&lt;div class="highlight highlight-source-js"&gt;&lt;pre&gt;&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;famulus&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;require&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'famulus'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="highlight highlight-source-js"&gt;&lt;pre&gt;&lt;span class="pl-k"&gt;const&lt;/span&gt; &lt;span class="pl-s1"&gt;helper&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-en"&gt;require&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-s"&gt;'famulus/helper'&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;
Documentation&lt;/h2&gt;
&lt;h3&gt;
String&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/shystruk/famulus/master/docs/substr.md"&gt;substr&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Object&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/shystruk/famulus/master/docs/objectInterface.md"&gt;objectInterface&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Array&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/shystruk/famulus/master/docs/sortAndAddFirstElement.md"&gt;sortAndAddFirstElement&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/shystruk/famulus/master/docs/isValuesUnique.md"&gt;isValuesUnique&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Date&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/shystruk/famulus/master/docs/dateDifferenceFromNow.md"&gt;dateDifferenceFromNow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/shystruk/famulus/master/docs/dateDifference.md"&gt;dateDifference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Contributing&lt;/h2&gt;
&lt;p&gt;Please read the &lt;a href="https://raw.githubusercontent.com/shystruk/famulus/master/CONTRIBUTING.md"&gt;Contributions Guidelines&lt;/a&gt; before adding your own helper or improvement to code snippets, explanations, etc.&lt;/p&gt;
&lt;h2&gt;
License&lt;/h2&gt;
&lt;p&gt;MIT © &lt;a href="https://about.me/shystruk" rel="nofollow"&gt;Vasyl Stokolosa&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/shystruk/famulus"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>javascript</category>
      <category>discuss</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Review. Do you find it helpful? objectInterface</title>
      <dc:creator>Vasyl Stokolosa</dc:creator>
      <pubDate>Fri, 28 Sep 2018 09:40:24 +0000</pubDate>
      <link>https://dev.to/shystruk/review-do-you-find-it-helpful-objectinterface-2hkg</link>
      <guid>https://dev.to/shystruk/review-do-you-find-it-helpful-objectinterface-2hkg</guid>
      <description>&lt;p&gt;One time I’ve found difficult to find out what data we should send to a server for that or this request. We have not had a docs, so a good solution was to move required keys to an interface and each time you call it you have correct structured data.&lt;/p&gt;

&lt;p&gt;I will appreciate any thoughts and feedbacks.&lt;br&gt;
Thanks!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/shystruk/famulus/blob/master/objectInterface.js" rel="noopener noreferrer"&gt;https://github.com/shystruk/famulus/blob/master/objectInterface.js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fyy3m4su73ppf21oqdy1c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fyy3m4su73ppf21oqdy1c.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>discuss</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Review. Event dispatcher based on the CustomEvent interface</title>
      <dc:creator>Vasyl Stokolosa</dc:creator>
      <pubDate>Tue, 25 Sep 2018 22:01:36 +0000</pubDate>
      <link>https://dev.to/shystruk/review-event-dispatcher-based-on-the-customevent-interface-1b6m</link>
      <guid>https://dev.to/shystruk/review-event-dispatcher-based-on-the-customevent-interface-1b6m</guid>
      <description>&lt;p&gt;I will appreciate some review for CustomEvent package &lt;a href="https://github.com/shystruk/custom-event-js"&gt;https://github.com/shystruk/custom-event-js&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Custom Event Dispatcher provides the ability to communicate inside your application by dispatching events and listening to them. It works in all popular browsers, including Internet Explorer 9 and higher.&lt;/p&gt;

&lt;p&gt;This is one of the best ways to communicate between your components (universal).&lt;/p&gt;

&lt;p&gt;Thanks!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>discuss</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Moving project’s components/services into packages (the separation of concerns)</title>
      <dc:creator>Vasyl Stokolosa</dc:creator>
      <pubDate>Mon, 10 Sep 2018 19:06:09 +0000</pubDate>
      <link>https://dev.to/shystruk/moving-projects-componentsservices-into-packages-the-separation-of-concerns-1jmm</link>
      <guid>https://dev.to/shystruk/moving-projects-componentsservices-into-packages-the-separation-of-concerns-1jmm</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxapcd0vjgubuewo9p5jk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fxapcd0vjgubuewo9p5jk.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whether starting a small project or having a huge one the separation of concerns is going to be a key point for easy maintenance, testability, reusability.&lt;/p&gt;

&lt;p&gt;Why should you move components/services into packages? ☝️&lt;br&gt;
&lt;a href="https://hackernoon.com/moving-projects-components-services-into-packages-the-separation-of-concerns-1f42661eac6e" rel="noopener noreferrer"&gt;Check it out&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>npm</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Integrate Custom Elements into React app</title>
      <dc:creator>Vasyl Stokolosa</dc:creator>
      <pubDate>Fri, 24 Aug 2018 17:33:17 +0000</pubDate>
      <link>https://dev.to/shystruk/integrate-custom-elements-into-react-app-4fj6</link>
      <guid>https://dev.to/shystruk/integrate-custom-elements-into-react-app-4fj6</guid>
      <description>&lt;p&gt;&lt;em&gt;Web Components in React with support in all popular browsers, including IE 11&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--angC8HJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/h5n8ys1mfoy2ktvkv579.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--angC8HJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/h5n8ys1mfoy2ktvkv579.jpeg" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are interested in Custom Elements, check this out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codeburst.io/integrate-custom-elements-into-react-app-ef38eba12905"&gt;https://codeburst.io/integrate-custom-elements-into-react-app-ef38eba12905&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Integration example is here.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i3JOwpme--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/shystruk"&gt;
        shystruk
      &lt;/a&gt; / &lt;a href="https://github.com/shystruk/create-react-redux-app-structure"&gt;
        create-react-redux-app-structure
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Create React + Redux app structure with build configurations ✨
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Create React Redux App Structure &lt;a href="https://twitter.com/intent/tweet?hashtags=reactjs%20%23redux%20%23javascript&amp;amp;original_referer=https%3A%2F%2Fpublish.twitter.com%2F&amp;amp;ref_src=twsrc%5Etfw&amp;amp;text=Start%20your%20project%20fast%20with%20Create%20React%20Redux%20App%20Structure&amp;amp;tw_p=tweetbutton&amp;amp;url=https%3A%2F%2Fgithub.com%2Fshystruk%2Fcreate-react-redux-app-structure&amp;amp;via=shystrukk" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/90bc908826728c0e4261acfff5619fd732c7be2b2a00624fce6363c9a3623c90/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c2f687474702f736869656c64732e696f2e7376673f7374796c653d736f6369616c" alt="Twitter URL"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://opensource.org/licenses/mit-license.php" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/2dfe336febbbab0a18844523c4ed2189c37807005f4cc64f2139d8e74ffdfa6b/68747470733a2f2f6261646765732e66726170736f66742e636f6d2f6f732f6d69742f6d69742e7376673f763d313033" alt="MIT Licence"&gt;&lt;/a&gt; &lt;a href="https://codecov.io/gh/shystruk/create-react-redux-app-structure" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/a62f997ff9d1a185c37e8e71bdc87c2adfce0a8d32e86513d27cc6250c1388cc/68747470733a2f2f636f6465636f762e696f2f67682f736879737472756b2f6372656174652d72656163742d72656475782d6170702d7374727563747572652f6272616e63682f6d61737465722f67726170682f62616467652e737667" alt="codecov"&gt;&lt;/a&gt; &lt;a href="https://travis-ci.org/shystruk/create-react-redux-app-structure" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/7da8e4dd57ad51603839b04fad1d89c7df340e580e7f21e4d37a56588d8470f5/68747470733a2f2f7472617669732d63692e6f72672f736879737472756b2f6372656174652d72656163742d72656475782d6170702d7374727563747572652e7376673f6272616e63683d6d6173746572" alt="Build Status"&gt;&lt;/a&gt; &lt;a href="https://badge.fury.io/js/create-react-redux-app-structure" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/bf0e74306279134707e9b38b92dbc0466eaaf1e09b5cecfc58470b3efde8ed77/68747470733a2f2f62616467652e667572792e696f2f6a732f6372656174652d72656163742d72656475782d6170702d7374727563747572652e737667" alt="npm version"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Create React + Redux app structure with build configurations.&lt;/p&gt;
&lt;h2&gt;
What can I find here?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://expressjs.com/" rel="nofollow"&gt;Express&lt;/a&gt;, Cors&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://reactjs.org/" rel="nofollow"&gt;React&lt;/a&gt; + &lt;a href="https://redux.js.org/" rel="nofollow"&gt;Redux&lt;/a&gt;, ES6, async/await&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements" rel="nofollow"&gt;Web Components&lt;/a&gt; (Custom Elements) integration&lt;/li&gt;
&lt;li&gt;React Router&lt;/li&gt;
&lt;li&gt;Internationalization&lt;/li&gt;
&lt;li&gt;SASS&lt;/li&gt;
&lt;li&gt;PostCSS (autoprefixer), so you do not need -webkit, -moz or other prefixes&lt;/li&gt;
&lt;li&gt;Build script configuration &lt;strong&gt;Development, Staging, Production&lt;/strong&gt; with CDN, &lt;a href="https://www.keycdn.com/support/what-is-cache-busting/" rel="nofollow"&gt;cache-busting&lt;/a&gt; support&lt;/li&gt;
&lt;li&gt;Build script to bundle JS, CSS, with sourcemaps&lt;/li&gt;
&lt;li&gt;Unit tests &lt;a href="https://jestjs.io/" rel="nofollow"&gt;Jest&lt;/a&gt;, &lt;a href="http://airbnb.io/enzyme/" rel="nofollow"&gt;Enzyme&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;E2E &lt;a href="https://www.cypress.io/" rel="nofollow"&gt;Cypress&lt;/a&gt; tests&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eslint.org/" rel="nofollow"&gt;ESLint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ghooks (pre-commit with unit tests and eslint validation)&lt;/li&gt;
&lt;li&gt;Code Coverage (&lt;a href="https://codecov.io" rel="nofollow"&gt;https://codecov.io&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Travis CI runs Unit and E2E tests and report to codecov&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Quick Start&lt;/h2&gt;
&lt;p&gt;Create React + Redux app structure works on macOS, Windows, and Linux
If something doesn’t work, please file an &lt;a href="https://github.com/shystruk/create-react-redux-app-structure/issues/new"&gt;issue&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;
npm&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;npm i -g create-react-redux-app-structure&lt;/code&gt;&lt;/p&gt;
&lt;h4&gt;
yarn&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;yarn add global create-react-redux-app-structure&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;create-react-redux-app-structure my-app
cd my-app/
npm run fast-start
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://localhost:8080/" rel="nofollow"&gt;http://localhost:8080/&lt;/a&gt; will be opened automatically.&lt;/p&gt;
&lt;p&gt;When you are ready to…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/shystruk/create-react-redux-app-structure"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;If you have some experience working with Custom Elements I will appreciate your thoughts and feedbacks 👍&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>customelements</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
