♻️ Replace jsonlint with ajv-cli (#1253)

* ♻️ Update schema to `draft2020`
* ♻️ Replace `jsonlint` with `ajv-cli`
* 🚚 Rename `api` endpoint from `.tsx` to `.ts`
* 🔧 Use prettier on .ts files in gitmojis
This commit is contained in:
Carlos Cuesta 2023-01-05 11:43:01 +01:00 committed by GitHub
parent 37571b1220
commit 6233229fe1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 102 additions and 110 deletions

View File

@ -1,3 +1,4 @@
{
"./src/*.json": ["prettier --write ./src/*.json"]
"./src/*.json": ["prettier --write ./src/*.json"],
"./src/*.ts": ["prettier --write ./src/*.ts"]
}

View File

@ -8,11 +8,11 @@
],
"types": "src/gitmojis.d.ts",
"scripts": {
"lint": "jsonlint ./src/gitmojis.json -V ./src/schema.json",
"lint": "ajv --spec=draft2020 validate -s ./src/schema.json -d ./src/gitmojis.json",
"publishPackage": "npm publish"
},
"devDependencies": {
"jsonlint": "^1.6.3",
"ajv-cli": "^5.0.0",
"lint-staged": "^13.0.0",
"prettier": "2.8.1"
},

View File

@ -1,46 +1,40 @@
{
"type": "object",
"$schema": "http://json-schema.org/draft-03/schema",
"id": "http://jsonschema.net",
"required": true,
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": ["gitmojis"],
"properties": {
"gitmojis": {
"type": "array",
"id": "http://jsonschema.net/gitmojis",
"required": true,
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"id": "http://jsonschema.net/gitmojis/0",
"required": true,
"required": [
"emoji",
"entity",
"code",
"description",
"name",
"semver"
],
"properties": {
"code": {
"type": "string",
"id": "http://jsonschema.net/gitmojis/0/code",
"required": true
"type": "string"
},
"entity": {
"type": "string",
"id": "http://jsonschema.net/gitmojis/0/entity"
"type": "string"
},
"description": {
"type": "string",
"id": "http://jsonschema.net/gitmojis/0/description",
"required": true
"type": "string"
},
"emoji": {
"type": "string",
"id": "http://jsonschema.net/gitmojis/0/emoji",
"required": true
"type": "string"
},
"name": {
"type": "string",
"id": "http://jsonschema.net/gitmojis/0/name",
"required": true
"type": "string"
},
"semver": {
"enum": ["major", "minor", "patch", null],
"id": "http://jsonschema.net/gitmojis/0/semver",
"required": true
"enum": ["major", "minor", "patch", null]
}
}
}

View File

@ -1,18 +1,14 @@
import { useEffect, useState } from 'react'
import Clipboard from 'clipboard'
import { useRouter } from 'next/router'
import type { Gitmoji as GitmojiType } from 'gitmojis'
import Gitmoji from './Gitmoji'
import Toolbar from './Toolbar'
import useLocalStorage from './hooks/useLocalStorage'
type Props = {
gitmojis: Array<{
code: string
description: string
emoji: string
name: string
}>
gitmojis: readonly GitmojiType[]
}
const GitmojiList = (props: Props) => {

View File

@ -1,11 +1,14 @@
import type { NextApiRequest, NextApiResponse } from 'next'
import gitmojisData from 'gitmojis'
import { gitmojis } from 'gitmojis'
const gitmojis = (request: NextApiRequest, response: NextApiResponse): void => {
const getGitmojis = (
request: NextApiRequest,
response: NextApiResponse
): void => {
const { method } = request
if (method === 'GET') {
response.status(200).json(gitmojisData)
response.status(200).json({ gitmojis })
return
}
@ -13,4 +16,4 @@ const gitmojis = (request: NextApiRequest, response: NextApiResponse): void => {
response.status(405).json({ error: `Error: method ${method} not allowed` })
}
export default gitmojis
export default getGitmojis

144
yarn.lock
View File

@ -2520,13 +2520,6 @@ __metadata:
languageName: node
linkType: hard
"JSV@npm:^4.0.x":
version: 4.0.2
resolution: "JSV@npm:4.0.2"
checksum: 9e2e070b2149d4ffed6c135dedb5f8cebb870dc63c0ca6d3cb647067248c7ca15d1a934ee46e9d2ac0e468436d0f70bc1b63cd5f93e705ee9aa0669430e6e66f
languageName: node
linkType: hard
"abab@npm:^2.0.6":
version: 2.0.6
resolution: "abab@npm:2.0.6"
@ -2634,6 +2627,28 @@ __metadata:
languageName: node
linkType: hard
"ajv-cli@npm:^5.0.0":
version: 5.0.0
resolution: "ajv-cli@npm:5.0.0"
dependencies:
ajv: ^8.0.0
fast-json-patch: ^2.0.0
glob: ^7.1.0
js-yaml: ^3.14.0
json-schema-migrate: ^2.0.0
json5: ^2.1.3
minimist: ^1.2.0
peerDependencies:
ts-node: ">=9.0.0"
peerDependenciesMeta:
ts-node:
optional: true
bin:
ajv: dist/index.js
checksum: e8ba29f618c653abba3a08d8784f8c882b5ac560dab587540af4d53d8230acb93af07c37165a0461294adb4015ba8ceb09916017a66754c782f950f9679ae94a
languageName: node
linkType: hard
"ajv-keywords@npm:^3.5.2":
version: 3.5.2
resolution: "ajv-keywords@npm:3.5.2"
@ -2655,6 +2670,18 @@ __metadata:
languageName: node
linkType: hard
"ajv@npm:^8.0.0":
version: 8.12.0
resolution: "ajv@npm:8.12.0"
dependencies:
fast-deep-equal: ^3.1.1
json-schema-traverse: ^1.0.0
require-from-string: ^2.0.2
uri-js: ^4.2.2
checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001
languageName: node
linkType: hard
"ajv@npm:^8.6.0":
version: 8.11.0
resolution: "ajv@npm:8.11.0"
@ -2722,13 +2749,6 @@ __metadata:
languageName: node
linkType: hard
"ansi-styles@npm:~1.0.0":
version: 1.0.0
resolution: "ansi-styles@npm:1.0.0"
checksum: 6dd47dccb268b4cc1fd0dd6617067a7acd34ad2761f0438800fdd55c0d45f50a90787acd82806009c2bf467f4e2920166be03e19b23529038c1c4527d80f598b
languageName: node
linkType: hard
"anymatch@npm:^3.0.3":
version: 3.1.2
resolution: "anymatch@npm:3.1.2"
@ -3225,17 +3245,6 @@ __metadata:
languageName: node
linkType: hard
"chalk@npm:~0.4.0":
version: 0.4.0
resolution: "chalk@npm:0.4.0"
dependencies:
ansi-styles: ~1.0.0
has-color: ~0.1.0
strip-ansi: ~0.1.0
checksum: e8f04f387b9fbf746fdce4b61a633f8a0d28224d8b022603db0f2d137471a18c5bc0bc33b243df09c361688f12bd3ab8a9dd1f8b4450d5a361bfe83aadbde739
languageName: node
linkType: hard
"char-regex@npm:^1.0.2":
version: 1.0.2
resolution: "char-regex@npm:1.0.2"
@ -4372,6 +4381,13 @@ __metadata:
languageName: node
linkType: hard
"fast-deep-equal@npm:^2.0.1":
version: 2.0.1
resolution: "fast-deep-equal@npm:2.0.1"
checksum: b701835a87985e0ec4925bdf1f0c1e7eb56309b5d12d534d5b4b69d95a54d65bb16861c081781ead55f73f12d6c60ba668713391ee7fbf6b0567026f579b7b0b
languageName: node
linkType: hard
"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
version: 3.1.3
resolution: "fast-deep-equal@npm:3.1.3"
@ -4405,6 +4421,15 @@ __metadata:
languageName: node
linkType: hard
"fast-json-patch@npm:^2.0.0":
version: 2.2.1
resolution: "fast-json-patch@npm:2.2.1"
dependencies:
fast-deep-equal: ^2.0.1
checksum: 955aebb3f873d1fb0452a5d8c34865ce4c3c6cdafeb7d3ad98d43b467de9a5a0d304132f8595fd2b373f8f4d200605947e865286b180f3a55e8377a634893164
languageName: node
linkType: hard
"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0":
version: 2.1.0
resolution: "fast-json-stable-stringify@npm:2.1.0"
@ -4731,7 +4756,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "gitmojis@workspace:packages/gitmojis"
dependencies:
jsonlint: ^1.6.3
ajv-cli: ^5.0.0
lint-staged: ^13.0.0
prettier: 2.8.1
languageName: unknown
@ -4769,7 +4794,7 @@ __metadata:
languageName: node
linkType: hard
"glob@npm:^7.0.3, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6":
"glob@npm:^7.0.3, glob@npm:^7.1.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6":
version: 7.2.3
resolution: "glob@npm:7.2.3"
dependencies:
@ -4896,13 +4921,6 @@ __metadata:
languageName: node
linkType: hard
"has-color@npm:~0.1.0":
version: 0.1.7
resolution: "has-color@npm:0.1.7"
checksum: 5753d76b1330bc1f5a07171f222ed0718f5ec2d64d5677800e434f183a99f7042f5cda43c9625a2d0f0204063aa03499a66f1c15283d789773b3544f18f93f58
languageName: node
linkType: hard
"has-flag@npm:^3.0.0":
version: 3.0.0
resolution: "has-flag@npm:3.0.0"
@ -5989,7 +6007,7 @@ __metadata:
languageName: node
linkType: hard
"js-yaml@npm:^3.13.1":
"js-yaml@npm:^3.13.1, js-yaml@npm:^3.14.0":
version: 3.14.1
resolution: "js-yaml@npm:3.14.1"
dependencies:
@ -6077,6 +6095,15 @@ __metadata:
languageName: node
linkType: hard
"json-schema-migrate@npm:^2.0.0":
version: 2.0.0
resolution: "json-schema-migrate@npm:2.0.0"
dependencies:
ajv: ^8.0.0
checksum: 21537305f3a5102695cfeeab997d565516297b240ee560bf7fe5c01ea4d56b65e0fbc4e9a4f9a32819e2cb1874daf43b06eb580e623d0aade0cf50d03ae40418
languageName: node
linkType: hard
"json-schema-traverse@npm:^0.4.1":
version: 0.4.1
resolution: "json-schema-traverse@npm:0.4.1"
@ -6125,6 +6152,15 @@ __metadata:
languageName: node
linkType: hard
"json5@npm:^2.1.3":
version: 2.2.3
resolution: "json5@npm:2.2.3"
bin:
json5: lib/cli.js
checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349
languageName: node
linkType: hard
"jsonfile@npm:^6.0.1":
version: 6.1.0
resolution: "jsonfile@npm:6.1.0"
@ -6138,18 +6174,6 @@ __metadata:
languageName: node
linkType: hard
"jsonlint@npm:^1.6.3":
version: 1.6.3
resolution: "jsonlint@npm:1.6.3"
dependencies:
JSV: ^4.0.x
nomnom: ^1.5.x
bin:
jsonlint: lib/cli.js
checksum: be0972cf552ff1ec589db5d7b20ff31064561fbe4605708f5a260e2dcc18e26acd5bf842ba10dd157706232aca6d6c9116d21005cb3e8fb5ec9d9b01c8869677
languageName: node
linkType: hard
"jsonpointer@npm:^5.0.0":
version: 5.0.1
resolution: "jsonpointer@npm:5.0.1"
@ -6854,16 +6878,6 @@ __metadata:
languageName: node
linkType: hard
"nomnom@npm:^1.5.x":
version: 1.8.1
resolution: "nomnom@npm:1.8.1"
dependencies:
chalk: ~0.4.0
underscore: ~1.6.0
checksum: cc6f538062741e8914b65352499c444a754d18a95f8c4b336b9183367c44335f00a9d3beb54648f6a76d5434702a3d71bf37c23ef4c960d39595ed72d376c6fd
languageName: node
linkType: hard
"nopt@npm:^6.0.0":
version: 6.0.0
resolution: "nopt@npm:6.0.0"
@ -8221,15 +8235,6 @@ __metadata:
languageName: node
linkType: hard
"strip-ansi@npm:~0.1.0":
version: 0.1.1
resolution: "strip-ansi@npm:0.1.1"
bin:
strip-ansi: cli.js
checksum: 31f1d4d3b86e6d968aa568bf47d712626dd748aff7d576a98ba2ed378dd60dfb1475898254b62479779231e50a38f0b7ea0b66d3b22d14cde38b769c1c747d33
languageName: node
linkType: hard
"strip-bom@npm:^3.0.0":
version: 3.0.0
resolution: "strip-bom@npm:3.0.0"
@ -8719,13 +8724,6 @@ __metadata:
languageName: node
linkType: hard
"underscore@npm:~1.6.0":
version: 1.6.0
resolution: "underscore@npm:1.6.0"
checksum: bfb837d95164077bd2751247dd9797546287c060d86c3a730f590948dbc132b426238e37df7bea28f39d3e3abf571de5b974809ee3c32d309280fed851588ef9
languageName: node
linkType: hard
"unicode-canonical-property-names-ecmascript@npm:^2.0.0":
version: 2.0.0
resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0"