<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Frontend on Thorsten Hans</title>
		<link>https://thorsten-hans.com/tags/frontend/</link>
		<description>Recent content in Frontend on Thorsten Hans</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Wed, 12 Nov 2014 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://thorsten-hans.com/tags/frontend/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Accessing an WebAPI using ADAL.JS and Azure AD within AngularJS</title>
				<link>https://thorsten-hans.com/accessing-an-webapi-using-adal-js-and-azure-ad-within-angularjs/</link>
				<pubDate>Wed, 12 Nov 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/accessing-an-webapi-using-adal-js-and-azure-ad-within-angularjs/</guid>
				<description>&lt;p&gt;Building a secured WebAPI using &lt;em&gt;Azure Active Directory (AAD)&lt;/em&gt; is pretty easy, OWIN middleware allows developers to integrate AuthN in their services quickly.&lt;/p&gt;&#xA;&lt;p&gt;Accessing those API with plain old C# is easy because &lt;em&gt;AAD Authentication Library (ADAL)&lt;/em&gt; for .NET is available for quite a long time (at least what we call a long time in our business :D)&lt;/p&gt;&#xA;&lt;p&gt;During TechEd Europe, Microsoft announced and released the developer preview for &lt;em&gt;ADAL.js&lt;/em&gt;  — a lightweight JavaScript library for integrating AAD authentication into your &lt;em&gt;Single Page Application (SPA)&lt;/em&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>grunt-nuget - Create NuGet packages on macOS and Linux</title>
				<link>https://thorsten-hans.com/grunt-nuget-packaging-for-mac-and-linux/</link>
				<pubDate>Wed, 24 Sep 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/grunt-nuget-packaging-for-mac-and-linux/</guid>
				<description>&lt;p&gt;While building &lt;em&gt;ShareCoffee&lt;/em&gt;, I recognized that building NuGet packages doesn’t work on macOS or Linux. Today I’d the chance to look again into this issue.&lt;/p&gt;&#xA;&lt;p&gt;I’ve used &lt;a href=&#34;https://github.com/spatools/grunt-nuget&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;grunt-nuget&lt;/a&gt;&#xA; for building the NuGet packages for ShareCoffee from within my &lt;a href=&#34;http://www.gruntjs.com&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;GruntJS&lt;/a&gt;&#xA; tasks.&lt;/p&gt;&#xA;&lt;p&gt;Responsible for the fact that I wasn’t able to create the NuGet packages on MacOS or Linux was the &lt;code&gt;.nuspec&lt;/code&gt; file. To build NuGet packages on other operating systems than Windows systems, you’ve to use Unix paths instead of Windows paths.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Use &#39;bower install&#39; on Heroku</title>
				<link>https://thorsten-hans.com/use-bower-install-on-heroku/</link>
				<pubDate>Wed, 24 Sep 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/use-bower-install-on-heroku/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://bower.io&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;bower.io&lt;/a&gt;&#xA; is a fantastic tool for managing client-side dependencies. When you’re deploying a Node.js app to &lt;a href=&#34;http://www.heroku.com&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Heroku&lt;/a&gt;&#xA;, you’ve to add &lt;code&gt;script&lt;/code&gt; to your &lt;code&gt;package.json&lt;/code&gt; file instead to get bower running right after installing your app using git.&lt;/p&gt;&#xA;&lt;p&gt;First, you’ve to ensure that bower is part of your dependencies. Either double-check the &lt;code&gt;dependencies&lt;/code&gt; object within your &lt;code&gt;package.json&lt;/code&gt; or execute&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&#xA;  &lt;div class=&#34;code-toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-lang&#34;&gt;BASH&lt;/span&gt;&#xA;    &lt;button type=&#34;button&#34; class=&#34;code-copy-btn&#34; aria-label=&#34;Copy code to clipboard&#34;&gt;&#xA;      &lt;svg class=&#34;copy-icon&#34; viewBox=&#34;0 0 24 24&#34; width=&#34;14&#34; height=&#34;14&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; aria-hidden=&#34;true&#34;&gt;&#xA;        &lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;&gt;&lt;/rect&gt;&#xA;        &lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;&gt;&lt;/path&gt;&#xA;      &lt;/svg&gt;&#xA;      &lt;span class=&#34;copy-text&#34;&gt;Copy&lt;/span&gt;&#xA;    &lt;/button&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install bower --save&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Somewhere in your &lt;code&gt;package.json&lt;/code&gt; you’ll find another object called &lt;code&gt;scripts&lt;/code&gt; add a dedicated script for &lt;code&gt;postinstall&lt;/code&gt; like shown in the following snippet:&lt;/p&gt;</description>
			</item>
			<item>
				<title>SharePoint.Jasmine — Test your JavaScript directly inside your App</title>
				<link>https://thorsten-hans.com/sharepoint-jasmine-test-your-javascript-directly-inside-your-app/</link>
				<pubDate>Tue, 25 Feb 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/sharepoint-jasmine-test-your-javascript-directly-inside-your-app/</guid>
				<description>&lt;p&gt;Today I’ve published SharePoint.Jasmine on &lt;a href=&#34;https://github.com/ThorstenHans/SharePoint.Jasmine&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;GitHub&lt;/a&gt;&#xA; and &lt;a href=&#34;https://www.nuget.org/packages/SharePoint.Jasmine/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;NuGet&lt;/a&gt;&#xA; which allows you to test your JavaScript code directly inside of a SharePoint App. By installing SharePoint.Jasmine into your project using&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;Install-Package SharePoint.Jasmine&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;All required artifacts for executing JavaScript UnitTests using &lt;a href=&#34;http://jasmine.github.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Jasmine&lt;/a&gt;&#xA; are automatically integrated into your App project. The updated App structure will look like the following&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://thorsten-hans.com/sharepoint-jasmine-test-your-javascript-directly-inside-your-app/images/jasmine-1.png&#34;&#xA;       alt=&#34;SharePoint App structure&#34;&#xA;       title=&#34;SharePoint App structure&#34;&#xA;       width=&#34;365&#34;&#xA;       height=&#34;794&#34;&#xA;       loading=&#34;lazy&#34;&#xA;       decoding=&#34;async&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Most important is the actual test page located in &lt;code&gt;Pages/tests&lt;/code&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>An Introduction to SASS</title>
				<link>https://thorsten-hans.com/an-introduction-to-sass/</link>
				<pubDate>Tue, 18 Feb 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/an-introduction-to-sass/</guid>
				<description>&lt;p&gt;Throughout this post, I&amp;rsquo;ll give you a rough introduction into &lt;a href=&#34;www.sass-lang.com&#34;&gt;SASS&lt;/a&gt;&#xA; as part of my &lt;em&gt;branding SharePoint sites with yeoman&lt;/em&gt; series. See all other posts from this series here.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/from-zero-to-hero-how-we-brand-sharepoint-using-yeoman/&#34;&gt;Introduction&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/yeoman-the-web-development-workflow/&#34;&gt;Yeoman the web development workflow&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-jade/&#34;&gt;An Introduction to Pug (aka Jade)&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-coffeescript/&#34;&gt;An Introduction to CoffeeScript&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;👉🏻 &lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-sass/&#34;&gt;An Introduction to SASS&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;sass&#34;&gt;SASS&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;SASS&lt;/em&gt; (Syntactically Awesome StyleSheets) is a language which compiles into CSS and allows you to write your styles in a comfortable and use all the cool things which CSS is missing like variables, mixins or nested rules.&lt;/p&gt;</description>
			</item>
			<item>
				<title>An Introduction to CoffeeScript</title>
				<link>https://thorsten-hans.com/an-introduction-to-coffeescript/</link>
				<pubDate>Fri, 14 Feb 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/an-introduction-to-coffeescript/</guid>
				<description>&lt;p&gt;A while ago I started a series about how to brand SharePoint sites using the Yeoman web development workflow. With this small introduction to CoffeeScript, I&amp;rsquo;d like to continue the series.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/from-zero-to-hero-how-we-brand-sharepoint-using-yeoman/&#34;&gt;Introduction&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/yeoman-the-web-development-workflow/&#34;&gt;Yeoman the web development workflow&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-jade/&#34;&gt;An Introduction to Pug (aka Jade)&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;👉🏻 &lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-coffeescript/&#34;&gt;An Introduction to CoffeeScript&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-sass/&#34;&gt;An Introduction to SASS&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;em&gt;CoffeeScript&lt;/em&gt; is a small language that compiles into &lt;em&gt;JavaScript&lt;/em&gt;. The initial release of &lt;em&gt;CoffeeScript&lt;/em&gt; was published back in 2009. Since then the language has become more and more popular. The &lt;em&gt;CoffeeScript&lt;/em&gt; source code is hosted on &lt;a href=&#34;https://github.com/jashkenas/coffee-script&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;GitHub&lt;/a&gt;&#xA;, and there is an excellent website (&lt;a href=&#34;http://coffeescript.org&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;coffescript.org&lt;/a&gt;&#xA;) which teaches you all the things you&amp;rsquo;ve to know about the language.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Write your own ShareCoffee AddOns using the yeoman generator</title>
				<link>https://thorsten-hans.com/write-your-own-sharecoffee-addons-using-the-yeoman-generator/</link>
				<pubDate>Fri, 31 Jan 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/write-your-own-sharecoffee-addons-using-the-yeoman-generator/</guid>
				<description>&lt;p&gt;Today I’ve published a new yeoman generator which allows you to create new &lt;em&gt;ShareCoffee&lt;/em&gt; Add-Ons easily. (&lt;a href=&#34;https://github.com/ThorstenHans/generator-sharecoffee-addon&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;view on GitHub&lt;/a&gt;&#xA;) If you haven’t heard of &lt;em&gt;Yeoman&lt;/em&gt;, you should check out its website at &lt;a href=&#34;http://yeoman.io&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;yeoman.io&lt;/a&gt;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;By using such a yeoman generator, you can start building web-apps or –in this case– &lt;em&gt;ShareCoffee&lt;/em&gt; Add-Ons in no time.&lt;/p&gt;&#xA;&lt;p&gt;Moreover, the best advantage is: All these frameworks and tools are based on &lt;em&gt;Node.js&lt;/em&gt; and can be used from any platform running &lt;em&gt;Node.js&lt;/em&gt;. (Also a low budget Chromebook can run &lt;em&gt;Node.js&lt;/em&gt;).&lt;/p&gt;</description>
			</item>
			<item>
				<title>CoffeeScript vs TypeScript vs JavaScript — my thoughts</title>
				<link>https://thorsten-hans.com/coffeescript-vs-typescript-vs-javascript-my-thoughts/</link>
				<pubDate>Wed, 29 Jan 2014 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/coffeescript-vs-typescript-vs-javascript-my-thoughts/</guid>
				<description>&lt;p&gt;Throughout this post, I’d like to share my thoughts on Coffee-, Type- and JavaScript, because many people from the community were asking me for which language they should go or why I’ve chosen CoffeeScript for writing my SharePoint framework ShareCoffee. First of all, I’ve been doing JavaScript for a long, long time. I’ve spent much time reading books on how to write JavaScript code and how to do it well. Here, for example, two (in my opinion essential) books for JavaScript Developers, independent from their skill.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Creating an ExcelServices JavaScript UDF — A working Sample</title>
				<link>https://thorsten-hans.com/creating-excelservices-javascript-udf/</link>
				<pubDate>Mon, 11 Nov 2013 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/creating-excelservices-javascript-udf/</guid>
				<description>&lt;p&gt;&lt;em&gt;Excel Services&lt;/em&gt; in SharePoint 2013 is offering some new functionalities. One of these is a JavaScript User Defined Actions (&lt;strong&gt;UDFs&lt;/strong&gt;). There is currently one a little documentation on MSDN covering this topic. The given MSDN sample contains a small example which didn&amp;rsquo;t work at all. Because a customer would like to see the new features Excel Services are offering in 2013 (including Office 365). I had the choice to discover this feature by myself 🙂.&lt;/p&gt;</description>
			</item>
			<item>
				<title>An Introduction to Pug (aka Jade)</title>
				<link>https://thorsten-hans.com/an-introduction-to-jade/</link>
				<pubDate>Tue, 22 Oct 2013 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/an-introduction-to-jade/</guid>
				<description>&lt;p&gt;&amp;lsquo;An Introduction to &lt;strong&gt;Pug&lt;/strong&gt;&amp;rsquo; is part of my article series &amp;lsquo;Branding SharePoint sites with &lt;strong&gt;yeoman&lt;/strong&gt;&amp;rsquo; see the list of all related articles here.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/from-zero-to-hero-how-we-brand-sharepoint-using-yeoman/&#34;&gt;Introduction&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/yeoman-the-web-development-workflow/&#34;&gt;Yeoman the web development workflow&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;👉🏻&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-jade/&#34;&gt;An Introduction to Pug (aka Jade)&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-coffeescript/&#34;&gt;An Introduction to CoffeeScript&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-sass/&#34;&gt;An Introduction to SASS&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;why-pug-aka-jade&#34;&gt;Why Pug (aka Jade)?&lt;/h2&gt;&#xA;&lt;p&gt;Well, &lt;em&gt;HTML&lt;/em&gt; MasterPages and PageLayouts are great, and this is precisely what we&amp;rsquo;re going to create, but instead of writing the &lt;em&gt;HTML&lt;/em&gt; directly we decided to use &lt;em&gt;Pug&lt;/em&gt; (which compiles into &lt;em&gt;HTML&lt;/em&gt;) to build robust &lt;em&gt;HTML&lt;/em&gt; sites.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Yeoman the web development workflow</title>
				<link>https://thorsten-hans.com/yeoman-the-web-development-workflow/</link>
				<pubDate>Fri, 18 Oct 2013 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/yeoman-the-web-development-workflow/</guid>
				<description>&lt;p&gt;See other posts on &amp;lsquo;Branding SharePoint sites with yeoman&amp;rsquo;.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/from-zero-to-hero-how-we-brand-sharepoint-using-yeoman/&#34;&gt;Introduction&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;👉🏻 &lt;a href=&#34;https://thorsten-hans.com/yeoman-the-web-development-workflow/&#34;&gt;Yeoman the web development workflow&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-jade/&#34;&gt;An Introduction to Pug (aka Jade)&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-coffeescript/&#34;&gt;An Introduction to CoffeeScript&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://thorsten-hans.com/an-introduction-to-sass/&#34;&gt;An Introduction to SASS&lt;/a&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Okay ,  let&amp;rsquo;s get started with &lt;em&gt;Yeoman&lt;/em&gt;. As I mentioned within the introduction, &lt;em&gt;Yeoman&lt;/em&gt; is more a web development workflow for front-end apps than a single tool. Yeoman has been founded by leading JavaScript developers from the community (Paul Irish for example) and is maintained by Google and the community. The most important fact about &lt;em&gt;Yeoman&lt;/em&gt; is that &lt;em&gt;Yeoman&lt;/em&gt; is based on &lt;em&gt;Node.js&lt;/em&gt;, which makes &lt;em&gt;Yeoman&lt;/em&gt; available on all popular platforms such as Windows, Linux and of course macOS.&lt;/p&gt;</description>
			</item>
			<item>
				<title>From Zero to Hero — How we brand SharePoint using Yeoman</title>
				<link>https://thorsten-hans.com/from-zero-to-hero-how-we-brand-sharepoint-using-yeoman/</link>
				<pubDate>Tue, 08 Oct 2013 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/from-zero-to-hero-how-we-brand-sharepoint-using-yeoman/</guid>
				<description>&lt;p&gt;Branding SharePoint has been taken to a new level with SharePoint 2013; you can now easily brand your SharePoint (on Premises and Demand) by using HTML MasterPages and HTML PageLayouts. This step allows many design agencies to brand SharePoint sites without digging deep into SharePoint Insights. About a year ago Experts Inside was faced with the first huge (really huge) SharePoint 2013 project were we had to provide both custom MasterPages and custom PageLayouts. Starting with HTML was fine, but after a few days working on these artifacts, we recognized that the development workflow isn&amp;rsquo;t as smart as it could be. Kevin Mees (one of our developers) started with combining both, latest SharePoint capabilities and latest web development tools. After some iterations, we&amp;rsquo;ve built an incredible development workflow for branding SharePoint portals using the latest languages such as&lt;/p&gt;</description>
			</item>
			<item>
				<title>Maintaining Brownfield JS Apps? Check Js2Coffee</title>
				<link>https://thorsten-hans.com/maintaining-brownfield-js-apps-check-js2coffee/</link>
				<pubDate>Wed, 17 Apr 2013 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/maintaining-brownfield-js-apps-check-js2coffee/</guid>
				<description>&lt;p&gt;Do you love &lt;em&gt;CoffeeScript&lt;/em&gt;? Alternatively, you&amp;rsquo;ve to maintain Brownfield &lt;em&gt;JavaScript&lt;/em&gt; based Applications?&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://thorsten-hans.com/maintaining-brownfield-js-apps-check-js2coffee/images/coffeescript-logo.png&#34;&#xA;       alt=&#34;CoffeeScript Logo&#34;&#xA;       title=&#34;CoffeeScript Logo&#34;&#xA;       width=&#34;181&#34;&#xA;       height=&#34;143&#34;&#xA;       loading=&#34;lazy&#34;&#xA;       decoding=&#34;async&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Checkout &lt;em&gt;Js2coffee&lt;/em&gt;! &lt;em&gt;Js2coffee&lt;/em&gt; translates your JavaScript Code into nice, readable and valid CoffeeScript. In addition to the Js2coffee website (&lt;a href=&#34;js2coffee.org&#34; title=&#34;js2coffee.org&#34;&gt;js2coffee.org&lt;/a&gt;&#xA;), there is also an &lt;code&gt;NPM&lt;/code&gt; package available. You can install it directly from the terminal&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&#xA;  &lt;div class=&#34;code-toolbar&#34;&gt;&#xA;    &lt;span class=&#34;code-lang&#34;&gt;BASH&lt;/span&gt;&#xA;    &lt;button type=&#34;button&#34; class=&#34;code-copy-btn&#34; aria-label=&#34;Copy code to clipboard&#34;&gt;&#xA;      &lt;svg class=&#34;copy-icon&#34; viewBox=&#34;0 0 24 24&#34; width=&#34;14&#34; height=&#34;14&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34; aria-hidden=&#34;true&#34;&gt;&#xA;        &lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;&gt;&lt;/rect&gt;&#xA;        &lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;&gt;&lt;/path&gt;&#xA;      &lt;/svg&gt;&#xA;      &lt;span class=&#34;copy-text&#34;&gt;Copy&lt;/span&gt;&#xA;    &lt;/button&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install js2coffee&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# or globally&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install js2coffee --g&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;You can translate your JS file easily by providing the following command.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
