Skip to content

Commit a34cef3

Browse files
beerosegithub-actions[bot]dimaMachina
authored
Load codegen.ts in ESM projects (#9086)
* Add failing test * Compile config file for esm projects * Move comment * Make sure example app works; add tests * Add TypeScript to optional peer deps * Add caching for transpiled files * chore(dependencies): updated changesets for modified dependencies * Simplify code a bit * Add changeset * Support .mts and .cts config extensions * Use jiti insetad of custom cache and tsc * Support mts and cts with jiti * chore(dependencies): updated changesets for modified dependencies * Update graphql-config * chore(dependencies): updated changesets for modified dependencies * Remove cosmiconfig-typescript-loader * chore(dependencies): updated changesets for modified dependencies * Use import over require * chore(dependencies): updated changesets for modified dependencies * Remove ts-node from graphql-codegen-cli * chore(dependencies): updated changesets for modified dependencies * Pass empty string to jiti * Delete .eslintignore --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Dimitri POSTOLOV <dmytropostolov@gmail.com>
1 parent 347f4c6 commit a34cef3

Some content is hidden

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

60 files changed

+5255
-94
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
"@graphql-codegen/cli": patch
3+
---
4+
dependencies updates:
5+
- Updated dependency [`graphql-config@^4.5.0` ↗︎](https://www.npmjs.com/package/graphql-config/v/4.5.0) (from `^4.4.0`, in `dependencies`)
6+
- Added dependency [`jiti@^1.17.1` ↗︎](https://www.npmjs.com/package/jiti/v/1.17.1) (to `dependencies`)
7+
- Removed dependency [`cosmiconfig-typescript-loader@^4.3.0` ↗︎](https://www.npmjs.com/package/cosmiconfig-typescript-loader/v/4.3.0) (from `dependencies`)
8+
- Removed dependency [`ts-node@^10.9.1` ↗︎](https://www.npmjs.com/package/ts-node/v/10.9.1) (from `dependencies`)

.changeset/perfect-moose-itch.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@graphql-codegen/cli': patch
3+
---
4+
5+
Support `codegen.ts` in ESM projects
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/* eslint-disable import/no-extraneous-dependencies */
2+
import { type CodegenConfig } from '@graphql-codegen/cli';
3+
4+
const config: CodegenConfig = {
5+
schema: 'https://swapi-graphql.netlify.app/.netlify/functions/index',
6+
documents: ['src/**/*.tsx'],
7+
generates: {
8+
'./src/gql/': {
9+
preset: 'client',
10+
},
11+
},
12+
hooks: { afterAllFileWrite: ['prettier --write'] },
13+
};
14+
15+
export default config;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/* eslint-disable import/no-extraneous-dependencies */
2+
import { defineConfig } from 'cypress';
3+
4+
export default defineConfig({
5+
e2e: {
6+
setupNodeEvents(_on, _config) {
7+
// implement node event listeners here
8+
},
9+
},
10+
});
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
describe('template spec', () => {
2+
it('renders everything correctly', () => {
3+
cy.visit('http://localhost:3000');
4+
cy.get('h3').should('contain', 'A New Hope');
5+
});
6+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/// <reference types="cypress" />
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
// Import commands.js using ES2015 syntax:
2+
import './commands';
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>Vite + React + TS</title>
8+
</head>
9+
<body>
10+
<div id="root"></div>
11+
<script type="module" src="/src/main.tsx"></script>
12+
</body>
13+
</html>
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"name": "example-vite-react-cts",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite",
8+
"build": "tsc && vite build",
9+
"start": "vite preview --port 3000",
10+
"codegen": "graphql-codegen --config codegen.cts",
11+
"test": "cypress run",
12+
"test:end2end": "start-server-and-test start http://localhost:3000 test"
13+
},
14+
"dependencies": {
15+
"@apollo/client": "^3.6.9",
16+
"@graphql-typed-document-node/core": "3.1.2",
17+
"@vitejs/plugin-react-swc": "^3.0.0",
18+
"graphql": "16.6.0",
19+
"react": "^18.2.0",
20+
"react-dom": "^18.2.0",
21+
"vite": "^4.1.0"
22+
},
23+
"devDependencies": {
24+
"@graphql-codegen/cli": "3.2.1",
25+
"@graphql-codegen/client-preset": "2.1.0",
26+
"@types/react": "^18.0.27",
27+
"@types/react-dom": "^18.0.10",
28+
"cypress": "12.6.0",
29+
"start-server-and-test": "2.0.0",
30+
"typescript": "^4.9.3"
31+
},
32+
"bob": false,
33+
"browserslist": {
34+
"production": [
35+
">0.2%",
36+
"not dead",
37+
"not op_mini all"
38+
],
39+
"development": [
40+
"last 1 chrome version",
41+
"last 1 firefox version",
42+
"last 1 safari version"
43+
]
44+
}
45+
}

0 commit comments

Comments
 (0)