{article.title}
\n{article.description}
\n\n By {article.author ? article.author : 'Jon Short'}\n
\n{"version":3,"sources":["articles/components/Code.jsx","serviceWorker.js","constants.js","Header.jsx","articles/components/A.jsx","articles/components/H3.jsx","articles/components/Hero.jsx","articles/components/HomeLink.jsx","articles/imageMappings.js","images/typewriter-illustration.png","articles/components/Image.jsx","articles/components/InlineCode.jsx","articles/components/Li.jsx","articles/components/P.jsx","articles/components/Wrapper.jsx","articles/defaultComponentMapping.js","articles/components/Standout.jsx","articles/posts/automating-local-env-vars/index.jsx","images/articleThumbs/code-block.png","images/articleThumbs/pattern.png","images/articleThumbs/react-logo.png","images/articleThumbs/scream-emoji-banner.png","articles/posts/automating-local-env-vars/metadata.js","images/articleThumbs/styled-components.png","articles/posts/handling-line-endings/index.jsx","articles/posts/handling-line-endings/metadata.js","articles/posts/refactoring-this-site/index.jsx","articles/posts/refactoring-this-site/metadata.js","articles/posts/smart-code-performance/index.jsx","articles/posts/smart-code-performance/metadata.js","articles/articleMetaData.js","homepage/ArticleListItem.jsx","homepage/ArticleList.jsx","Footer.jsx","ScrollToTop.jsx","homepage/Home.jsx","about/Anchor.jsx","about/About.jsx","articles/Articles.jsx","Error404.jsx","index.js"],"names":["global","window","Prism","require","Code","children","language","className","replace","defaultProps","code","theme","dracula","style","tokens","getLineProps","getTokenProps","pop","padding","map","line","i","key","token","Boolean","location","hostname","match","BLOG_ROOT","Header","href","target","title","rel","to","A","rest","H3","props","Hero","color","date","shortTitle","subtitle","author","HomeLink","viewBox","fill","d","imageMappings","typewriter_illustration","Image","resolvedSrc","src","alt","loading","InlineCode","Li","P","Wrapper","defaultComponentMapping","a","blockquote","h3","img","inlineCode","li","p","wrapper","Content","lazy","Post","fallback","components","metadata","content","description","id","imageAlt","imageSrc","Pattern","url","ScreamEmojiBanner","ReactLogo","CodeBlock","articleMetaData","automatingLocalEnvVars","handlingLineEndings","smartCodePerformance","refactoringThisSite","allArticlesMetaData","Object","keys","ArticleListItem","article","ArticleList","articles","articleItems","useMemo","Footer","xmlns","fillRule","clipRule","strokeLinejoin","strokeMiterlimit","ScrollToTop","useEffect","scrollTo","Home","Helmet","Anchor","About","Articles","slug","useParams","name","property","Error404","ReactDOM","render","path","element","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.9b5e7db3.chunk.js","sourcesContent":["import React from 'react';\nimport Highlight, { defaultProps } from 'prism-react-renderer';\nimport Prism from 'prism-react-renderer/prism';\nimport dracula from 'prism-react-renderer/themes/dracula';\n\n(typeof global !== 'undefined' ? global : window).Prism = Prism;\n\nrequire('prismjs/components/prism-rust');\n\nconst Code = ({ children, className }) => {\n const language = className.replace(/language-/, '');\n\n return (\n \n {tokens.map((line, i) => (\n
\n );\n }}\n
{children}
\n);\n\nInlineCode.propTypes = {\n children: PropTypes.node,\n};\n\nexport default InlineCode;\n","import React from 'react';\n\nconst Li = props => (\n {children}
\n);\n\nP.propTypes = {\n children: PropTypes.node,\n};\n\nexport default P;\n","import React from 'react';\n\nconst Wrapper = (props) =>{props.children}\n);\n\nStandout.propTypes = {\n children: PropTypes.node,\n};\n\nexport default Standout;\n","import React, { lazy, Suspense } from 'react';\nimport { importMDX } from 'mdx.macro';\n\nimport defaultComponentMapping from '../../defaultComponentMapping';\n\nconst Content = lazy(() => importMDX('./content.mdx'));\n\nconst Post = () => (\n
{article.description}
\n\n By {article.author ? article.author : 'Jon Short'}\n
\n\n I am a full-stack developer at{' '}\n
\n I have a few personal projects which I use mostly to learn new\n tech.{' '}\n
\n While day-to-day I write mostly Typescript / Javascript, I am a\n big fan of