From ad9efd3da35d2102c6641a2fa1a8658a6e2eeb0e Mon Sep 17 00:00:00 2001 From: Alessandro Mitelli Date: Wed, 23 Feb 2022 08:15:28 +0100 Subject: [PATCH] fix: use TS 4.4.4 to prevent tsc from hanging on build (#16) --- components/Header/Header.test.tsx | 7 - .../Header/__snapshots__/Header.test.tsx.snap | 170 ------------------ components/Project/Project.test.tsx | 1 - lib/markdown.helpers.ts | 17 +- package.json | 3 +- pnpm-lock.yaml | 34 ++-- 6 files changed, 30 insertions(+), 202 deletions(-) diff --git a/components/Header/Header.test.tsx b/components/Header/Header.test.tsx index 83e03ea..195a0da 100644 --- a/components/Header/Header.test.tsx +++ b/components/Header/Header.test.tsx @@ -9,11 +9,4 @@ describe('Header', () => { expect(screen.getByRole('navigation')).toBeInTheDocument(); expect(asFragment()).toMatchSnapshot(); }); - - it('should render transparent', () => { - const { asFragment } = render(
); - - expect(screen.getByRole('navigation')).toBeInTheDocument(); - expect(asFragment()).toMatchSnapshot(); - }); }); diff --git a/components/Header/__snapshots__/Header.test.tsx.snap b/components/Header/__snapshots__/Header.test.tsx.snap index 5fb7a85..adff847 100644 --- a/components/Header/__snapshots__/Header.test.tsx.snap +++ b/components/Header/__snapshots__/Header.test.tsx.snap @@ -169,173 +169,3 @@ exports[`Header should render 1`] = `
`; - -exports[`Header should render transparent 1`] = ` - -
-
- -
- - - - - - - Peque on GitHub -
-
-
-
-`; diff --git a/components/Project/Project.test.tsx b/components/Project/Project.test.tsx index 572ced5..4df11cb 100644 --- a/components/Project/Project.test.tsx +++ b/components/Project/Project.test.tsx @@ -14,7 +14,6 @@ describe('Project', () => { docsLink="/docs/framework" command="npx peque new project-name" renderExample={() => {SNIPPET_FRAMEWORK}} - examplePosition={examplePosition as 'left' | 'right'} bgClassName="bg-primary-800 skew-y-2" />, ); diff --git a/lib/markdown.helpers.ts b/lib/markdown.helpers.ts index 92f4fd4..ac0c7e9 100644 --- a/lib/markdown.helpers.ts +++ b/lib/markdown.helpers.ts @@ -2,6 +2,7 @@ import { parseSelector } from 'hast-util-parse-selector'; import { selectAll } from 'hast-util-select'; import { h } from 'hastscript'; import puppeteer from 'puppeteer'; +import type { Transformer } from 'unified'; import { visit } from 'unist-util-visit'; const getAnchorSvg = () => { @@ -57,12 +58,12 @@ function remarkMermaid() { }; } -function rehypeAddClasses(options: Record) { +function rehypeAddClasses(options: Record): Transformer { return (tree: any) => { for (const [selectors, className] of Object.entries(options)) { for (const selector of selectors.split(',')) { for (const match of selectAll(selector, tree)) { - visit(tree, match, (node: any) => { + visit(tree, match as any, (node: any) => { node.properties.class = `${node.properties.class ?? ''} ${className}`.trim(); }); } @@ -71,13 +72,15 @@ function rehypeAddClasses(options: Record) { }; } -function rehypeTableResponsive() { +function rehypeTableResponsive(): Transformer { return (tree: any) => { for (const match of selectAll('table', tree)) { - visit(tree, match, (node: any, index: number, parent: any) => { - const wrapper = parseSelector('div.table-responsive'); - wrapper.children = [node]; - parent.children[index] = wrapper; + visit(tree, match as any, (node, index, parent) => { + if (index !== null) { + const wrapper = parseSelector('div.table-responsive'); + wrapper.children = [node]; + parent.children[index] = wrapper; + } }); } }; diff --git a/package.json b/package.json index 8985457..832021a 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "remark": "^14.0.2", "remark-gfm": "^3.0.1", "remark-html": "^15.0.1", + "unified": "^10.1.1", "unist-util-visit": "^4.1.0" }, "devDependencies": { @@ -48,6 +49,6 @@ "postcss": "^8.4.6", "prettier": "^2.5.1", "tailwindcss": "^3.0.19", - "typescript": "4.5.5" + "typescript": "4.4.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 033285b..fb2c83e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,7 +35,8 @@ specifiers: remark-gfm: ^3.0.1 remark-html: ^15.0.1 tailwindcss: ^3.0.19 - typescript: 4.5.5 + typescript: 4.4.4 + unified: ^10.1.1 unist-util-visit: ^4.1.0 dependencies: @@ -56,6 +57,7 @@ dependencies: remark: 14.0.2 remark-gfm: 3.0.1 remark-html: 15.0.1 + unified: 10.1.1 unist-util-visit: 4.1.0 devDependencies: @@ -68,7 +70,7 @@ devDependencies: '@types/react': 17.0.39 autoprefixer: 10.4.2_postcss@8.4.6 eslint: 8.8.0 - eslint-config-next: 12.0.10_9534215cc73b6f260bf33f1b86e3ae0e + eslint-config-next: 12.0.10_04b2347eef76ff726b75af3c8300c649 eslint-config-prettier: 8.3.0_eslint@8.8.0 eslint-plugin-prettier: 4.0.0_43197c8d12d1d439034cfcf65e1c48c2 eslint-plugin-simple-import-sort: 7.0.0_eslint@8.8.0 @@ -76,7 +78,7 @@ devDependencies: postcss: 8.4.6 prettier: 2.5.1 tailwindcss: 3.0.19_833e1018ad0d7954aa80c53675939269 - typescript: 4.5.5 + typescript: 4.4.4 packages: @@ -1046,7 +1048,7 @@ packages: dev: false optional: true - /@typescript-eslint/parser/5.11.0_eslint@8.8.0+typescript@4.5.5: + /@typescript-eslint/parser/5.11.0_eslint@8.8.0+typescript@4.4.4: resolution: {integrity: sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1058,10 +1060,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.11.0 '@typescript-eslint/types': 5.11.0 - '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.5.5 + '@typescript-eslint/typescript-estree': 5.11.0_typescript@4.4.4 debug: 4.3.3 eslint: 8.8.0 - typescript: 4.5.5 + typescript: 4.4.4 transitivePeerDependencies: - supports-color dev: true @@ -1079,7 +1081,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.11.0_typescript@4.5.5: + /@typescript-eslint/typescript-estree/5.11.0_typescript@4.4.4: resolution: {integrity: sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1094,8 +1096,8 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.5 - tsutils: 3.21.0_typescript@4.5.5 - typescript: 4.5.5 + tsutils: 3.21.0_typescript@4.4.4 + typescript: 4.4.4 transitivePeerDependencies: - supports-color dev: true @@ -2463,7 +2465,7 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-next/12.0.10_9534215cc73b6f260bf33f1b86e3ae0e: + /eslint-config-next/12.0.10_04b2347eef76ff726b75af3c8300c649: resolution: {integrity: sha512-l1er6mwSo1bltjLwmd71p5BdT6k/NQxV1n4lKZI6xt3MDMrq7ChUBr+EecxOry8GC/rCRUtPpH8Ygs0BJc5YLg==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 @@ -2475,7 +2477,7 @@ packages: dependencies: '@next/eslint-plugin-next': 12.0.10 '@rushstack/eslint-patch': 1.1.0 - '@typescript-eslint/parser': 5.11.0_eslint@8.8.0+typescript@4.5.5 + '@typescript-eslint/parser': 5.11.0_eslint@8.8.0+typescript@4.4.4 eslint: 8.8.0 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 2.5.0_392f898cec7735a5f7a99430cbc0b4f4 @@ -2484,7 +2486,7 @@ packages: eslint-plugin-react: 7.28.0_eslint@8.8.0 eslint-plugin-react-hooks: 4.3.0_eslint@8.8.0 next: 12.0.10_react-dom@17.0.2+react@17.0.2 - typescript: 4.5.5 + typescript: 4.4.4 transitivePeerDependencies: - supports-color dev: true @@ -5761,14 +5763,14 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsutils/3.21.0_typescript@4.5.5: + /tsutils/3.21.0_typescript@4.4.4: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.5.5 + typescript: 4.4.4 dev: true /type-check/0.3.2: @@ -5806,8 +5808,8 @@ packages: is-typedarray: 1.0.0 dev: true - /typescript/4.5.5: - resolution: {integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==} + /typescript/4.4.4: + resolution: {integrity: sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==} engines: {node: '>=4.2.0'} hasBin: true dev: true