diff --git a/explorer/.prettierignore b/explorer/.prettierignore
new file mode 100644
index 00000000000000..378eac25d31170
--- /dev/null
+++ b/explorer/.prettierignore
@@ -0,0 +1 @@
+build
diff --git a/explorer/package.json b/explorer/package.json
index 623d1a5637b382..1a39ea934ffdae 100644
--- a/explorer/package.json
+++ b/explorer/package.json
@@ -21,7 +21,9 @@
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
- "eject": "react-scripts eject"
+ "eject": "react-scripts eject",
+ "format": "prettier -c \"**/*.+(js|jsx|ts|tsx|json|css|md)\"",
+ "format:fix": "prettier --write \"**/*.+(js|jsx|ts|tsx|json|css|md)\""
},
"eslintConfig": {
"extends": "react-app"
@@ -37,5 +39,8 @@
"last 1 firefox version",
"last 1 safari version"
]
+ },
+ "devDependencies": {
+ "prettier": "^1.19.1"
}
}
diff --git a/explorer/src/App.tsx b/explorer/src/App.tsx
index 0d4d4f9d881904..675899d844fde8 100644
--- a/explorer/src/App.tsx
+++ b/explorer/src/App.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React from "react";
function App() {
return (
@@ -8,12 +8,8 @@ function App() {
-
- Beta
-
-
- Solana Explorer
-
+ Beta
+ Solana Explorer
diff --git a/explorer/src/fonts/feather/feather.css b/explorer/src/fonts/feather/feather.css
index a042a07705552a..64b8271a4eb75d 100644
--- a/explorer/src/fonts/feather/feather.css
+++ b/explorer/src/fonts/feather/feather.css
@@ -1,16 +1,15 @@
@font-face {
- font-family: 'Feather';
- src:
- url('fonts/Feather.ttf?sdxovp') format('truetype'),
- url('fonts/Feather.woff?sdxovp') format('woff'),
- url('fonts/Feather.svg?sdxovp#Feather') format('svg');
+ font-family: "Feather";
+ src: url("fonts/Feather.ttf?sdxovp") format("truetype"),
+ url("fonts/Feather.woff?sdxovp") format("woff"),
+ url("fonts/Feather.svg?sdxovp#Feather") format("svg");
font-weight: normal;
font-style: normal;
}
.fe {
/* use !important to prevent issues with browser extensions that change fonts */
- font-family: 'Feather' !important;
+ font-family: "Feather" !important;
speak: none;
font-style: normal;
font-weight: normal;
diff --git a/explorer/src/index.tsx b/explorer/src/index.tsx
index 5a5278d585e8e5..6154e9544dca68 100644
--- a/explorer/src/index.tsx
+++ b/explorer/src/index.tsx
@@ -1,10 +1,10 @@
-import React from 'react';
-import ReactDOM from 'react-dom';
-import './scss/theme.scss';
-import App from './App';
-import * as serviceWorker from './serviceWorker';
+import React from "react";
+import ReactDOM from "react-dom";
+import "./scss/theme.scss";
+import App from "./App";
+import * as serviceWorker from "./serviceWorker";
-ReactDOM.render(, document.getElementById('root'));
+ReactDOM.render(, document.getElementById("root"));
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
diff --git a/explorer/src/serviceWorker.ts b/explorer/src/serviceWorker.ts
index b09523f155e978..d2386b79411f34 100644
--- a/explorer/src/serviceWorker.ts
+++ b/explorer/src/serviceWorker.ts
@@ -11,9 +11,9 @@
// opt-in, read https://bit.ly/CRA-PWA
const isLocalhost = Boolean(
- window.location.hostname === 'localhost' ||
+ window.location.hostname === "localhost" ||
// [::1] is the IPv6 localhost address.
- window.location.hostname === '[::1]' ||
+ window.location.hostname === "[::1]" ||
// 127.0.0.0/8 are considered localhost for IPv4.
window.location.hostname.match(
/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
@@ -26,12 +26,9 @@ type Config = {
};
export function register(config?: Config) {
- if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
+ if (process.env.NODE_ENV === "production" && "serviceWorker" in navigator) {
// The URL constructor is available in all browsers that support SW.
- const publicUrl = new URL(
- process.env.PUBLIC_URL,
- window.location.href
- );
+ const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);
if (publicUrl.origin !== window.location.origin) {
// Our service worker won't work if PUBLIC_URL is on a different origin
// from what our page is served on. This might happen if a CDN is used to
@@ -39,7 +36,7 @@ export function register(config?: Config) {
return;
}
- window.addEventListener('load', () => {
+ window.addEventListener("load", () => {
const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
if (isLocalhost) {
@@ -50,8 +47,8 @@ export function register(config?: Config) {
// service worker/PWA documentation.
navigator.serviceWorker.ready.then(() => {
console.log(
- 'This web app is being served cache-first by a service ' +
- 'worker. To learn more, visit https://bit.ly/CRA-PWA'
+ "This web app is being served cache-first by a service " +
+ "worker. To learn more, visit https://bit.ly/CRA-PWA"
);
});
} else {
@@ -72,14 +69,14 @@ function registerValidSW(swUrl: string, config?: Config) {
return;
}
installingWorker.onstatechange = () => {
- if (installingWorker.state === 'installed') {
+ if (installingWorker.state === "installed") {
if (navigator.serviceWorker.controller) {
// At this point, the updated precached content has been fetched,
// but the previous service worker will still serve the older
// content until all client tabs are closed.
console.log(
- 'New content is available and will be used when all ' +
- 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'
+ "New content is available and will be used when all " +
+ "tabs for this page are closed. See https://bit.ly/CRA-PWA."
);
// Execute callback
@@ -90,7 +87,7 @@ function registerValidSW(swUrl: string, config?: Config) {
// At this point, everything has been precached.
// It's the perfect time to display a
// "Content is cached for offline use." message.
- console.log('Content is cached for offline use.');
+ console.log("Content is cached for offline use.");
// Execute callback
if (config && config.onSuccess) {
@@ -102,21 +99,21 @@ function registerValidSW(swUrl: string, config?: Config) {
};
})
.catch(error => {
- console.error('Error during service worker registration:', error);
+ console.error("Error during service worker registration:", error);
});
}
function checkValidServiceWorker(swUrl: string, config?: Config) {
// Check if the service worker can be found. If it can't reload the page.
fetch(swUrl, {
- headers: { 'Service-Worker': 'script' }
+ headers: { "Service-Worker": "script" }
})
.then(response => {
// Ensure service worker exists, and that we really are getting a JS file.
- const contentType = response.headers.get('content-type');
+ const contentType = response.headers.get("content-type");
if (
response.status === 404 ||
- (contentType != null && contentType.indexOf('javascript') === -1)
+ (contentType != null && contentType.indexOf("javascript") === -1)
) {
// No service worker found. Probably a different app. Reload the page.
navigator.serviceWorker.ready.then(registration => {
@@ -131,13 +128,13 @@ function checkValidServiceWorker(swUrl: string, config?: Config) {
})
.catch(() => {
console.log(
- 'No internet connection found. App is running in offline mode.'
+ "No internet connection found. App is running in offline mode."
);
});
}
export function unregister() {
- if ('serviceWorker' in navigator) {
+ if ("serviceWorker" in navigator) {
navigator.serviceWorker.ready
.then(registration => {
registration.unregister();
diff --git a/explorer/src/setupTests.ts b/explorer/src/setupTests.ts
index 74b1a275a0ea7d..5fdf001693fb83 100644
--- a/explorer/src/setupTests.ts
+++ b/explorer/src/setupTests.ts
@@ -2,4 +2,4 @@
// allows you to do things like:
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
-import '@testing-library/jest-dom/extend-expect';
+import "@testing-library/jest-dom/extend-expect";
diff --git a/explorer/tsconfig.json b/explorer/tsconfig.json
index f2850b71613ed2..af10394b4c375c 100644
--- a/explorer/tsconfig.json
+++ b/explorer/tsconfig.json
@@ -1,11 +1,7 @@
{
"compilerOptions": {
"target": "es5",
- "lib": [
- "dom",
- "dom.iterable",
- "esnext"
- ],
+ "lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
@@ -19,7 +15,5 @@
"noEmit": true,
"jsx": "react"
},
- "include": [
- "src"
- ]
+ "include": ["src"]
}
diff --git a/explorer/yarn.lock b/explorer/yarn.lock
index 4e3c6b038b8443..488955de33a196 100644
--- a/explorer/yarn.lock
+++ b/explorer/yarn.lock
@@ -8388,6 +8388,11 @@ prepend-http@^1.0.0:
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
+prettier@^1.19.1:
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
+ integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
+
pretty-bytes@^5.1.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2"