1
0
mirror of https://github.com/uetchy/namae.git synced 2025-03-16 12:10:32 +09:00
This commit is contained in:
uetchy 2020-07-19 13:39:15 +09:00
parent 536821d055
commit 96c2c70e28
Signed by: uetchy
GPG Key ID: 72A3B30FCD0AA810
8 changed files with 37 additions and 41 deletions

View File

@ -1,8 +1,5 @@
{ {
"jsxBracketSameLine": true,
"semi": true,
"singleQuote": true, "singleQuote": true,
"trailingComma": "all", "trailingComma": "all",
"arrowParens": "always", "arrowParens": "always"
"bracketSpacing": true
} }

View File

@ -1,6 +1,5 @@
/build /build
/tests /tests
/.dependabot
/.envrc /.envrc
/.env /.env
/.github /.github

View File

@ -1,11 +1,11 @@
import {send, sendError, fetch} from '../../../util/http'; import { NowRequest, NowResponse } from '@vercel/node';
import {NowRequest, NowResponse} from '@vercel/node'; import { fetch, send, sendError } from '../../../util/http';
export default async function handler( export default async function handler(
req: NowRequest, req: NowRequest,
res: NowResponse, res: NowResponse,
): Promise<void> { ): Promise<void> {
const {query} = req.query; const { query } = req.query;
if (!query || typeof query !== 'string') { if (!query || typeof query !== 'string') {
return sendError(res, new Error('No query given')); return sendError(res, new Error('No query given'));
@ -21,7 +21,7 @@ export default async function handler(
'GET', 'GET',
).then((res) => res.json()); ).then((res) => res.json());
const availability = response.valid; const availability = response.valid;
send(res, {availability}); send(res, { availability });
} catch (err) { } catch (err) {
sendError(res, err); sendError(res, err);
} }

View File

@ -60,7 +60,6 @@
"mutationobserver-shim": "^0.3.5", "mutationobserver-shim": "^0.3.5",
"nock": "^12.0.3", "nock": "^12.0.3",
"prettier": "^2.0.5", "prettier": "^2.0.5",
"prettier-plugin-organize-imports": "^1.1.1",
"pretty-quick": "^2.0.1", "pretty-quick": "^2.0.1",
"ts-jest": "26.1.0", "ts-jest": "26.1.0",
"typescript": "^3.9.5" "typescript": "^3.9.5"

View File

@ -4,7 +4,7 @@ import 'rc-tooltip/assets/bootstrap.css';
import React from 'react'; import React from 'react';
import ReactDOM from 'react-dom'; import ReactDOM from 'react-dom';
import { Router } from 'react-router-dom'; import { Router } from 'react-router-dom';
import { toast, ToastContainer } from 'react-toastify'; import { ToastContainer } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css'; import 'react-toastify/dist/ReactToastify.css';
import App from './App'; import App from './App';
import * as serviceWorker from './serviceWorker'; import * as serviceWorker from './serviceWorker';
@ -36,21 +36,23 @@ ReactDOM.render(
document.getElementById('root'), document.getElementById('root'),
); );
serviceWorker.register({ serviceWorker.unregister();
onUpdate: (registration) => { // TODO: gracefully update service worker
console.log('Update available'); // serviceWorker.register({
// onUpdate: (registration) => {
// console.log('Update available');
toast.dark('New version available! Click here to update.', { // toast.dark('New version available! Click here to update.', {
onClose: () => { // onClose: () => {
window.location.reload(); // window.location.reload();
}, // },
position: 'top-right', // position: 'top-right',
autoClose: false, // autoClose: false,
closeButton: false, // closeButton: false,
closeOnClick: true, // closeOnClick: true,
}); // });
if (registration && registration.waiting) { // if (registration && registration.waiting) {
registration.waiting.postMessage({ type: 'SKIP_WAITING' }); // registration.waiting.postMessage({ type: 'SKIP_WAITING' });
} // }
}, // },
}); // });

View File

@ -1,5 +1,5 @@
import {History} from 'history'; import { action, Action, createStore, createTypedHooks } from 'easy-peasy';
import {action, createTypedHooks, Action, createStore} from 'easy-peasy'; import { History } from 'history';
interface StatsModel { interface StatsModel {
availableCount: number; availableCount: number;

View File

@ -1,22 +1,21 @@
import nock from 'nock'; import nock from 'nock';
import {mockProvider} from '../util/testHelpers';
import provider from '../api/services/existence/[query]'; import provider from '../api/services/existence/[query]';
import { mockProvider } from '../util/testHelpers';
test('return false if name is taken', async () => { test('return false if name is taken', async () => {
const result = await mockProvider(provider, {query: 'github.com/uetchy'}); const result = await mockProvider(provider, { query: 'github.com/uetchy' });
expect(result).toStrictEqual({availability: false}); expect(result).toStrictEqual({ availability: false });
}); });
test('return true if name is not taken', async () => { test('return true if name is not taken', async () => {
const result = await mockProvider(provider, { const result = await mockProvider(provider, {
query: 'github.com/uetchyasdf', query: 'github.com/uetchyasdf',
}); });
expect(result).toStrictEqual({availability: true}); expect(result).toStrictEqual({ availability: true });
}); });
beforeEach(() => { beforeEach(() => {
nock('https://github.com:443', {encodedQueryParams: true}) nock('https://github.com:443', { encodedQueryParams: true })
.head('/uetchyasdf') .head('/uetchyasdf')
.reply(404, [], { .reply(404, [], {
Date: 'Wed, 14 Aug 2019 10:52:54 GMT', Date: 'Wed, 14 Aug 2019 10:52:54 GMT',
@ -46,7 +45,7 @@ beforeEach(() => {
'Content-Encoding': 'gzip', 'Content-Encoding': 'gzip',
'X-GitHub-Request-Id': 'BA06:51D6:125A0F:1A9B4A:5D53E806', 'X-GitHub-Request-Id': 'BA06:51D6:125A0F:1A9B4A:5D53E806',
}); });
nock('https://github.com:443', {encodedQueryParams: true}) nock('https://github.com:443', { encodedQueryParams: true })
.head('/uetchy') .head('/uetchy')
.reply(200, [], { .reply(200, [], {
Date: 'Wed, 14 Aug 2019 10:43:09 GMT', Date: 'Wed, 14 Aug 2019 10:43:09 GMT',

View File

@ -1,5 +1,5 @@
import nodeFetch, {Response} from 'node-fetch'; import { NowResponse } from '@vercel/node';
import {NowResponse} from '@vercel/node'; import nodeFetch, { Response } from 'node-fetch';
export type HttpMethod = export type HttpMethod =
| 'GET' | 'GET'
@ -15,7 +15,7 @@ export function fetch(
url: string, url: string,
method: HttpMethod = 'HEAD', method: HttpMethod = 'HEAD',
): Promise<Response> { ): Promise<Response> {
return nodeFetch(url, {method: method}); return nodeFetch(url, { method: method });
} }
export function send(res: NowResponse, data: object): void { export function send(res: NowResponse, data: object): void {
@ -24,5 +24,5 @@ export function send(res: NowResponse, data: object): void {
} }
export function sendError(res: NowResponse, error: Error): void { export function sendError(res: NowResponse, error: Error): void {
res.status(400).json({error: error.message}); res.status(400).json({ error: error.message });
} }