From 11a9c11631c513cedbc0355dcd810cc0e510b0ff Mon Sep 17 00:00:00 2001 From: HF Date: Fri, 3 Jan 2020 13:00:24 +0100 Subject: [PATCH] fix 75 eslint warnings, rename files with jsx code to .jsx, fix ChatModal export --- .eslintrc.json | 5 +++ package.json | 5 ++- src/actions/types.js | 2 +- src/components/{Admin.js => Admin.jsx} | 0 src/components/{App.js => App.jsx} | 0 ...SwitchButton.js => CanvasSwitchButton.jsx} | 0 .../{ChangeMail.js => ChangeMail.jsx} | 0 .../{ChangeName.js => ChangeName.jsx} | 0 .../{ChangePassword.js => ChangePassword.jsx} | 0 src/components/{Chat.js => Chat.jsx} | 0 src/components/{ChatBox.js => ChatBox.jsx} | 0 .../{ChatButton.js => ChatButton.jsx} | 0 .../{ChatInput.js => ChatInput.jsx} | 2 ++ .../{ChatModal.js => ChatModal.jsx} | 4 +-- .../{CoolDownBox.js => CoolDownBox.jsx} | 0 .../{CoordinatesBox.js => CoordinatesBox.jsx} | 0 .../{DailyRankings.js => DailyRankings.jsx} | 0 .../{DeleteAccount.js => DeleteAccount.jsx} | 0 .../{DownloadButton.js => DownloadButton.jsx} | 0 ...pandMenuButton.js => ExpandMenuButton.jsx} | 0 ...sswordModal.js => ForgotPasswordModal.jsx} | 0 src/components/{Globe.js => Globe.jsx} | 0 .../{GlobeButton.js => GlobeButton.jsx} | 0 .../{GridButton.js => GridButton.jsx} | 0 .../{HelpButton.js => HelpButton.jsx} | 0 .../{HelpModal.js => HelpModal.jsx} | 0 src/components/{Html.js => Html.jsx} | 0 .../{LogInButton.js => LogInButton.jsx} | 0 .../{LogInForm.js => LogInForm.jsx} | 0 src/components/{Main.js => Main.jsx} | 0 .../{MdToggleButton.js => MdToggleButton.jsx} | 0 ...ButtonHover.js => MdToggleButtonHover.jsx} | 0 src/components/{Menu.js => Menu.jsx} | 2 +- ...MinecraftButton.js => MinecraftButton.jsx} | 0 .../{MinecraftModal.js => MinecraftModal.jsx} | 0 ...craftTPButton.js => MinecraftTPButton.jsx} | 0 src/components/{Modal.js => Modal.jsx} | 0 .../{ModalRoot.js => ModalRoot.jsx} | 0 ...NewPasswordForm.js => NewPasswordForm.jsx} | 0 .../{NotifyBox.js => NotifyBox.jsx} | 0 .../{OnlineBox.js => OnlineBox.jsx} | 0 src/components/{Palette.js => Palette.jsx} | 0 .../{PalselButton.js => PalselButton.jsx} | 0 .../{PasswordReset.js => PasswordReset.jsx} | 0 src/components/{Rankings.js => Rankings.jsx} | 0 .../{ReCaptcha.js => ReCaptcha.jsx} | 0 ...RedirectionPage.js => RedirectionPage.jsx} | 0 .../{RegisterModal.js => RegisterModal.jsx} | 0 .../{SettingsButton.js => SettingsButton.jsx} | 0 .../{SettingsModal.js => SettingsModal.jsx} | 0 .../{SignUpForm.js => SignUpForm.jsx} | 0 src/components/{Tab.js => Tab.jsx} | 0 src/components/{Tabs.js => Tabs.jsx} | 0 .../{TotalRankings.js => TotalRankings.jsx} | 0 src/components/{UserArea.js => UserArea.jsx} | 0 .../{UserAreaModal.js => UserAreaModal.jsx} | 0 .../{UserMessages.js => UserMessages.jsx} | 0 src/core/config.js | 4 +-- src/core/draw.js | 2 +- src/core/tileserver.js | 4 +-- src/core/utils.js | 7 ++++ src/routes/tiles.js | 2 +- src/socket/ChatHistory.js | 2 ++ src/ui/keypress.js | 1 + src/utils/Math.js | 11 ------ src/utils/cloudflareip.js | 34 +++++++++++-------- src/utils/cron.js | 2 +- src/utils/ip.js | 4 +-- tools/webpack.config.js | 6 +++- 69 files changed, 54 insertions(+), 45 deletions(-) rename src/components/{Admin.js => Admin.jsx} (100%) rename src/components/{App.js => App.jsx} (100%) rename src/components/{CanvasSwitchButton.js => CanvasSwitchButton.jsx} (100%) rename src/components/{ChangeMail.js => ChangeMail.jsx} (100%) rename src/components/{ChangeName.js => ChangeName.jsx} (100%) rename src/components/{ChangePassword.js => ChangePassword.jsx} (100%) rename src/components/{Chat.js => Chat.jsx} (100%) rename src/components/{ChatBox.js => ChatBox.jsx} (100%) rename src/components/{ChatButton.js => ChatButton.jsx} (100%) rename src/components/{ChatInput.js => ChatInput.jsx} (99%) rename src/components/{ChatModal.js => ChatModal.jsx} (87%) rename src/components/{CoolDownBox.js => CoolDownBox.jsx} (100%) rename src/components/{CoordinatesBox.js => CoordinatesBox.jsx} (100%) rename src/components/{DailyRankings.js => DailyRankings.jsx} (100%) rename src/components/{DeleteAccount.js => DeleteAccount.jsx} (100%) rename src/components/{DownloadButton.js => DownloadButton.jsx} (100%) rename src/components/{ExpandMenuButton.js => ExpandMenuButton.jsx} (100%) rename src/components/{ForgotPasswordModal.js => ForgotPasswordModal.jsx} (100%) rename src/components/{Globe.js => Globe.jsx} (100%) rename src/components/{GlobeButton.js => GlobeButton.jsx} (100%) rename src/components/{GridButton.js => GridButton.jsx} (100%) rename src/components/{HelpButton.js => HelpButton.jsx} (100%) rename src/components/{HelpModal.js => HelpModal.jsx} (100%) rename src/components/{Html.js => Html.jsx} (100%) rename src/components/{LogInButton.js => LogInButton.jsx} (100%) rename src/components/{LogInForm.js => LogInForm.jsx} (100%) rename src/components/{Main.js => Main.jsx} (100%) rename src/components/{MdToggleButton.js => MdToggleButton.jsx} (100%) rename src/components/{MdToggleButtonHover.js => MdToggleButtonHover.jsx} (100%) rename src/components/{Menu.js => Menu.jsx} (94%) rename src/components/{MinecraftButton.js => MinecraftButton.jsx} (100%) rename src/components/{MinecraftModal.js => MinecraftModal.jsx} (100%) rename src/components/{MinecraftTPButton.js => MinecraftTPButton.jsx} (100%) rename src/components/{Modal.js => Modal.jsx} (100%) rename src/components/{ModalRoot.js => ModalRoot.jsx} (100%) rename src/components/{NewPasswordForm.js => NewPasswordForm.jsx} (100%) rename src/components/{NotifyBox.js => NotifyBox.jsx} (100%) rename src/components/{OnlineBox.js => OnlineBox.jsx} (100%) rename src/components/{Palette.js => Palette.jsx} (100%) rename src/components/{PalselButton.js => PalselButton.jsx} (100%) rename src/components/{PasswordReset.js => PasswordReset.jsx} (100%) rename src/components/{Rankings.js => Rankings.jsx} (100%) rename src/components/{ReCaptcha.js => ReCaptcha.jsx} (100%) rename src/components/{RedirectionPage.js => RedirectionPage.jsx} (100%) rename src/components/{RegisterModal.js => RegisterModal.jsx} (100%) rename src/components/{SettingsButton.js => SettingsButton.jsx} (100%) rename src/components/{SettingsModal.js => SettingsModal.jsx} (100%) rename src/components/{SignUpForm.js => SignUpForm.jsx} (100%) rename src/components/{Tab.js => Tab.jsx} (100%) rename src/components/{Tabs.js => Tabs.jsx} (100%) rename src/components/{TotalRankings.js => TotalRankings.jsx} (100%) rename src/components/{UserArea.js => UserArea.jsx} (100%) rename src/components/{UserAreaModal.js => UserAreaModal.jsx} (100%) rename src/components/{UserMessages.js => UserMessages.jsx} (100%) delete mode 100644 src/utils/Math.js diff --git a/.eslintrc.json b/.eslintrc.json index cd58dab1..083af658 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -3,6 +3,11 @@ "plugin:flowtype/recommended", "airbnb" ], + "parserOptions": { + "ecmaFeatures": { + "jsx": true + } + }, "plugins": [ "flowtype", "react", diff --git a/package.json b/package.json index 1c1f82a1..85fc41ee 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,9 @@ "scripts": { "build": "babel-node tools/run build", "clean": "babel-node tools/run clean", - "lint:js": "eslint src", + "lint": "eslint --ext .jsx --ext .js src", "lint:css": "stylelint \"src/**/*.{css,less,scss,sss}\"", - "lint:staged": "lint-staged", - "lint": "yarn run lint:js && yarn run lint:css" + "lint:staged": "lint-staged" }, "author": "HF ", "browserslist": [ diff --git a/src/actions/types.js b/src/actions/types.js index 36ba5681..9994f85e 100644 --- a/src/actions/types.js +++ b/src/actions/types.js @@ -57,6 +57,6 @@ export type Action = export type PromiseAction = Promise; +export type ThunkAction = (dispatch: Dispatch, getState: GetState) => any; export type Dispatch = (action: Action | ThunkAction | PromiseAction | Array) => any; export type GetState = () => State; -export type ThunkAction = (dispatch: Dispatch, getState: GetState) => any; diff --git a/src/components/Admin.js b/src/components/Admin.jsx similarity index 100% rename from src/components/Admin.js rename to src/components/Admin.jsx diff --git a/src/components/App.js b/src/components/App.jsx similarity index 100% rename from src/components/App.js rename to src/components/App.jsx diff --git a/src/components/CanvasSwitchButton.js b/src/components/CanvasSwitchButton.jsx similarity index 100% rename from src/components/CanvasSwitchButton.js rename to src/components/CanvasSwitchButton.jsx diff --git a/src/components/ChangeMail.js b/src/components/ChangeMail.jsx similarity index 100% rename from src/components/ChangeMail.js rename to src/components/ChangeMail.jsx diff --git a/src/components/ChangeName.js b/src/components/ChangeName.jsx similarity index 100% rename from src/components/ChangeName.js rename to src/components/ChangeName.jsx diff --git a/src/components/ChangePassword.js b/src/components/ChangePassword.jsx similarity index 100% rename from src/components/ChangePassword.js rename to src/components/ChangePassword.jsx diff --git a/src/components/Chat.js b/src/components/Chat.jsx similarity index 100% rename from src/components/Chat.js rename to src/components/Chat.jsx diff --git a/src/components/ChatBox.js b/src/components/ChatBox.jsx similarity index 100% rename from src/components/ChatBox.js rename to src/components/ChatBox.jsx diff --git a/src/components/ChatButton.js b/src/components/ChatButton.jsx similarity index 100% rename from src/components/ChatButton.js rename to src/components/ChatButton.jsx diff --git a/src/components/ChatInput.js b/src/components/ChatInput.jsx similarity index 99% rename from src/components/ChatInput.js rename to src/components/ChatInput.jsx index 5118f334..94142ae2 100644 --- a/src/components/ChatInput.js +++ b/src/components/ChatInput.jsx @@ -1,5 +1,7 @@ /* * Chat input field + * + * @flow */ import React from 'react'; diff --git a/src/components/ChatModal.js b/src/components/ChatModal.jsx similarity index 87% rename from src/components/ChatModal.js rename to src/components/ChatModal.jsx index a246e990..b98fe6c9 100644 --- a/src/components/ChatModal.js +++ b/src/components/ChatModal.jsx @@ -4,13 +4,10 @@ */ import React from 'react'; -import { connect } from 'react-redux'; import Modal from './Modal'; import Chat from './Chat'; -import type { State } from '../reducers'; - const textStyle = { color: 'hsla(218, 5%, 47%, .6)', @@ -36,3 +33,4 @@ const ChatModal = () => ( ); +export default ChatModal; diff --git a/src/components/CoolDownBox.js b/src/components/CoolDownBox.jsx similarity index 100% rename from src/components/CoolDownBox.js rename to src/components/CoolDownBox.jsx diff --git a/src/components/CoordinatesBox.js b/src/components/CoordinatesBox.jsx similarity index 100% rename from src/components/CoordinatesBox.js rename to src/components/CoordinatesBox.jsx diff --git a/src/components/DailyRankings.js b/src/components/DailyRankings.jsx similarity index 100% rename from src/components/DailyRankings.js rename to src/components/DailyRankings.jsx diff --git a/src/components/DeleteAccount.js b/src/components/DeleteAccount.jsx similarity index 100% rename from src/components/DeleteAccount.js rename to src/components/DeleteAccount.jsx diff --git a/src/components/DownloadButton.js b/src/components/DownloadButton.jsx similarity index 100% rename from src/components/DownloadButton.js rename to src/components/DownloadButton.jsx diff --git a/src/components/ExpandMenuButton.js b/src/components/ExpandMenuButton.jsx similarity index 100% rename from src/components/ExpandMenuButton.js rename to src/components/ExpandMenuButton.jsx diff --git a/src/components/ForgotPasswordModal.js b/src/components/ForgotPasswordModal.jsx similarity index 100% rename from src/components/ForgotPasswordModal.js rename to src/components/ForgotPasswordModal.jsx diff --git a/src/components/Globe.js b/src/components/Globe.jsx similarity index 100% rename from src/components/Globe.js rename to src/components/Globe.jsx diff --git a/src/components/GlobeButton.js b/src/components/GlobeButton.jsx similarity index 100% rename from src/components/GlobeButton.js rename to src/components/GlobeButton.jsx diff --git a/src/components/GridButton.js b/src/components/GridButton.jsx similarity index 100% rename from src/components/GridButton.js rename to src/components/GridButton.jsx diff --git a/src/components/HelpButton.js b/src/components/HelpButton.jsx similarity index 100% rename from src/components/HelpButton.js rename to src/components/HelpButton.jsx diff --git a/src/components/HelpModal.js b/src/components/HelpModal.jsx similarity index 100% rename from src/components/HelpModal.js rename to src/components/HelpModal.jsx diff --git a/src/components/Html.js b/src/components/Html.jsx similarity index 100% rename from src/components/Html.js rename to src/components/Html.jsx diff --git a/src/components/LogInButton.js b/src/components/LogInButton.jsx similarity index 100% rename from src/components/LogInButton.js rename to src/components/LogInButton.jsx diff --git a/src/components/LogInForm.js b/src/components/LogInForm.jsx similarity index 100% rename from src/components/LogInForm.js rename to src/components/LogInForm.jsx diff --git a/src/components/Main.js b/src/components/Main.jsx similarity index 100% rename from src/components/Main.js rename to src/components/Main.jsx diff --git a/src/components/MdToggleButton.js b/src/components/MdToggleButton.jsx similarity index 100% rename from src/components/MdToggleButton.js rename to src/components/MdToggleButton.jsx diff --git a/src/components/MdToggleButtonHover.js b/src/components/MdToggleButtonHover.jsx similarity index 100% rename from src/components/MdToggleButtonHover.js rename to src/components/MdToggleButtonHover.jsx diff --git a/src/components/Menu.js b/src/components/Menu.jsx similarity index 94% rename from src/components/Menu.js rename to src/components/Menu.jsx index 2c2d13c8..58586a3b 100644 --- a/src/components/Menu.js +++ b/src/components/Menu.jsx @@ -9,7 +9,7 @@ import HelpButton from './HelpButton'; import SettingsButton from './SettingsButton'; import LogInButton from './LogInButton'; import DownloadButton from './DownloadButton'; -import MinecraftTPButton from './MinecraftTPButton.js'; +import MinecraftTPButton from './MinecraftTPButton'; import MinecraftButton from './MinecraftButton'; const Menu = ({ menuOpen, minecraftname, messages, canvasId }) => ( diff --git a/src/components/MinecraftButton.js b/src/components/MinecraftButton.jsx similarity index 100% rename from src/components/MinecraftButton.js rename to src/components/MinecraftButton.jsx diff --git a/src/components/MinecraftModal.js b/src/components/MinecraftModal.jsx similarity index 100% rename from src/components/MinecraftModal.js rename to src/components/MinecraftModal.jsx diff --git a/src/components/MinecraftTPButton.js b/src/components/MinecraftTPButton.jsx similarity index 100% rename from src/components/MinecraftTPButton.js rename to src/components/MinecraftTPButton.jsx diff --git a/src/components/Modal.js b/src/components/Modal.jsx similarity index 100% rename from src/components/Modal.js rename to src/components/Modal.jsx diff --git a/src/components/ModalRoot.js b/src/components/ModalRoot.jsx similarity index 100% rename from src/components/ModalRoot.js rename to src/components/ModalRoot.jsx diff --git a/src/components/NewPasswordForm.js b/src/components/NewPasswordForm.jsx similarity index 100% rename from src/components/NewPasswordForm.js rename to src/components/NewPasswordForm.jsx diff --git a/src/components/NotifyBox.js b/src/components/NotifyBox.jsx similarity index 100% rename from src/components/NotifyBox.js rename to src/components/NotifyBox.jsx diff --git a/src/components/OnlineBox.js b/src/components/OnlineBox.jsx similarity index 100% rename from src/components/OnlineBox.js rename to src/components/OnlineBox.jsx diff --git a/src/components/Palette.js b/src/components/Palette.jsx similarity index 100% rename from src/components/Palette.js rename to src/components/Palette.jsx diff --git a/src/components/PalselButton.js b/src/components/PalselButton.jsx similarity index 100% rename from src/components/PalselButton.js rename to src/components/PalselButton.jsx diff --git a/src/components/PasswordReset.js b/src/components/PasswordReset.jsx similarity index 100% rename from src/components/PasswordReset.js rename to src/components/PasswordReset.jsx diff --git a/src/components/Rankings.js b/src/components/Rankings.jsx similarity index 100% rename from src/components/Rankings.js rename to src/components/Rankings.jsx diff --git a/src/components/ReCaptcha.js b/src/components/ReCaptcha.jsx similarity index 100% rename from src/components/ReCaptcha.js rename to src/components/ReCaptcha.jsx diff --git a/src/components/RedirectionPage.js b/src/components/RedirectionPage.jsx similarity index 100% rename from src/components/RedirectionPage.js rename to src/components/RedirectionPage.jsx diff --git a/src/components/RegisterModal.js b/src/components/RegisterModal.jsx similarity index 100% rename from src/components/RegisterModal.js rename to src/components/RegisterModal.jsx diff --git a/src/components/SettingsButton.js b/src/components/SettingsButton.jsx similarity index 100% rename from src/components/SettingsButton.js rename to src/components/SettingsButton.jsx diff --git a/src/components/SettingsModal.js b/src/components/SettingsModal.jsx similarity index 100% rename from src/components/SettingsModal.js rename to src/components/SettingsModal.jsx diff --git a/src/components/SignUpForm.js b/src/components/SignUpForm.jsx similarity index 100% rename from src/components/SignUpForm.js rename to src/components/SignUpForm.jsx diff --git a/src/components/Tab.js b/src/components/Tab.jsx similarity index 100% rename from src/components/Tab.js rename to src/components/Tab.jsx diff --git a/src/components/Tabs.js b/src/components/Tabs.jsx similarity index 100% rename from src/components/Tabs.js rename to src/components/Tabs.jsx diff --git a/src/components/TotalRankings.js b/src/components/TotalRankings.jsx similarity index 100% rename from src/components/TotalRankings.js rename to src/components/TotalRankings.jsx diff --git a/src/components/UserArea.js b/src/components/UserArea.jsx similarity index 100% rename from src/components/UserArea.js rename to src/components/UserArea.jsx diff --git a/src/components/UserAreaModal.js b/src/components/UserAreaModal.jsx similarity index 100% rename from src/components/UserAreaModal.js rename to src/components/UserAreaModal.jsx diff --git a/src/components/UserMessages.js b/src/components/UserMessages.jsx similarity index 100% rename from src/components/UserMessages.js rename to src/components/UserMessages.jsx diff --git a/src/core/config.js b/src/core/config.js index 42ef99be..8a712cd2 100644 --- a/src/core/config.js +++ b/src/core/config.js @@ -17,7 +17,7 @@ export const TILE_FOLDER = path.join(__dirname, `./${TILE_FOLDER_REL}`); export const ASSET_SERVER = process.env.ASSET_SERVER || '.'; // Proxycheck -export const USE_PROXYCHECK = parseInt(process.env.USE_PROXYCHECK) || false; +export const USE_PROXYCHECK = parseInt(process.env.USE_PROXYCHECK, 10) || false; export const REDIS_URL = process.env.REDIS_URL || 'redis://localhost:6380'; // Database @@ -80,7 +80,7 @@ export const ads = { export const RECAPTCHA_SECRET = process.env.RECAPTCHA_SECRET || false; export const RECAPTCHA_SITEKEY = process.env.RECAPTCHA_SITEKEY || false; // time on which to display captcha in minutes -export const RECAPTCHA_TIME = parseInt(process.env.RECAPTCHA_TIME) || 30; +export const RECAPTCHA_TIME = parseInt(process.env.RECAPTCHA_TIME, 10) || 30; export const SESSION_SECRET = process.env.SESSION_SECRET || 'dummy'; diff --git a/src/core/draw.js b/src/core/draw.js index edce4fa7..ef009c47 100644 --- a/src/core/draw.js +++ b/src/core/draw.js @@ -43,7 +43,7 @@ export function setPixel( */ async function draw( user: User, - canvasId: string, + canvasId: number, x: number, y: number, color: ColorIndex, diff --git a/src/core/tileserver.js b/src/core/tileserver.js index 3ae125ae..c2506233 100644 --- a/src/core/tileserver.js +++ b/src/core/tileserver.js @@ -32,7 +32,7 @@ class CanvasUpdater { firstZoomtileWidth: number; canvasTileFolder: string; - constructor(id) { + constructor(id: number) { this.updateZoomlevelTiles = this.updateZoomlevelTiles.bind(this); this.TileLoadingQueues = []; @@ -162,7 +162,7 @@ export function startAllCanvasLoops() { if (!fs.existsSync(`${TILE_FOLDER}`)) fs.mkdirSync(`${TILE_FOLDER}`); const ids = Object.keys(canvases); for (let i = 0; i < ids.length; i += 1) { - const updater = new CanvasUpdater(ids[i]); + const updater = new CanvasUpdater(parseInt(ids[i], 10)); CanvasUpdaters[ids[i]] = updater; } } diff --git a/src/core/utils.js b/src/core/utils.js index 1bb8fc7c..9e241fdd 100644 --- a/src/core/utils.js +++ b/src/core/utils.js @@ -15,6 +15,13 @@ export function mod(n: number, m: number): number { return ((n % m) + m) % m; } +export function sum(values: Array): number { + let total = 0; + // TODO map reduce + values.forEach(value => total += value); + return total; +} + export function distMax([x1, y1]: Cell, [x2, y2]: Cell): number { return Math.max(Math.abs(x1 - x2), Math.abs(y1 - y2)); } diff --git a/src/routes/tiles.js b/src/routes/tiles.js index 1ede1947..76389485 100644 --- a/src/routes/tiles.js +++ b/src/routes/tiles.js @@ -72,7 +72,7 @@ router.use('/', express.static(TILE_FOLDER, { /* * catch File Not Found: Send empty tile */ -router.use('/:c([0-9]+)/:z([0-9]+)/:x([0-9]+)/:y([0-9]+).png', async (req: Request, res: Response, next) => { +router.use('/:c([0-9]+)/:z([0-9]+)/:x([0-9]+)/:y([0-9]+).png', async (req: Request, res: Response) => { const { c: paramC } = req.params; const c = parseInt(paramC, 10); res.set({ diff --git a/src/socket/ChatHistory.js b/src/socket/ChatHistory.js index 681d35a2..41568591 100644 --- a/src/socket/ChatHistory.js +++ b/src/socket/ChatHistory.js @@ -2,6 +2,8 @@ * save the chat history * TODO: * This should really be saved in redis + * + * @flow */ class ChatHistory { diff --git a/src/ui/keypress.js b/src/ui/keypress.js index 405889f4..e3e80bf0 100644 --- a/src/ui/keypress.js +++ b/src/ui/keypress.js @@ -1,5 +1,6 @@ /* * keypress actions + * @flow */ import keycode from 'keycode'; diff --git a/src/utils/Math.js b/src/utils/Math.js deleted file mode 100644 index acba5bc9..00000000 --- a/src/utils/Math.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * - * @flow - */ - -export function sum(values: Array): number { - let total = 0; - // TODO map reduce - values.forEach(value => total += value); - return total; -} diff --git a/src/utils/cloudflareip.js b/src/utils/cloudflareip.js index 27e8ff9f..312818e4 100644 --- a/src/utils/cloudflareip.js +++ b/src/utils/cloudflareip.js @@ -1,7 +1,20 @@ +/* + * check if IP is from cloudflare + * @flow + */ -// 3rd -const Address4 = require('ip-address').Address4; -const Address6 = require('ip-address').Address6; +import { Address4, Address6 } from 'ip-address'; + +// returns undefined | Address4 | Address6 +function intoAddress(str) { + if (typeof str === 'string') str = str.trim(); + let ip = new Address6(str); + if (ip.v4 && !ip.valid) { + ip = new Address4(str); + } + if (!ip.valid) return null; + return ip; +} const cloudflareIps = [ '103.21.244.0/22', @@ -27,21 +40,12 @@ const cloudflareIps = [ '2a06:98c0::/29', ].map(intoAddress); -// returns undefined | Address4 | Address6 -function intoAddress(str) { - if (typeof str === 'string') str = str.trim(); - let ip = new Address6(str); - if (ip.v4 && !ip.valid) { - ip = new Address4(str); - } - if (!ip.valid) return; - return ip; -} - // returns bool -export function isCloudflareIp(testIpString: string): boolean { +function isCloudflareIp(testIpString: string): boolean { if (!testIpString) return false; const testIp = intoAddress(testIpString); if (!testIp) return false; return cloudflareIps.some(cf => testIp.isInSubnet(cf)); } + +export default isCloudflareIp; diff --git a/src/utils/cron.js b/src/utils/cron.js index 988c39e9..73ee4cad 100644 --- a/src/utils/cron.js +++ b/src/utils/cron.js @@ -4,7 +4,7 @@ * hook it up to some timer function that causes the least load * @flow */ -import { HOUR, MINUTE } from '../core/constants'; +import { HOUR } from '../core/constants'; import logger from '../core/logger'; diff --git a/src/utils/ip.js b/src/utils/ip.js index f2e1501b..ff23f0f7 100644 --- a/src/utils/ip.js +++ b/src/utils/ip.js @@ -3,9 +3,7 @@ * @flow */ -import dns from 'dns'; -import { isCloudflareIp } from './cloudflareip'; -import nodeIp from 'ip'; +import isCloudflareIp from './cloudflareip'; import logger from '../core/logger'; diff --git a/tools/webpack.config.js b/tools/webpack.config.js index 3be4c1be..bab03a7f 100644 --- a/tools/webpack.config.js +++ b/tools/webpack.config.js @@ -23,10 +23,14 @@ const config = { pathinfo: isVerbose, }, + resolve: { + extensions: ['.js', '.jsx', '.json'], + }, + module: { rules: [ { - test: /\.jsx?$/, + test: /\.(js|jsx)$/, loader: 'babel-loader', include: [ path.resolve(__dirname, '../src'),