<?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: Sibaram Sahu</title>
    <description>The latest articles on DEV Community by Sibaram Sahu (@sibaram-sahu).</description>
    <link>https://dev.to/sibaram-sahu</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%2F292906%2Fdc6c7ef4-5633-4dc3-be4a-3278b8d2e282.jpeg</url>
      <title>DEV Community: Sibaram Sahu</title>
      <link>https://dev.to/sibaram-sahu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sibaram-sahu"/>
    <language>en</language>
    <item>
      <title>Common mongo DB queries</title>
      <dc:creator>Sibaram Sahu</dc:creator>
      <pubDate>Thu, 20 Jan 2022 07:05:11 +0000</pubDate>
      <link>https://dev.to/sibaram-sahu/common-mongo-db-queries-5b60</link>
      <guid>https://dev.to/sibaram-sahu/common-mongo-db-queries-5b60</guid>
      <description>&lt;h2&gt;
  
  
  Mongo DB
&lt;/h2&gt;

&lt;p&gt;Mongo DB is a document oriented, cross-platform NoSQL Database.&lt;/p&gt;

&lt;h3&gt;
  
  
  Version check
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;mongod&lt;/span&gt; &lt;span class="c1"&gt;--version&lt;/span&gt;
&lt;span class="n"&gt;mongo&lt;/span&gt; &lt;span class="err"&gt;–&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="k"&gt;version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>New in CSS</title>
      <dc:creator>Sibaram Sahu</dc:creator>
      <pubDate>Mon, 10 Jan 2022 10:09:13 +0000</pubDate>
      <link>https://dev.to/sibaram-sahu/new-in-css-2b1p</link>
      <guid>https://dev.to/sibaram-sahu/new-in-css-2b1p</guid>
      <description>&lt;h2&gt;
  
  
  Declare Variable
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;--global--primary-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#29313e&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--global--primary-color&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  @Supports
&lt;/h2&gt;

&lt;p&gt;It allows you to do the same depending on what CSS properties and values the user browser supports.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="k"&gt;@supports&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;.main-content&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  content-visibility
&lt;/h2&gt;

&lt;p&gt;It is a really cool new CSS feature to improve site performance. It basically works like lazy loading, only not for images but any HTML element. You can use it to keep any part of your site from loading until it becomes visible.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.sec-viewport&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;content-visibility&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Scroll Snap
&lt;/h2&gt;

&lt;p&gt;Scroll snapping gives you the option to lock the user’s viewport to a certain parts or element of your site.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="py"&gt;scroll-snap-type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="n"&gt;mandatory&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  :is and :where
&lt;/h2&gt;

&lt;p&gt;It allow you to reduce repetition in CSS markup by shortening lists of CSS selectors.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* Before */&lt;/span&gt;
&lt;span class="nc"&gt;.main&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nc"&gt;.sidebar&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;
&lt;span class="nc"&gt;.site-footer&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c"&gt;/* markup goes here */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* After */&lt;/span&gt;

&lt;span class="nd"&gt;:is&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;.main&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;.sidebar&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;.site-footer&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c"&gt;/* markup goes here */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nd"&gt;:where&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;.main&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;.sidebar&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;.site-footer&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c"&gt;/* markup goes here */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>css</category>
      <category>webdev</category>
      <category>design</category>
    </item>
    <item>
      <title>Design Pattern in Javascript</title>
      <dc:creator>Sibaram Sahu</dc:creator>
      <pubDate>Thu, 06 Jan 2022 12:08:20 +0000</pubDate>
      <link>https://dev.to/sibaram-sahu/design-pattern-in-node-js-bkl</link>
      <guid>https://dev.to/sibaram-sahu/design-pattern-in-node-js-bkl</guid>
      <description>&lt;h2&gt;
  
  
  What is Design pattern?
&lt;/h2&gt;

&lt;p&gt;A design pattern is a general, reusable solution to a commonly occurring problem.&lt;/p&gt;

&lt;p&gt;Out of all the patterns we are going to look few of them below.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Creational&lt;/em&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Singletone Pattern
&lt;/h3&gt;

&lt;p&gt;Ensure a class only has one instance, and provide a global point to access it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prototype Pattern
&lt;/h3&gt;

&lt;p&gt;Specify the kinds of object to create using prototypical instance, and create new objects by copying the prototype.&lt;/p&gt;

&lt;h3&gt;
  
  
  Factory Pattern
&lt;/h3&gt;

&lt;p&gt;Define an interface for creating an object, but let subclasses decide which class to instantiate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Builder Pattern
&lt;/h3&gt;

&lt;p&gt;Separate the construction of a complex object from its representation so that the same construction process can create different representations.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Structural&lt;/em&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Adapter Pattern
&lt;/h3&gt;

&lt;p&gt;Convert the interface of a class into another client except.&lt;br&gt;
Adapter lets classes work together that couldn’t because of incompatible interfaces.&lt;/p&gt;

&lt;h3&gt;
  
  
  Proxy Pattern
&lt;/h3&gt;

&lt;p&gt;Provide a placeholder for another object to control to access to it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Composite Pattern
&lt;/h3&gt;

&lt;p&gt;Compose objects into tree structures to represent part-whole hierarchies. Composite let clients treat individual objects and compositions of objects uniformly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decorator Pattern
&lt;/h3&gt;

&lt;p&gt;Attach additional responsibilities to an object dynamically. Decorator provide a flexible alternative to subclassing for extending functionality.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Behavioural&lt;/em&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Chain of responsibility
&lt;/h3&gt;

&lt;p&gt;Avoid coupling the sender of a request to its receiver by giving more than one object a change to handle the request.&lt;br&gt;
Chain the receiving objects and pass the request along the chain.&lt;/p&gt;

&lt;h3&gt;
  
  
  Command Pattern
&lt;/h3&gt;

&lt;p&gt;Encapsulate a request as an object, there by letting you parameterise with different requests, queue or log requests and support undoable operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Iterator Pattern
&lt;/h3&gt;

&lt;p&gt;Provide a way to access the element of an aggregate object sequentially without exposing its underlying representation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Observer Pattern
&lt;/h3&gt;

&lt;p&gt;Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Strategy Pattern
&lt;/h3&gt;

&lt;p&gt;Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm very independently  from clients that use it.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>designpattern</category>
    </item>
    <item>
      <title>Difference between Angular versions</title>
      <dc:creator>Sibaram Sahu</dc:creator>
      <pubDate>Sat, 11 Dec 2021 09:25:09 +0000</pubDate>
      <link>https://dev.to/sibaram-sahu/difference-between-angular-versions-4fjl</link>
      <guid>https://dev.to/sibaram-sahu/difference-between-angular-versions-4fjl</guid>
      <description>&lt;p&gt;Difference between angular versions till 11th Dec 2021. &lt;br&gt;
Until now Angular Version 13 released.&lt;/p&gt;

&lt;h2&gt;
  
  
  Angular Js
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;It is referred as Angular 1 version.&lt;/li&gt;
&lt;li&gt;It aim's to simplify the development and testing of application by providing MVC(Model-View-Controller) and MVVM(Model-View-View-Model) architectures.&lt;/li&gt;
&lt;li&gt;It's written in &lt;code&gt;Javascript&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 2
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Angular 2 totally rewritten and used typescript.&lt;/li&gt;
&lt;li&gt;It's supported in mobile.&lt;/li&gt;
&lt;li&gt;You can write in ES6, JS or in Dart.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 3
&lt;/h2&gt;

&lt;p&gt;This version is skipped due to mismatch of @angular/core, @angular/compiler  and &lt;code&gt;@angular/router&lt;/code&gt; libraries.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;@angular/router&lt;/code&gt; was already version 3.x with huge development. So to avoid the confusion they skipped this version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Angular 4
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Reduced the size up to 60%&lt;/li&gt;
&lt;li&gt;Faster compilation&lt;/li&gt;
&lt;li&gt;Better bug fix alerts.&lt;/li&gt;
&lt;li&gt;Supported typescript 2.1 and more. (Earlier it was supporting typescript 1.8)&lt;/li&gt;
&lt;li&gt;No need to write a pattern for email validation. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;*ngIf/else&lt;/code&gt; Now you can use &lt;code&gt;else&lt;/code&gt; as well .&lt;/li&gt;
&lt;li&gt;Renderer 2 in place.&lt;/li&gt;
&lt;li&gt;Animations being pulled out of &lt;code&gt;@angular/core&lt;/code&gt; so as to remove the extra code being imported into our production bundle. Though you can easily add animation by importing &lt;code&gt;{BrowserAnimationsModule} from @angular/platform-browser/animations&lt;/code&gt; into &lt;code&gt;NgModule&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 5
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Compiler Improvements&lt;/li&gt;
&lt;li&gt;RxJS 5.5 support (Added new router life cycle events)&lt;/li&gt;
&lt;li&gt;Angular Forms adds &lt;code&gt;updateOn&lt;/code&gt; Blur / Submit&lt;/li&gt;
&lt;li&gt;Angular Universal State Transfer API and DOM Support.&lt;/li&gt;
&lt;li&gt;By default enabled &lt;code&gt;Build Optimiser&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Internationalised Number, Date, and Currency Pipes&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@angular/http&lt;/code&gt; replaced with &lt;code&gt;@angular/common/http&lt;/code&gt; library.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;HttpModule&lt;/code&gt; is replaced by &lt;code&gt;HttpClientModule&lt;/code&gt; of &lt;code&gt;@angular/common/http&lt;/code&gt; inject the HttpClient service, and remove any &lt;code&gt;map(res =&amp;gt; res.json())&lt;/code&gt; calls, which are no longer needed.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 6
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Its released with Angular CLI 6.X and Angular material 6.X&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;ng update&lt;/code&gt; and &lt;code&gt;ng add&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Angular Elements&lt;/li&gt;
&lt;li&gt;Component Dev Kit (CDK)&lt;/li&gt;
&lt;li&gt;Angular Material Starter Components&lt;/li&gt;
&lt;li&gt;CLI Workspaces&lt;/li&gt;
&lt;li&gt;Schematics&lt;/li&gt;
&lt;li&gt;Library Support&lt;/li&gt;
&lt;li&gt;Tree Shakable Providers&lt;/li&gt;
&lt;li&gt;Animations Performance Improvements&lt;/li&gt;
&lt;li&gt;RxJS v6&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 7
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Its released with Angular CLI 7.X and Angular Material 7.X&lt;/li&gt;
&lt;li&gt;Performance improvements&lt;/li&gt;
&lt;li&gt;Virtual scrolling&lt;/li&gt;
&lt;li&gt;Drag and drops&lt;/li&gt;
&lt;li&gt;Content projection support in angular element&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependency updates&lt;/strong&gt; :
 TypeScript 3.1
 RxJS 6.3
 Added support for Node 10&lt;/li&gt;
&lt;li&gt;Bundle budgets in CLI.&lt;/li&gt;
&lt;li&gt;**CLI Prompts: **The CLI will now prompt users when running common commands like &lt;code&gt;ng new&lt;/code&gt; or &lt;code&gt;ng add @angular/material&lt;/code&gt; to help you discover built-in features like routing or SCSS support. CLI Prompts are also added in Schematics.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 8
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Its released with Angular CLI 8.X and Angular material 8.X&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Differential Loading by Default:&lt;/strong&gt; It is a process by which the browser chooses between modern or legacy JavaScript based on its own capabilities.&lt;/li&gt;
&lt;li&gt;Dynamic Imports for Route Configurations.&lt;/li&gt;
&lt;li&gt;Builder APIs in CLI: It is an exciting feature, using this we can customize angular CLI commands like &lt;code&gt;ng build&lt;/code&gt;, &lt;code&gt;ng test&lt;/code&gt;,and &lt;code&gt;ng run&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Workspace APIs in the CLI&lt;/li&gt;
&lt;li&gt;Web Worker Support&lt;/li&gt;
&lt;li&gt;Angular CLI 8.3.0 has added new UX for an initial app created using ng new.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ng deploy&lt;/code&gt; is added in Angular CLI 8.3.0&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 9
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;It came up with most awaited IVY Compiler.&lt;/li&gt;
&lt;li&gt;Ivy Compiler: From version 9 all applications are moved to Ivy compiler and runtime by default. (In angular 8 it was in opt-in mode). &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It provides the following advantages&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smaller Bundle Size&lt;/li&gt;
&lt;li&gt;Faster Testing&lt;/li&gt;
&lt;li&gt;Better Debugging&lt;/li&gt;
&lt;li&gt;Improved CSS class and style binding&lt;/li&gt;
&lt;li&gt;Improved Type Checking&lt;/li&gt;
&lt;li&gt;Improved build errors&lt;/li&gt;
&lt;li&gt;Improved build times, enabling AOT on by default&lt;/li&gt;
&lt;li&gt;Improved Internationalisation&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;New Options for providedIn property in @Injectable Decorator, In addition to the previous root and module options, you have two additional options.&lt;br&gt;
platform : Specifying providedIn: 'platform' makes the service available in a special singleton platform injector that is shared by all applications on the page.&lt;br&gt;
any : Provides a unique instance in every module (including lazy modules) that injects the token.&lt;br&gt;
Component harnesses&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Angular Material New Component&lt;br&gt;
 Youtube player Component &lt;br&gt;
 Google Maps Component&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TypeScript 3.7 Support &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 10
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Its synchronised with major release Angular CLI and Angular Material 10. &lt;/li&gt;
&lt;li&gt;Date range picker added&lt;/li&gt;
&lt;li&gt;Warnings about CommonJS imports:&lt;/li&gt;
&lt;li&gt;Optional Stricter Settings&lt;/li&gt;
&lt;li&gt;TypeScript 3.9&lt;/li&gt;
&lt;li&gt;TSLib has been updated to v2.0&lt;/li&gt;
&lt;li&gt;TSLint has been updated to v6&lt;/li&gt;
&lt;li&gt;New Default Browser Configuration&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 11
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Popular bug fixes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic font inlining&lt;/strong&gt;: During compile time Angular CLI will download and inline fonts that are being used and linked in the application. Which will make the application more faster.&lt;/li&gt;
&lt;li&gt;Improved build and serve Reporting &amp;amp; Logging&lt;/li&gt;
&lt;li&gt;Updated language service preview based on Ivy&lt;/li&gt;
&lt;li&gt;Updated Hot Module Replacement(HMR) Support:
Angular CLI has now added to support of serving application with HMR. 
Use  &lt;code&gt;ng serve --hmr&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Faster Builds&lt;/li&gt;
&lt;li&gt;Experimental webpack 5 support&lt;/li&gt;
&lt;li&gt;TSLint and Codelyzer are deprecated&lt;/li&gt;
&lt;li&gt;Removed Support of IE9/IE10 and IE Mobile.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 12
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Added Tailwind CSS support.&lt;/li&gt;
&lt;li&gt;Passing context to HTTP Interceptors : No more dirty hacks for passing metadata to HTTP interceptors.&lt;/li&gt;
&lt;li&gt;Now Supports inline Sass in styles property of @Component decorator&lt;/li&gt;
&lt;li&gt;Added support of Tailwind CSS: Now you just need to install tailswindcss package and add &lt;code&gt;tailwind.config.js&lt;/code&gt; to use tailwind CSS&lt;/li&gt;
&lt;li&gt;Nullish Coalescing: power of nullish coalescing is now also available on Angular templates in v12!&lt;/li&gt;
&lt;li&gt;Strict mode is enabled by default&lt;/li&gt;
&lt;li&gt;The Ivy-based Language Service is moving from opt-in to on by default.&lt;/li&gt;
&lt;li&gt;The Ivy-based Language Service is moving from opt-in to on by default.&lt;/li&gt;
&lt;li&gt;Deprecated support for IE 11.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Angular 13
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Creating dynamic components is easy now :
The new API removes the need for &lt;code&gt;ComponentFactoryResolver&lt;/code&gt; being injected into the constructor. Ivy creates the opportunity to instantiate the component with &lt;code&gt;ViewContainerRef.createComponent&lt;/code&gt; without creating an associated factory.&lt;/li&gt;
&lt;li&gt;IE 11 support is removed&lt;/li&gt;
&lt;li&gt;Angular now supports the use of persistent build cache by default for new v13 projects, which results in 68% improvement in build speed.&lt;/li&gt;
&lt;li&gt;RxJS 7.4 is now the default for the new apps. &lt;/li&gt;
&lt;li&gt;Supports TypeScript 4.4&lt;/li&gt;
&lt;li&gt;Accessibility improvements for angular material components&lt;/li&gt;
&lt;li&gt;Dynamically enable/disable validators&lt;/li&gt;
&lt;li&gt;Restore history after canceled navigation&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>angular</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>How angular starts</title>
      <dc:creator>Sibaram Sahu</dc:creator>
      <pubDate>Fri, 10 Dec 2021 10:07:38 +0000</pubDate>
      <link>https://dev.to/sibaram-sahu/how-angular-starts-519j</link>
      <guid>https://dev.to/sibaram-sahu/how-angular-starts-519j</guid>
      <description>&lt;p&gt;How angular starts executing?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;There is file name called angular.json which act like a configuration for the whole application.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Its looks like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;build&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;builder&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@angular-devkit/build-angular:browser&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;options&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;outputPath&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dist/angular-starter&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;index&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src/index.html&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;main&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src/main.ts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;polyfills&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src/polyfills.ts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tsConfig&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tsconfig.app.json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;aot&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;assets&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src/favicon.ico&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src/assets&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;styles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;src/style.css&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The entry point will be mentioned in the "main" section.&lt;br&gt;
Which is "&lt;strong&gt;main.ts&lt;/strong&gt;" here.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;main.ts&lt;/strong&gt; file creates a browser environment to run the app.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;platformBrowserDynamic&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/platform-browser-dynamic&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Along with this it called a function called "&lt;strong&gt;bootstrapModule&lt;/strong&gt;"&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;platformBrowserDynamic&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;bootstrapModule&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;AppModule&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the above code &lt;strong&gt;AppModule&lt;/strong&gt; is getting bootstrapped.&lt;/p&gt;

&lt;p&gt;AppModule is looks like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BrowserModule&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/platform-browser&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;NgModule&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/core&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;AppComponent&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./app.component&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;NgModule&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;declarations&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="nx"&gt;AppComponent&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="na"&gt;imports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="nx"&gt;BrowserModule&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="na"&gt;providers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="na"&gt;entryComponents&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="na"&gt;bootstrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;AppComponent&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;AppModule&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you see in the &lt;strong&gt;AppModule&lt;/strong&gt; &lt;strong&gt;AppComponent&lt;/strong&gt; is getting bootstrapped.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;AppComponent&lt;/strong&gt; is defined in &lt;strong&gt;app.component.ts&lt;/strong&gt; file.&lt;br&gt;
Which looks like below&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Component&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@angular/core&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Component&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;app-root&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;templateUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./app.component.html&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;styleUrls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./app.component.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;AppComponent&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;angular&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These file interacts with the webpage and serves data to it.&lt;/p&gt;

&lt;p&gt;After this its calls &lt;strong&gt;index.html&lt;/strong&gt; which looks like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;  &lt;span class="cp"&gt;&amp;lt;!doctype html&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Angular&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;base&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;app-root&amp;gt;&amp;lt;/app-root&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;The html template of the root component is displayed inside the &lt;code&gt;&amp;lt;app-root&amp;gt;&amp;lt;/app-root&amp;gt;&lt;/code&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>javascript</category>
      <category>programming</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
