From abb387424821bd8ad9aadbef609e573f51efeb7c Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Mon, 4 Mar 2024 15:39:40 +0300 Subject: [PATCH] packages: add shared --- apps/api/package.json | 1 + apps/api/src/proxy/proxy.controller.ts | 3 ++- apps/web/api/cache/query.ts | 5 ++++- apps/web/api/cache/types.ts | 3 +++ apps/web/package.json | 1 + packages/shared/.eslintrc.js | 10 ++++++++++ packages/shared/package.json | 13 +++++++++++++ packages/shared/tsconfig.json | 6 ++++++ packages/shared/types/cache.ts | 4 ++++ pnpm-lock.yaml | 18 ++++++++++++++++++ 10 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 apps/web/api/cache/types.ts create mode 100644 packages/shared/.eslintrc.js create mode 100644 packages/shared/package.json create mode 100644 packages/shared/tsconfig.json create mode 100644 packages/shared/types/cache.ts diff --git a/apps/api/package.json b/apps/api/package.json index a8e0dec..ab89ff1 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -45,6 +45,7 @@ "fastify": "^4.26.1", "jest": "^29.5.0", "prettier": "^3.0.0", + "shared": "workspace:*", "source-map-support": "^0.5.21", "supertest": "^6.3.3", "ts-jest": "29.1.1", diff --git a/apps/api/src/proxy/proxy.controller.ts b/apps/api/src/proxy/proxy.controller.ts index 8ba9419..c484806 100644 --- a/apps/api/src/proxy/proxy.controller.ts +++ b/apps/api/src/proxy/proxy.controller.ts @@ -15,6 +15,7 @@ import { } from '@nestjs/common'; import type { Cache } from 'cache-manager'; import { FastifyReply, FastifyRequest } from 'fastify'; +import type { QueryItem } from 'shared/types/cache'; import { env } from 'src/config/env'; type RedisStore = Omit & { @@ -71,7 +72,7 @@ export class ProxyController { return acc; }, - {} as Record, + {} as Record, ); return reply.send(res); diff --git a/apps/web/api/cache/query.ts b/apps/web/api/cache/query.ts index e1d5a92..713a1c1 100644 --- a/apps/web/api/cache/query.ts +++ b/apps/web/api/cache/query.ts @@ -1,3 +1,4 @@ +import type { ResponseQueries } from './types'; import getUrls from '@/config/urls'; import { withHandleError } from '@/utils/axios'; import type { QueryFunctionContext } from '@tanstack/react-query'; @@ -6,7 +7,9 @@ import axios from 'axios'; const { URL_CACHE_GET_QUERIES, URL_CACHE_DELETE_QUERY, URL_CACHE_FLUSH_ALL } = getUrls(); export function getQueries({ signal }: QueryFunctionContext) { - return withHandleError(axios.get(URL_CACHE_GET_QUERIES, { signal })).then(({ data }) => data); + return withHandleError(axios.get(URL_CACHE_GET_QUERIES, { signal })).then( + ({ data }) => data + ); } export function deleteQuery(queryName: string) { diff --git a/apps/web/api/cache/types.ts b/apps/web/api/cache/types.ts new file mode 100644 index 0000000..688b61e --- /dev/null +++ b/apps/web/api/cache/types.ts @@ -0,0 +1,3 @@ +import type { QueryItem } from 'shared/types/cache'; + +export type ResponseQueries = Record; diff --git a/apps/web/package.json b/apps/web/package.json index aa5518b..bff01d0 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -58,6 +58,7 @@ "jest": "^29.4.3", "jest-environment-jsdom": "^29.3.1", "msw": "^1.1.0", + "shared": "workspace:*", "ts-jest": "^29.0.5", "typescript": "^5.3.3" }, diff --git a/packages/shared/.eslintrc.js b/packages/shared/.eslintrc.js new file mode 100644 index 0000000..ee7b070 --- /dev/null +++ b/packages/shared/.eslintrc.js @@ -0,0 +1,10 @@ +const { createConfig } = require('@vchikalkin/eslint-config-awesome'); + +module.exports = createConfig('typescript', { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: __dirname, + }, + ignorePatterns: ['*.config.js', '.eslintrc.js'], + root: true, +}); diff --git a/packages/shared/package.json b/packages/shared/package.json new file mode 100644 index 0000000..57c8583 --- /dev/null +++ b/packages/shared/package.json @@ -0,0 +1,13 @@ +{ + "name": "shared", + "version": "0.0.0", + "license": "MIT", + "scripts": { + "lint": "TIMING=1 eslint \"**/*.ts*\"" + }, + "devDependencies": { + "@vchikalkin/eslint-config-awesome": "^1.1.6", + "eslint": "^8.52.0", + "tsconfig": "workspace:*" + } +} diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json new file mode 100644 index 0000000..10fc0c0 --- /dev/null +++ b/packages/shared/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "tsconfig/common.json", + "include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"], + "exclude": ["dist", "build", "node_modules"], + "compilerOptions": { "outDir": "./build", "lib": ["DOM", "ES2020"] } +} diff --git a/packages/shared/types/cache.ts b/packages/shared/types/cache.ts new file mode 100644 index 0000000..6ab0f62 --- /dev/null +++ b/packages/shared/types/cache.ts @@ -0,0 +1,4 @@ +export type QueryItem = { + queries: string[]; + ttl: number | false; +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef0a4e1..e9497bc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -96,6 +96,9 @@ importers: prettier: specifier: ^3.0.0 version: 3.2.5 + shared: + specifier: workspace:* + version: link:../../packages/shared source-map-support: specifier: ^0.5.21 version: 0.5.21 @@ -250,6 +253,9 @@ importers: msw: specifier: ^1.1.0 version: 1.3.2(typescript@5.3.3) + shared: + specifier: workspace:* + version: link:../../packages/shared ts-jest: specifier: ^29.0.5 version: 29.1.1(@babel/core@7.23.9)(jest@29.7.0)(typescript@5.3.3) @@ -257,6 +263,18 @@ importers: specifier: ^5.3.3 version: 5.3.3 + packages/shared: + devDependencies: + '@vchikalkin/eslint-config-awesome': + specifier: ^1.1.6 + version: 1.1.6(@babel/eslint-plugin@7.23.5)(@babel/plugin-syntax-flow@7.23.3)(@babel/plugin-transform-react-jsx@7.23.4)(eslint-plugin-import@2.29.1)(eslint@8.57.0)(graphql@16.8.1)(prettier@3.2.5)(typescript@5.3.3) + eslint: + specifier: ^8.52.0 + version: 8.57.0 + tsconfig: + specifier: workspace:* + version: link:../tsconfig + packages/tools: devDependencies: '@vchikalkin/eslint-config-awesome':