update and lint

This commit is contained in:
Medzik 2021-09-16 20:47:50 +00:00
parent 92ce142183
commit c37c63cfe2
6 changed files with 93 additions and 24 deletions

View File

@ -4,9 +4,11 @@
"es2021": true, "es2021": true,
"node": true "node": true
}, },
"parser": "@typescript-eslint/parser",
"extends": [ "extends": [
"eslint:recommended", "eslint:recommended",
"plugin:react/recommended" "plugin:react/recommended",
"plugin:@typescript-eslint/eslint-recommended"
], ],
"parserOptions": { "parserOptions": {
"ecmaFeatures": { "ecmaFeatures": {
@ -16,7 +18,8 @@
"sourceType": "module" "sourceType": "module"
}, },
"plugins": [ "plugins": [
"react" "react",
"@typescript-eslint"
], ],
"rules": { "rules": {
"semi": [ "semi": [

View File

@ -5,7 +5,7 @@ import URLModel from '../lib/schema'
export default async (request: VercelRequest, response: VercelResponse) => { export default async (request: VercelRequest, response: VercelResponse) => {
const { method } = request const { method } = request
const db = await dbConnect() await dbConnect()
switch (method) { switch (method) {
case 'POST': case 'POST':
@ -21,6 +21,7 @@ export default async (request: VercelRequest, response: VercelResponse) => {
try { try {
await axios.get(request.body.url) await axios.get(request.body.url)
} catch (err) { } catch (err) {
console.error(err)
return response.status(400).json( return response.status(400).json(
{ {
success: false, success: false,
@ -43,7 +44,7 @@ export default async (request: VercelRequest, response: VercelResponse) => {
} }
) )
} catch (err) { } catch (err) {
console.log(err) console.error(err)
return response.status(400).json( return response.status(400).json(
{ {
success: false, success: false,
@ -51,8 +52,6 @@ export default async (request: VercelRequest, response: VercelResponse) => {
} }
) )
} }
break
case 'DELETE': case 'DELETE':
if (!request.query.url) { if (!request.query.url) {
return response.status(400).json( return response.status(400).json(
@ -66,7 +65,7 @@ export default async (request: VercelRequest, response: VercelResponse) => {
try { try {
const url = request.query.url const url = request.query.url
if (typeof url != "string") { if (typeof url != 'string') {
return response.status(400).json( return response.status(400).json(
{ {
success: false, success: false,
@ -87,7 +86,7 @@ export default async (request: VercelRequest, response: VercelResponse) => {
} }
) )
} catch (err) { } catch (err) {
console.log(err) console.error(err)
return response.status(400).json( return response.status(400).json(
{ {
success: false, success: false,
@ -95,16 +94,10 @@ export default async (request: VercelRequest, response: VercelResponse) => {
} }
) )
} }
break
default: default:
const urls = await URLModel.find() response.status(200).json({
db: await URLModel.find()
response.status(200).json( })
{
db: urls
}
)
break break
} }

View File

@ -1,11 +1,11 @@
import { connect } from "mongoose" import { connect } from 'mongoose'
interface CachedMongo { interface CachedMongo {
conn: typeof import("mongoose") conn: typeof import('mongoose')
promise: Promise<typeof import("mongoose")> promise: Promise<typeof import('mongoose')>
} }
const { MONGODB_URI, MONGODB_DB, MONGODB_COLLECTION } = process.env const { MONGODB_URI } = process.env
let cached: CachedMongo = global.mongo let cached: CachedMongo = global.mongo

View File

@ -1,4 +1,6 @@
import { model, models, Schema } from "mongoose" import { model, models, Schema } from 'mongoose'
const { MONGODB_COLLECTION } = process.env
interface URL { interface URL {
url: string url: string
@ -12,12 +14,12 @@ const schema = new Schema<URL>({
} }
}) })
schema.path('url').validate(async function(value) { schema.path(MONGODB_COLLECTION).validate(async function(value) {
const count = await models.URL.countDocuments({ url: value }) const count = await models.URL.countDocuments({ url: value })
return !count return !count
}, 'URL already exists') }, 'URL already exists')
const URLModel = model<URL>('url', schema) const URLModel = model<URL>(MONGODB_COLLECTION, schema)
export = URLModel export = URLModel

View File

@ -34,6 +34,8 @@
}, },
"devDependencies": { "devDependencies": {
"@types/mongoose": "5.11.97", "@types/mongoose": "5.11.97",
"@typescript-eslint/eslint-plugin": "^4.31.1",
"@typescript-eslint/parser": "^4.31.1",
"@vercel/node": "1.12.1", "@vercel/node": "1.12.1",
"eslint": "7.32.0", "eslint": "7.32.0",
"eslint-plugin-react": "7.25.1" "eslint-plugin-react": "7.25.1"

View File

@ -1727,6 +1727,19 @@
semver "^7.3.5" semver "^7.3.5"
tsutils "^3.21.0" tsutils "^3.21.0"
"@typescript-eslint/eslint-plugin@^4.31.1":
version "4.31.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.1.tgz#e938603a136f01dcabeece069da5fb2e331d4498"
integrity sha512-UDqhWmd5i0TvPLmbK5xY3UZB0zEGseF+DHPghZ37Sb83Qd3p8ujhvAtkU4OF46Ka5Pm5kWvFIx0cCTBFKo0alA==
dependencies:
"@typescript-eslint/experimental-utils" "4.31.1"
"@typescript-eslint/scope-manager" "4.31.1"
debug "^4.3.1"
functional-red-black-tree "^1.0.1"
regexpp "^3.1.0"
semver "^7.3.5"
tsutils "^3.21.0"
"@typescript-eslint/experimental-utils@4.30.0": "@typescript-eslint/experimental-utils@4.30.0":
version "4.30.0" version "4.30.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.30.0.tgz#9e49704fef568432ae16fc0d6685c13d67db0fd5" resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.30.0.tgz#9e49704fef568432ae16fc0d6685c13d67db0fd5"
@ -1739,6 +1752,18 @@
eslint-scope "^5.1.1" eslint-scope "^5.1.1"
eslint-utils "^3.0.0" eslint-utils "^3.0.0"
"@typescript-eslint/experimental-utils@4.31.1":
version "4.31.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.1.tgz#0c900f832f270b88e13e51753647b02d08371ce5"
integrity sha512-NtoPsqmcSsWty0mcL5nTZXMf7Ei0Xr2MT8jWjXMVgRK0/1qeQ2jZzLFUh4QtyJ4+/lPUyMw5cSfeeME+Zrtp9Q==
dependencies:
"@types/json-schema" "^7.0.7"
"@typescript-eslint/scope-manager" "4.31.1"
"@typescript-eslint/types" "4.31.1"
"@typescript-eslint/typescript-estree" "4.31.1"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
"@typescript-eslint/parser@^4.29.3": "@typescript-eslint/parser@^4.29.3":
version "4.30.0" version "4.30.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.30.0.tgz#6abd720f66bd790f3e0e80c3be77180c8fcb192d" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.30.0.tgz#6abd720f66bd790f3e0e80c3be77180c8fcb192d"
@ -1749,6 +1774,16 @@
"@typescript-eslint/typescript-estree" "4.30.0" "@typescript-eslint/typescript-estree" "4.30.0"
debug "^4.3.1" debug "^4.3.1"
"@typescript-eslint/parser@^4.31.1":
version "4.31.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.31.1.tgz#8f9a2672033e6f6d33b1c0260eebdc0ddf539064"
integrity sha512-dnVZDB6FhpIby6yVbHkwTKkn2ypjVIfAR9nh+kYsA/ZL0JlTsd22BiDjouotisY3Irmd3OW1qlk9EI5R8GrvRQ==
dependencies:
"@typescript-eslint/scope-manager" "4.31.1"
"@typescript-eslint/types" "4.31.1"
"@typescript-eslint/typescript-estree" "4.31.1"
debug "^4.3.1"
"@typescript-eslint/scope-manager@4.30.0": "@typescript-eslint/scope-manager@4.30.0":
version "4.30.0" version "4.30.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz#1a3ffbb385b1a06be85cd5165a22324f069a85ee" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.30.0.tgz#1a3ffbb385b1a06be85cd5165a22324f069a85ee"
@ -1757,11 +1792,24 @@
"@typescript-eslint/types" "4.30.0" "@typescript-eslint/types" "4.30.0"
"@typescript-eslint/visitor-keys" "4.30.0" "@typescript-eslint/visitor-keys" "4.30.0"
"@typescript-eslint/scope-manager@4.31.1":
version "4.31.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.1.tgz#0c21e8501f608d6a25c842fcf59541ef4f1ab561"
integrity sha512-N1Uhn6SqNtU2XpFSkD4oA+F0PfKdWHyr4bTX0xTj8NRx1314gBDRL1LUuZd5+L3oP+wo6hCbZpaa1in6SwMcVQ==
dependencies:
"@typescript-eslint/types" "4.31.1"
"@typescript-eslint/visitor-keys" "4.31.1"
"@typescript-eslint/types@4.30.0": "@typescript-eslint/types@4.30.0":
version "4.30.0" version "4.30.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.30.0.tgz#fb9d9b0358426f18687fba82eb0b0f869780204f" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.30.0.tgz#fb9d9b0358426f18687fba82eb0b0f869780204f"
integrity sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw== integrity sha512-YKldqbNU9K4WpTNwBqtAerQKLLW/X2A/j4yw92e3ZJYLx+BpKLeheyzoPfzIXHfM8BXfoleTdiYwpsvVPvHrDw==
"@typescript-eslint/types@4.31.1":
version "4.31.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.1.tgz#5f255b695627a13401d2fdba5f7138bc79450d66"
integrity sha512-kixltt51ZJGKENNW88IY5MYqTBA8FR0Md8QdGbJD2pKZ+D5IvxjTYDNtJPDxFBiXmka2aJsITdB1BtO1fsgmsQ==
"@typescript-eslint/typescript-estree@4.30.0": "@typescript-eslint/typescript-estree@4.30.0":
version "4.30.0" version "4.30.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz#ae57833da72a753f4846cd3053758c771670c2ac" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.30.0.tgz#ae57833da72a753f4846cd3053758c771670c2ac"
@ -1775,6 +1823,19 @@
semver "^7.3.5" semver "^7.3.5"
tsutils "^3.21.0" tsutils "^3.21.0"
"@typescript-eslint/typescript-estree@4.31.1":
version "4.31.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.1.tgz#4a04d5232cf1031232b7124a9c0310b577a62d17"
integrity sha512-EGHkbsUvjFrvRnusk6yFGqrqMBTue5E5ROnS5puj3laGQPasVUgwhrxfcgkdHNFECHAewpvELE1Gjv0XO3mdWg==
dependencies:
"@typescript-eslint/types" "4.31.1"
"@typescript-eslint/visitor-keys" "4.31.1"
debug "^4.3.1"
globby "^11.0.3"
is-glob "^4.0.1"
semver "^7.3.5"
tsutils "^3.21.0"
"@typescript-eslint/visitor-keys@4.30.0": "@typescript-eslint/visitor-keys@4.30.0":
version "4.30.0" version "4.30.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz#a47c6272fc71b0c627d1691f68eaecf4ad71445e" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.30.0.tgz#a47c6272fc71b0c627d1691f68eaecf4ad71445e"
@ -1783,6 +1844,14 @@
"@typescript-eslint/types" "4.30.0" "@typescript-eslint/types" "4.30.0"
eslint-visitor-keys "^2.0.0" eslint-visitor-keys "^2.0.0"
"@typescript-eslint/visitor-keys@4.31.1":
version "4.31.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.1.tgz#f2e7a14c7f20c4ae07d7fc3c5878c4441a1da9cc"
integrity sha512-PCncP8hEqKw6SOJY+3St4LVtoZpPPn+Zlpm7KW5xnviMhdqcsBty4Lsg4J/VECpJjw1CkROaZhH4B8M1OfnXTQ==
dependencies:
"@typescript-eslint/types" "4.31.1"
eslint-visitor-keys "^2.0.0"
"@vercel/node@1.12.1": "@vercel/node@1.12.1":
version "1.12.1" version "1.12.1"
resolved "https://registry.yarnpkg.com/@vercel/node/-/node-1.12.1.tgz#15f42f64690f904f8a52a387123ce0958657060f" resolved "https://registry.yarnpkg.com/@vercel/node/-/node-1.12.1.tgz#15f42f64690f904f8a52a387123ce0958657060f"