From 593b4cde4a641457b9758f43839eb444c1b21a8e Mon Sep 17 00:00:00 2001 From: Artemy Date: Sun, 12 May 2024 16:28:25 +0300 Subject: [PATCH] fix: lock and format --- .github/workflows/build.yml | 2 +- .github/workflows/format-check.yml | 2 +- packages/plugins/src/engines/index.ts | 6 +-- packages/plugins/src/engines/readability.ts | 14 +++---- packages/plugins/src/engines/searx.ts | 34 +++++++-------- .../src/engines/stackoverflow/index.ts | 28 ++++++------- .../src/engines/stackoverflow/questions.ts | 28 ++++++------- packages/plugins/src/lib.ts | 2 +- packages/sdk/src/engine.ts | 6 +-- packages/sdk/src/lib.ts | 2 +- packages/sdk/src/types/errors.ts | 4 +- packages/sdk/src/types/handler.ts | 14 +++---- pnpm-lock.yaml | 42 +++++++++---------- pnpm-workspace.yaml | 2 +- 14 files changed, 93 insertions(+), 93 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d9a5b49..b8f2e8f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,7 +10,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v2 with: - node-version: "20" + node-version: '20' - uses: pnpm/action-setup@v4 with: diff --git a/.github/workflows/format-check.yml b/.github/workflows/format-check.yml index 2420c0a..ec36ec5 100644 --- a/.github/workflows/format-check.yml +++ b/.github/workflows/format-check.yml @@ -10,7 +10,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v2 with: - node-version: "20" + node-version: '20' - uses: pnpm/action-setup@v4 with: diff --git a/packages/plugins/src/engines/index.ts b/packages/plugins/src/engines/index.ts index ef8a062..b5f8527 100644 --- a/packages/plugins/src/engines/index.ts +++ b/packages/plugins/src/engines/index.ts @@ -1,5 +1,5 @@ -import StackOverflow from "./stackoverflow"; -import Readability from "./readability"; -import SearX from "./searx"; +import StackOverflow from './stackoverflow'; +import Readability from './readability'; +import SearX from './searx'; export { StackOverflow, Readability, SearX }; diff --git a/packages/plugins/src/engines/readability.ts b/packages/plugins/src/engines/readability.ts index 46ec255..7e74f6c 100644 --- a/packages/plugins/src/engines/readability.ts +++ b/packages/plugins/src/engines/readability.ts @@ -1,15 +1,15 @@ -import { Readability as OReadability } from "@mozilla/readability"; -import { EngineParseError } from "@txtdot/sdk/dist/types/errors"; +import { Readability as OReadability } from '@mozilla/readability'; +import { EngineParseError } from '@txtdot/sdk/dist/types/errors'; -import { Engine } from "@txtdot/sdk"; +import { Engine } from '@txtdot/sdk'; const Readability = new Engine( - "Readability", - "Engine for parsing content with Readability", - ["*"] + 'Readability', + 'Engine for parsing content with Readability', + ['*'] ); -Readability.route("*path", async (input, ro) => { +Readability.route('*path', async (input, ro) => { const reader = new OReadability(input.parseDom().window.document); const parsed = reader.parse(); diff --git a/packages/plugins/src/engines/searx.ts b/packages/plugins/src/engines/searx.ts index 41cf66e..d4fa247 100644 --- a/packages/plugins/src/engines/searx.ts +++ b/packages/plugins/src/engines/searx.ts @@ -1,8 +1,8 @@ -import { Engine } from "@txtdot/sdk"; -import { HandlerInput, Route } from "@txtdot/sdk/dist/types/handler"; +import { Engine } from '@txtdot/sdk'; +import { HandlerInput, Route } from '@txtdot/sdk/dist/types/handler'; -const SearX = new Engine("SearX", "Engine for searching with 'SearXNG'", [ - "searx.*", +const SearX = new Engine('SearX', "Engine for searching with 'SearXNG'", [ + 'searx.*', ]); async function search( @@ -11,26 +11,26 @@ async function search( ) { const document = input.parseDom().window.document; const search = ro.q.search; - const page = parseInt(ro.q.pageno || "1"); + const page = parseInt(ro.q.pageno || '1'); const page_footer = `${ page !== 1 ? `Previous |` - : "" + : '' } Next`; - const articles = Array.from(document.querySelectorAll(".result")); + const articles = Array.from(document.querySelectorAll('.result')); const articles_parsed = articles.map((a) => { const parsed = { url: - (a.getElementsByClassName("url_wrapper")[0] as HTMLAnchorElement) - .href || "", + (a.getElementsByClassName('url_wrapper')[0] as HTMLAnchorElement) + .href || '', title: - (a.getElementsByTagName("h3")[0] as HTMLHeadingElement).textContent || - "", + (a.getElementsByTagName('h3')[0] as HTMLHeadingElement).textContent || + '', content: - (a.getElementsByClassName("content")[0] as HTMLDivElement) - .textContent || "", + (a.getElementsByClassName('content')[0] as HTMLDivElement) + .textContent || '', }; return { @@ -41,8 +41,8 @@ async function search( const content = `${articles_parsed .map((a) => a.html) - .join("")}${page_footer}`; - const textContent = articles_parsed.map((a) => a.text).join(""); + .join('')}${page_footer}`; + const textContent = articles_parsed.map((a) => a.text).join(''); return { content, @@ -52,7 +52,7 @@ async function search( }; } -SearX.route("/search?q=:search&pageno=:pageno", search); -SearX.route("/search?q=:search", search); +SearX.route('/search?q=:search&pageno=:pageno', search); +SearX.route('/search?q=:search', search); export default SearX; diff --git a/packages/plugins/src/engines/stackoverflow/index.ts b/packages/plugins/src/engines/stackoverflow/index.ts index abd10af..353c1a5 100644 --- a/packages/plugins/src/engines/stackoverflow/index.ts +++ b/packages/plugins/src/engines/stackoverflow/index.ts @@ -1,23 +1,23 @@ -import { Engine } from "@txtdot/sdk"; -import questions from "./questions"; -import users from "./users"; +import { Engine } from '@txtdot/sdk'; +import questions from './questions'; +import users from './users'; const StackOverflow = new Engine( - "StackOverflow", + 'StackOverflow', "Engine for 'StackOverflow' and other 'Stack' sites. Available routes: '/questions/' and '/users/'", [ - "stackoverflow.com", - "*.stackoverflow.com", - "*.stackexchange.com", - "askubuntu.com", - "stackapps.com", - "mathoverflow.net", - "superuser.com", - "serverfault.com", + 'stackoverflow.com', + '*.stackoverflow.com', + '*.stackexchange.com', + 'askubuntu.com', + 'stackapps.com', + 'mathoverflow.net', + 'superuser.com', + 'serverfault.com', ] ); -StackOverflow.route("/questions/:id/*slug", questions); -StackOverflow.route("/users/:id/*slug", users); +StackOverflow.route('/questions/:id/*slug', questions); +StackOverflow.route('/users/:id/*slug', users); export default StackOverflow; diff --git a/packages/plugins/src/engines/stackoverflow/questions.ts b/packages/plugins/src/engines/stackoverflow/questions.ts index 8abda6d..f29ba47 100644 --- a/packages/plugins/src/engines/stackoverflow/questions.ts +++ b/packages/plugins/src/engines/stackoverflow/questions.ts @@ -1,4 +1,4 @@ -import { HandlerInput, Route } from "@txtdot/sdk/dist/types/handler"; +import { HandlerInput, Route } from '@txtdot/sdk/dist/types/handler'; async function questions( input: HandlerInput, @@ -6,17 +6,17 @@ async function questions( ) { const document = input.parseDom().window.document; - const questionEl = document.getElementById("question"); + const questionEl = document.getElementById('question'); const question = postParser(questionEl); - const title = document.querySelector(".question-hyperlink")?.innerHTML || ""; + const title = document.querySelector('.question-hyperlink')?.innerHTML || ''; - const allAnswers = [...document.querySelectorAll(".answer")]; + const allAnswers = [...document.querySelectorAll('.answer')]; const answers = allAnswers.map((a) => postParser(a)); return { content: `${question}
${answers.length} answers
${answers.join( - "
" + '
' )}`, textContent: `${ro.q.id}/${ro.q.slug}\nText output not supported`, // TODO title, @@ -26,23 +26,23 @@ async function questions( function postParser(el: Element | null): string { if (!el) { - return ""; + return ''; } - const body = el.querySelector(".js-post-body")?.innerHTML || ""; - const voteCount = el.querySelector(".js-vote-count")?.textContent || ""; + const body = el.querySelector('.js-post-body')?.innerHTML || ''; + const voteCount = el.querySelector('.js-vote-count')?.textContent || ''; - const footer = [...el.querySelectorAll(".post-signature")].map((el) => { - const userName = el.querySelector(".user-details a")?.textContent || ""; + const footer = [...el.querySelectorAll('.post-signature')].map((el) => { + const userName = el.querySelector('.user-details a')?.textContent || ''; const userUrl = - (el.querySelector(".user-details a") as HTMLAnchorElement)?.href || ""; - const userTitle = el.querySelector(".user-action-time")?.textContent || ""; + (el.querySelector('.user-details a') as HTMLAnchorElement)?.href || ''; + const userTitle = el.querySelector('.user-action-time')?.textContent || ''; return `

${userTitle}${ - userUrl ? ` by ${userName}` : "" + userUrl ? ` by ${userName}` : '' }

`; }); - return `

${voteCount} votes

${body}${footer.join("")}`; + return `

${voteCount} votes

${body}${footer.join('')}`; } export default questions; diff --git a/packages/plugins/src/lib.ts b/packages/plugins/src/lib.ts index 215c983..be7f77f 100644 --- a/packages/plugins/src/lib.ts +++ b/packages/plugins/src/lib.ts @@ -1,4 +1,4 @@ -import * as engines from "./engines"; +import * as engines from './engines'; export { engines }; diff --git a/packages/sdk/src/engine.ts b/packages/sdk/src/engine.ts index 33f0685..20a9a91 100644 --- a/packages/sdk/src/engine.ts +++ b/packages/sdk/src/engine.ts @@ -1,13 +1,13 @@ -import Route from "route-parser"; +import Route from 'route-parser'; import { HandlerInput, IHandlerOutput, EngineFunction, RouteValues, -} from "./types/handler"; +} from './types/handler'; -import { NoHandlerFoundError } from "./types/errors"; +import { NoHandlerFoundError } from './types/errors'; interface IRoute { route: Route; diff --git a/packages/sdk/src/lib.ts b/packages/sdk/src/lib.ts index 4bc005d..f7d5aca 100644 --- a/packages/sdk/src/lib.ts +++ b/packages/sdk/src/lib.ts @@ -1,3 +1,3 @@ -import { Engine } from "./engine"; +import { Engine } from './engine'; export { Engine }; diff --git a/packages/sdk/src/types/errors.ts b/packages/sdk/src/types/errors.ts index 35f4733..4f30457 100644 --- a/packages/sdk/src/types/errors.ts +++ b/packages/sdk/src/types/errors.ts @@ -13,12 +13,12 @@ export abstract class TxtDotError extends Error { export class NoHandlerFoundError extends TxtDotError { constructor(message: string) { - super(404, "NoHandlerFoundError", `No handler found for: ${message}`); + super(404, 'NoHandlerFoundError', `No handler found for: ${message}`); } } export class EngineParseError extends TxtDotError { constructor(message: string) { - super(422, "EngineParseError", `Parse error: ${message}`); + super(422, 'EngineParseError', `Parse error: ${message}`); } } diff --git a/packages/sdk/src/types/handler.ts b/packages/sdk/src/types/handler.ts index 81209d8..9af088a 100644 --- a/packages/sdk/src/types/handler.ts +++ b/packages/sdk/src/types/handler.ts @@ -1,5 +1,5 @@ -import { parseHTML } from "linkedom"; -import { Engine } from "../engine"; +import { parseHTML } from 'linkedom'; +import { Engine } from '../engine'; export class HandlerInput { private data: string; @@ -33,19 +33,19 @@ export interface IHandlerOutput { } export const handlerSchema = { - type: "object", + type: 'object', properties: { content: { - type: "string", + type: 'string', }, textContent: { - type: "string", + type: 'string', }, title: { - type: "string", + type: 'string', }, lang: { - type: "string", + type: 'string', }, }, }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a332f7e..2169f13 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,30 @@ importers: .: devDependencies: + '@types/node': + specifier: ^20.12.7 + version: 20.12.11 + '@typescript-eslint/eslint-plugin': + specifier: ^7.7.0 + version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': + specifier: ^7.7.0 + version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) + eslint: + specifier: ^8.56.0 + version: 8.57.0 lerna: specifier: ^8.1.2 version: 8.1.2(encoding@0.1.13) + prettier: + specifier: ^3.1.1 + version: 3.2.5 + tsc-watch: + specifier: ^6.2.0 + version: 6.2.0(typescript@5.4.5) + typescript: + specifier: ^5.4.5 + version: 5.4.5 packages/plugins: dependencies: @@ -107,33 +128,12 @@ importers: '@types/micromatch': specifier: ^4.0.7 version: 4.0.7 - '@types/node': - specifier: ^20.12.7 - version: 20.12.11 - '@typescript-eslint/eslint-plugin': - specifier: ^7.7.0 - version: 7.8.0(@typescript-eslint/parser@7.8.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': - specifier: ^7.7.0 - version: 7.8.0(eslint@8.57.0)(typescript@5.4.5) clean-css-cli: specifier: ^5.6.3 version: 5.6.3 copyfiles: specifier: ^2.4.1 version: 2.4.1 - eslint: - specifier: ^8.56.0 - version: 8.57.0 - prettier: - specifier: ^3.1.1 - version: 3.2.5 - tsc-watch: - specifier: ^6.2.0 - version: 6.2.0(typescript@5.4.5) - typescript: - specifier: ^5.4.5 - version: 5.4.5 packages: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dee51e9..18ec407 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,2 @@ packages: - - "packages/*" + - 'packages/*'