diff --git a/.husky/pre-commit b/.husky/pre-commit index be55451..bff06a4 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -npm run lint && npm run build:scripts && git add dist_scripts +npm run lint && npm rum prettier && npm run build:scripts && git add dist_scripts diff --git a/dist_scripts/scripts/createStaticFiles.js b/dist_scripts/scripts/createStaticFiles.js index b806c48..f70977a 100755 --- a/dist_scripts/scripts/createStaticFiles.js +++ b/dist_scripts/scripts/createStaticFiles.js @@ -41,8 +41,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) { }; Object.defineProperty(exports, "__esModule", { value: true }); var fs_1 = require("fs"); -var xml_sitemap_1 = __importDefault(require("xml-sitemap")); var jsdom_1 = require("jsdom"); +var xml_sitemap_1 = __importDefault(require("xml-sitemap")); var config_1 = require("../src/config"); var radar_1 = require("./generateJson/radar"); // Do this as the first thing so that any code reading it knows the right env. diff --git a/dist_scripts/scripts/generateJson/radar.js b/dist_scripts/scripts/generateJson/radar.js index 3da6503..e185cad 100644 --- a/dist_scripts/scripts/generateJson/radar.js +++ b/dist_scripts/scripts/generateJson/radar.js @@ -89,10 +89,10 @@ var fs_extra_1 = require("fs-extra"); var highlight_js_1 = __importDefault(require("highlight.js")); var marked_1 = require("marked"); var path = __importStar(require("path")); +var config_1 = require("../../src/config"); var model_1 = require("../../src/model"); var paths_1 = require("../paths"); var file_1 = require("./file"); -var config_1 = require("../../src/config"); marked_1.marked.setOptions({ highlight: function (code) { return highlight_js_1.default.highlightAuto(code).value; }, }); @@ -200,7 +200,7 @@ var addRevisionToItem = function (item, revision) { body: "", info: "", angleFraction: Math.random(), - radiusFraction: Math.random() + radiusFraction: Math.random(), }; } var newItem = __assign(__assign(__assign({}, item), revision), { body: ignoreEmptyRevisionBody(revision, item) }); if (revisionCreatesNewHistoryEntry(revision, item)) { diff --git a/dist_scripts/src/config.js b/dist_scripts/src/config.js index 3bfa03b..4880d0a 100644 --- a/dist_scripts/src/config.js +++ b/dist_scripts/src/config.js @@ -17,7 +17,7 @@ function isMobileViewport() { return width < 1200; } exports.isMobileViewport = isMobileViewport; -exports.publicUrl = (process.env.PUBLIC_URL || "").replace(/\/$/, '') + "/"; +exports.publicUrl = (process.env.PUBLIC_URL || "").replace(/\/$/, "") + "/"; function assetUrl(file) { return exports.publicUrl + file; } diff --git a/dist_scripts/src/model.js b/dist_scripts/src/model.js index 9b4e122..74dd36b 100644 --- a/dist_scripts/src/model.js +++ b/dist_scripts/src/model.js @@ -92,9 +92,11 @@ var filteredOnly = function (items, tags) { }; exports.filteredOnly = filteredOnly; var getTags = function (items) { - var tags = items.reduce(function (acc, item) { + var tags = items + .reduce(function (acc, item) { return !item.tags ? acc : acc.concat(item.tags); - }, []).sort(); + }, []) + .sort(); return Array.from(new Set(tags)); }; exports.getTags = getTags; diff --git a/package.json b/package.json index 6db2349..19e9037 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "build:scripts": "tsc --project tsconfig.scripts.json", "test": "react-scripts test --watchAll=false", "ts:check": "tsc --noEmit", - "lint": "npm run ts:check && eslint src/**/*.tsx" + "lint": "npm run ts:check && eslint src/**/*.tsx", + "prettier": "prettier --write '{scripts,src}/**/*.{ts,tsx}'" }, "dependencies": { "@apideck/better-ajv-errors": "0.3.6", diff --git a/scripts/createStaticFiles.ts b/scripts/createStaticFiles.ts index 17e5479..1105160 100644 --- a/scripts/createStaticFiles.ts +++ b/scripts/createStaticFiles.ts @@ -6,8 +6,8 @@ import { readFileSync, writeFileSync, } from "fs"; +import { JSDOM } from "jsdom"; import XmlSitemap from "xml-sitemap"; -import { JSDOM } from 'jsdom'; import { publicUrl } from "../src/config"; import { createRadar } from "./generateJson/radar"; @@ -44,43 +44,42 @@ const createStaticFiles = async () => { const sitemapOptions = { lastmod: "now", changefreq: "weekly", - } + }; sitemap.add(`${publicUrl}index.html`, sitemapOptions); radar.items.forEach((item) => { - const targetPath = `build/${item.quadrant}/${item.name}.html` - copyFileSync( - "build/index.html", - targetPath - ); + const targetPath = `build/${item.quadrant}/${item.name}.html`; + copyFileSync("build/index.html", targetPath); - JSDOM.fromFile(targetPath).then(dom => { + JSDOM.fromFile(targetPath).then((dom) => { const document = dom.window.document; - const rootEl = document.getElementById("root") + const rootEl = document.getElementById("root"); if (rootEl) { - const textNode = document.createElement("div") + const textNode = document.createElement("div"); const bodyFragment = JSDOM.fragment(item.body); - textNode.appendChild(bodyFragment) + textNode.appendChild(bodyFragment); - const headlineNode = document.createElement("h1") + const headlineNode = document.createElement("h1"); const titleText = document.createTextNode(item.title); - headlineNode.appendChild(titleText) + headlineNode.appendChild(titleText); - rootEl.appendChild(headlineNode) - rootEl.appendChild(textNode) + rootEl.appendChild(headlineNode); + rootEl.appendChild(textNode); } else { - console.warn('Element with ID "root" not found. Static site content will be empty.') + console.warn( + 'Element with ID "root" not found. Static site content will be empty.' + ); } - writeFileSync( - targetPath, - dom.serialize() - ); + writeFileSync(targetPath, dom.serialize()); }); - sitemap.add(`${publicUrl}${item.quadrant}/${item.name}.html`, sitemapOptions); + sitemap.add( + `${publicUrl}${item.quadrant}/${item.name}.html`, + sitemapOptions + ); }); writeFileSync("build/sitemap.xml", sitemap.xml); diff --git a/scripts/generateJson/radar.ts b/scripts/generateJson/radar.ts index c0135be..9fa3b05 100644 --- a/scripts/generateJson/radar.ts +++ b/scripts/generateJson/radar.ts @@ -5,6 +5,7 @@ import highlight from "highlight.js"; import { marked } from "marked"; import * as path from "path"; +import { ConfigData, publicUrl } from "../../src/config"; import { FlagType, Item, @@ -15,8 +16,6 @@ import { import { appBuild } from "../paths"; import { getAllMarkdownFiles, radarPath } from "./file"; -import { ConfigData, publicUrl } from "../../src/config"; - marked.setOptions({ highlight: (code: any) => highlight.highlightAuto(code).value, }); @@ -147,7 +146,7 @@ const addRevisionToItem = ( body: "", info: "", angleFraction: Math.random(), - radiusFraction: Math.random() + radiusFraction: Math.random(), }, revision: Revision ): Item => { diff --git a/scripts/types.d.ts b/scripts/types.d.ts index 6c1c122..71e6bc1 100644 --- a/scripts/types.d.ts +++ b/scripts/types.d.ts @@ -1 +1 @@ -declare module 'xml-sitemap'; +declare module "xml-sitemap"; diff --git a/src/components/Chart/BlipPoints.tsx b/src/components/Chart/BlipPoints.tsx index c191147..aeab18c 100644 --- a/src/components/Chart/BlipPoints.tsx +++ b/src/components/Chart/BlipPoints.tsx @@ -26,7 +26,8 @@ function generateCoordinates( ringPadding = 0.7; // radian between 0 and 90 degrees - const randomDegree = ((0.1 + (blip.angleFraction || Math.random()) * .8) * 90 * pi) / 180; + const randomDegree = + ((0.1 + (blip.angleFraction || Math.random()) * 0.8) * 90 * pi) / 180; // random distance from the centre of the radar, but within given ring. Also, with some "padding" so the points don't touch ring borders. const radius = pointBetween( previousRingRadius + ringPadding, diff --git a/src/components/Chart/QuadrantRings.tsx b/src/components/Chart/QuadrantRings.tsx index 12ee6de..70a44be 100644 --- a/src/components/Chart/QuadrantRings.tsx +++ b/src/components/Chart/QuadrantRings.tsx @@ -7,7 +7,7 @@ import { QuadrantConfig } from "../../model"; const arcAngel = [ [(3 * Math.PI) / 2, (4 * Math.PI) / 2], [0, Math.PI / 2], - [Math.PI, Math.PI * 3 / 2], + [Math.PI, (Math.PI * 3) / 2], [Math.PI / 2, Math.PI], ]; diff --git a/src/components/Chart/RadarChart.tsx b/src/components/Chart/RadarChart.tsx index 3155e32..3885222 100644 --- a/src/components/Chart/RadarChart.tsx +++ b/src/components/Chart/RadarChart.tsx @@ -76,8 +76,8 @@ const RadarChart: React.FC<{ {Object.values(config.quadrantsMap).map((value, index) => { - console.log(value) - return null + console.log(value); + return null; })} {Object.values(config.quadrantsMap).map((value, index) => ( { it("Should render the item", () => { diff --git a/src/config.ts b/src/config.ts index b1e9649..0eca0d2 100644 --- a/src/config.ts +++ b/src/config.ts @@ -38,7 +38,8 @@ export function isMobileViewport() { return width < 1200; } -export const publicUrl = (process.env.PUBLIC_URL || "").replace(/\/$/, '') + "/"; +export const publicUrl = + (process.env.PUBLIC_URL || "").replace(/\/$/, "") + "/"; export function assetUrl(file: string) { return publicUrl + file; diff --git a/src/model.ts b/src/model.ts index f49d42d..a09d7e7 100644 --- a/src/model.ts +++ b/src/model.ts @@ -125,17 +125,19 @@ export const filteredOnly = (items: Item[], tags: Tag[] | string) => { } if (Array.isArray(tags)) { - return tags.every(tag => itemTags.includes(tag)); + return tags.every((tag) => itemTags.includes(tag)); } return itemTags.includes(tags); }); -} +}; export const getTags = (items: Item[]): Tag[] => { - const tags: Tag[] = items.reduce((acc: Tag[], item: Item) => { - return !item.tags ? acc : acc.concat(item.tags); - }, []).sort(); + const tags: Tag[] = items + .reduce((acc: Tag[], item: Item) => { + return !item.tags ? acc : acc.concat(item.tags); + }, []) + .sort(); return Array.from(new Set(tags)); -}; \ No newline at end of file +};