Skip to content

Commit aa21cb1

Browse files
authored
Merge branch 'source' into oneof-post
2 parents 4e7dc06 + d2452db commit aa21cb1

File tree

110 files changed

+21203
-979
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+21203
-979
lines changed

.eslintrc.cjs

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,15 @@ const MARKDOWN_EXT = "md,mdx"
55

66
module.exports = {
77
root: true,
8-
plugins: ["@graphql-eslint", "mdx", "@typescript-eslint", "tailwindcss"],
8+
plugins: [
9+
"@graphql-eslint",
10+
"mdx",
11+
"@typescript-eslint",
12+
"tailwindcss",
13+
"react",
14+
"@next/next",
15+
"react-hooks",
16+
],
917
overrides: [
1018
{
1119
files: [`**/*.{${CODE_EXT}}`],
@@ -14,8 +22,42 @@ module.exports = {
1422
"plugin:@typescript-eslint/recommended",
1523
"plugin:tailwindcss/recommended",
1624
"prettier",
25+
"plugin:@next/next/recommended",
26+
"plugin:react-hooks/recommended-legacy",
27+
"plugin:react/recommended",
1728
],
1829
rules: {
30+
"react/react-in-jsx-scope": "off", // TS checks this
31+
"react/prop-types": "off", // and this
32+
"no-undef": "off", // and this too
33+
// This is type checking for projects without `@types/react`. Disabled due to false positives.
34+
"react/no-unknown-property": "off",
35+
36+
"react/no-unescaped-entities": [
37+
"warn", // quotes and apostrophes are okay
38+
{
39+
forbid: [
40+
{
41+
char: "<",
42+
alternatives: ["&lt;"],
43+
},
44+
{
45+
char: ">",
46+
alternatives: ["&gt;"],
47+
},
48+
{
49+
char: "{",
50+
alternatives: ["&#123;"],
51+
},
52+
{
53+
char: "}",
54+
alternatives: ["&#125;"],
55+
},
56+
],
57+
},
58+
],
59+
"@next/next/no-img-element": "off", // straight up upsell, small `img`s actually don't need optimization
60+
1961
"tailwindcss/classnames-order": "off",
2062
"@typescript-eslint/no-restricted-imports": [
2163
"error",
@@ -41,6 +83,9 @@ module.exports = {
4183
tailwindcss: {
4284
whitelist: ["roboto-mono"],
4385
},
86+
react: {
87+
version: "detect",
88+
},
4489
},
4590
},
4691
{
@@ -63,6 +108,7 @@ module.exports = {
63108
},
64109
rules: {
65110
"mdx/remark": "error",
111+
"no-unused-expressions": "off",
66112
},
67113
},
68114
{
@@ -90,7 +136,9 @@ module.exports = {
90136
{
91137
files: [
92138
`src/pages/blog/**/*.{${MARKDOWN_EXT}}`,
139+
`src/pages/graphql-js/running-an-express-graphql-server.mdx`,
93140
`src/code/**/*.{${MARKDOWN_EXT}}`,
141+
`src/app/conf/**/*.{${MARKDOWN_EXT}}`,
94142
],
95143
rules: {
96144
// Disable `remark-lint-first-heading-level` since in blogs we don't want to enforce the first heading to be an `h1`

.github/workflows/prettier.yml renamed to .github/workflows/check.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Prettier Check
1+
name: Lint and check formatting
22

33
on: pull_request
44

@@ -16,5 +16,9 @@ jobs:
1616

1717
- name: Install Dependencies
1818
run: pnpm i
19+
20+
- name: Run ESLint
21+
run: pnpm lint --quiet
22+
1923
- name: Run Prettier Check
2024
run: pnpm format:check

.github/workflows/conference-sync.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Sched's API rate limits are very limited, so we sync non-critical part of the data on a cron.
2+
on:
3+
workflow_dispatch:
4+
# schedule:
5+
# - cron: "*/10 * * * *" # every ten minutes
6+
7+
jobs:
8+
sync:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: write
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v4
15+
16+
- name: Sync conference data from Sched
17+
run: |
18+
tsx scripts/sync-sched/sync.ts --year 2025
19+
env:
20+
SCHED_ACCESS_TOKEN_2025: ${{ secrets.SCHED_ACCESS_TOKEN_2025 }}
21+
22+
- name: Commit changes
23+
uses: stefanzweifel/git-auto-commit-action@v5
24+
with:
25+
file_pattern: "scripts/sync-sched/*.json"
26+
commit_message: "Sync conference data from Sched"

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,5 @@ src/__generated__/
6161
.next/
6262
public/sitemap.xml
6363
out/
64+
65+
tsconfig.tsbuildinfo

.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ pnpm-lock.yaml
77
!src/pages/blog/2025-06-01-graphiql-4/index.mdx
88
!src/pages/blog/2025-06-19-multioption-inputs-with-oneof/index.mdx
99
*.jpg
10+
11+
scripts/sync-sched/*.json
12+
src/github-stats.json

package.json

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,74 +21,78 @@
2121
},
2222
"dependencies": {
2323
"@graphql-tools/schema": "10.0.15",
24-
"@headlessui/react": "^1.7.17",
25-
"@radix-ui/react-radio-group": "^1.1.3",
24+
"@headlessui/react": "^2.2.4",
25+
"@radix-ui/react-radio-group": "^1.2.2",
2626
"@tailwindcss/container-queries": "^0.1.1",
2727
"@tailwindcss/nesting": "0.0.0-insiders.565cd3e",
28-
"@tailwindcss/typography": "^0.5.10",
29-
"autoprefixer": "^10.4.17",
30-
"clsx": "^2.1.0",
28+
"@tailwindcss/typography": "^0.5.15",
29+
"autoprefixer": "^10.4.20",
30+
"calendar-link": "^2.10.0",
31+
"clsx": "^2.1.1",
3132
"codemirror": "^5.65.19",
3233
"codemirror-graphql": "1.3.2",
3334
"date-fns": "^2.30.0",
34-
"fast-glob": "^3.3.2",
35+
"fast-glob": "^3.3.3",
3536
"graphql": "16.10.0",
3637
"gray-matter": "^4.0.3",
3738
"hast-util-to-string": "3.0.1",
38-
"iframe-resizer-react": "^1.1.0",
39+
"iframe-resizer-react": "^1.1.1",
3940
"leaflet": "^1.9.4",
4041
"lucide-react": "^0.469.0",
41-
"markdown-to-jsx": "^7.4.0",
42+
"markdown-to-jsx": "^7.7.2",
4243
"marked": "5.1.2",
4344
"motion": "^12.11.0",
44-
"next": "^14.2.5",
45-
"next-image-export-optimizer": "^1.12.3",
46-
"next-query-params": "^5.0.0",
45+
"next": "^14.2.22",
46+
"next-image-export-optimizer": "^1.18.0",
47+
"next-query-params": "^5.0.1",
4748
"next-sitemap": "^4.2.3",
4849
"next-with-less": "^3.0.1",
4950
"nextra": "3.0.0-alpha.28",
5051
"nextra-theme-docs": "3.0.0-alpha.28",
5152
"numbro": "2.5.0",
5253
"p-limit": "^4.0.0",
5354
"parser-front-matter": "1.6.4",
54-
"postcss": "^8.4.33",
55+
"postcss": "^8.4.49",
5556
"react": "^18.3.1",
5657
"react-dom": "^18.3.1",
5758
"react-medium-image-zoom": "5.2.13",
5859
"react-use-measure": "^2.1.7",
5960
"rss": "1.2.2",
6061
"server-only": "0.0.1",
6162
"string-similarity": "^4.0.4",
62-
"string-strip-html": "^13.4.5",
63-
"tailwindcss": "^3.4.1",
63+
"string-strip-html": "^13.4.8",
64+
"tailwindcss": "^3.4.17",
6465
"timeago.js": "4.0.2",
6566
"unified": "11.0.5",
6667
"unist-util-visit": "^5.0.0",
6768
"use-query-params": "^2.2.1"
6869
},
6970
"devDependencies": {
7071
"@graphql-eslint/eslint-plugin": "4.3.0",
71-
"@svgr/webpack": "^8.0.1",
72+
"@next/eslint-plugin-next": "^15.3.3",
73+
"@svgr/webpack": "^8.1.0",
7274
"@types/codemirror": "5.60.7",
7375
"@types/hast": "3.0.4",
74-
"@types/node": "^22.10.2",
75-
"@types/react": "^18.2.73",
76+
"@types/node": "^22.10.5",
77+
"@types/react": "^18.3.18",
7678
"@types/rss": "0.0.32",
7779
"@types/string-similarity": "^4.0.2",
7880
"@typescript-eslint/eslint-plugin": "7.18.0",
7981
"@typescript-eslint/parser": "7.18.0",
8082
"eslint": "8.57.1",
8183
"eslint-config-prettier": "^9.1.0",
8284
"eslint-plugin-mdx": "^3.1.5",
85+
"eslint-plugin-react": "^7.37.5",
86+
"eslint-plugin-react-hooks": "^5.2.0",
8387
"eslint-plugin-tailwindcss": "3.17.5",
84-
"prettier": "3.4.2",
85-
"prettier-plugin-pkg": "^0.18.1",
86-
"prettier-plugin-tailwindcss": "^0.6.9",
88+
"prettier": "3.5.3",
89+
"prettier-plugin-pkg": "^0.20.0",
90+
"prettier-plugin-tailwindcss": "^0.6.12",
8791
"remark-frontmatter": "5.0.0",
8892
"remark-lint-first-heading-level": "3.1.2",
8993
"remark-lint-heading-increment": "3.1.2",
90-
"tsx": "^4.7.0",
91-
"typescript": "^5.4.3"
94+
"tsx": "^4.19.4",
95+
"typescript": "^5.8.3"
9296
},
9397
"pnpm": {
9498
"patchedDependencies": {

0 commit comments

Comments
 (0)