Skip to content

Commit 5ad6e2d

Browse files
Merge pull request #187 from FormidableLabs/v2-react-update
Refactored Highlight component to use modern React patterns.
2 parents e0c503c + cac50ab commit 5ad6e2d

File tree

20 files changed

+675
-1625
lines changed

20 files changed

+675
-1625
lines changed

.eslintrc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"globals": {
2222
"page": true
2323
},
24-
"ignorePatterns": [""],
24+
"ignorePatterns": ["prism-langs.ts", "**/dist/**/*", "**/build/**/*", "**/node_modules/**/*", "**/public/**/*", "**/.docusaurus/**/*"],
2525
"parser": "@typescript-eslint/parser",
2626
"parserOptions": {
2727
"ecmaVersion": 12,
@@ -44,10 +44,10 @@
4444
"react/prop-types": 0,
4545
"react/sort-prop-types": 0,
4646
"react/no-string-refs": 0,
47+
"@typescript-eslint/no-unused-vars": ["error", { "ignoreRestSiblings": true }],
4748
"react/no-did-update-set-state": 0,
4849
"react-hooks/rules-of-hooks": "error",
4950
"react-hooks/exhaustive-deps": "error",
50-
"@typescript-eslint/no-unused-vars": ["error"],
5151
"@typescript-eslint/no-var-requires": 0
52-
}
52+
},
5353
}

package.json

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
{
22
"name": "prism-react-renderer-monorepo",
3-
"description": "Renders highlighted Prism output using React",
43
"sideEffects": false,
5-
"main": "dist/index.cjs.js",
6-
"module": "dist/index.js",
7-
"types": "index.d.ts",
8-
"license": "MIT",
4+
"private": true,
95
"repository": "https://github.com/FormidableLabs/prism-react-renderer",
106
"scripts": {
11-
"postinstall": "pnpm run --filter generate-prism-languages generate",
12-
"build": "pnpm run --filter prism-react-renderer build",
13-
"build:watch": "pnpm run --filter prism-react-renderer build:watch"
14-
},
15-
"peerDependencies": {
16-
"react": ">=0.14.9"
7+
"lint": "eslint packages",
8+
"test": "pnpm run -r test",
9+
"typecheck": "pnpm run -r typecheck",
10+
"check:ci": "pnpm run typecheck && pnpm run lint && pnpm run test",
11+
"start:demo": "pnpm --filter demo dev",
12+
"build": "pnpm --sequential --filter generate-prism-languages --filter prism-react-renderer --filter demo build",
13+
"build:watch": "pnpm --filter generate-prism-languages build && pnpm --filter prism-react-renderer build:watch"
1714
},
1815
"devDependencies": {
1916
"@babel/cli": "^7.10.4",
@@ -25,7 +22,6 @@
2522
"@babel/preset-react": "^7.10.4",
2623
"@babel/preset-typescript": "^7.16.0",
2724
"@testing-library/react": "^11.2.5",
28-
"@types/jest": "^29.5.0",
2925
"@types/react": "^18.0.35",
3026
"@typescript-eslint/eslint-plugin": "^5.58.0",
3127
"@typescript-eslint/parser": "^5.58.0",
@@ -40,7 +36,6 @@
4036
"codegen.macro": "^4.1.0",
4137
"globby": "^11.0.2",
4238
"prismjs": "1.26.0",
43-
"jest": "^26.6.3",
4439
"patch-package": "^6.4.7",
4540
"prettier": "^2.8.7",
4641
"react": "^18.2.0",

packages/demo/src/App.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Highlight, { defaultProps, themes } from "prism-react-renderer"
1+
import { Highlight, themes } from "prism-react-renderer"
22
import styles from "./app.module.css"
33
import clsx from "clsx"
44
import { ProjectBadge } from "formidable-oss-badges"
@@ -57,7 +57,6 @@ function App() {
5757
))}
5858
</select>
5959
<Highlight
60-
{...defaultProps}
6160
theme={activeTheme}
6261
code={activeSampleCode.code.trim()}
6362
language={activeSampleCode.language}

packages/generate-prism-languages/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ export const languagesToBundle = <const>[
1212
"swift",
1313
"kotlin",
1414
"objectivec",
15+
"js-extras",
16+
"reason",
1517
"rust",
1618
"graphql",
1719
"yaml",
@@ -25,7 +27,7 @@ export const languagesToBundle = <const>[
2527
* that starts off assuming Prism lives in global scope. We also need to provide Prism as that
2628
* gets passed into an iffe preventing us from needing to use global scope.
2729
*/
28-
const header = `// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport Prism from "prismjs"\n`
30+
const header = `// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport Prism from "prismjs";\nexport { Prism };`
2931
const prismPath = dirname(require.resolve("prismjs"))
3032

3133
const readLanguageFile = async (language: string): Promise<string> => {

packages/generate-prism-languages/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"name": "generate-prism-languages",
33
"private": true,
44
"scripts": {
5-
"generate": "ts-node ./index.ts"
5+
"build": "ts-node ./index.ts",
6+
"typecheck": "tsc --noEmit"
67
},
78
"peerDependencies": {
89
"react": ">=16.0.0"

packages/prism-react-renderer/package.json

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,20 @@
1010
"repository": "https://github.com/FormidableLabs/prism-react-renderer",
1111
"files": [
1212
"index.d.ts",
13-
"dist",
14-
"prism",
15-
"themes"
13+
"dist"
1614
],
1715
"scripts": {
18-
"prebuild": "patch-package",
19-
"build": "tsup",
20-
"build:watch": "tsup --watch",
21-
"test": "jest",
16+
"build": "patch-package && tsup",
17+
"build:watch": "patch-package && tsup --watch",
18+
"test": "vitest",
19+
"typecheck": "tsc --noEmit",
2220
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
2321
"format": "prettier --write 'src/**/*.js'"
2422
},
2523
"peerDependencies": {
2624
"react": ">=16.0.0"
2725
},
2826
"devDependencies": {
29-
"@types/node": "^18.15.11",
3027
"@babel/core": "*",
3128
"@rollup/plugin-babel": "^6.0.3",
3229
"@rollup/plugin-buble": "^0.21.3",
@@ -35,15 +32,24 @@
3532
"@rollup/plugin-node-resolve": "^11.2.0",
3633
"@rollup/plugin-typescript": "^11.1.0",
3734
"@testing-library/react": "^14.0.0",
35+
"@types/jest": "^29.5.0",
36+
"@types/node": "^18.15.11",
3837
"@types/prismjs": "^1.26.0",
38+
"@vitejs/plugin-react": "^3.1.0",
3939
"babel-plugin-codegen": "^4.1.5",
40+
"happy-dom": "^9.7.1",
4041
"prismjs": "*",
4142
"react": "*",
4243
"react-dom": "*",
4344
"rollup": "^2.39.0",
44-
"tslib": "^2.5.0",
4545
"ts-node": "^10.9.1",
46+
"tslib": "^2.5.0",
4647
"tsup": "^6.7.0",
47-
"typescript": "*"
48+
"typescript": "*",
49+
"vite": "^4.2.0",
50+
"vitest": "^0.30.1"
51+
},
52+
"dependencies": {
53+
"clsx": "^1.2.1"
4854
}
4955
}

packages/prism-react-renderer/src/components/Highlight.ts

Lines changed: 0 additions & 161 deletions
This file was deleted.

0 commit comments

Comments
 (0)