diff --git a/apps/app/codegen.ts b/apps/app/codegen.ts new file mode 100644 index 00000000..38ca3f8f --- /dev/null +++ b/apps/app/codegen.ts @@ -0,0 +1,46 @@ +import type { CodegenConfig } from '@graphql-codegen/cli'; + +const config: CodegenConfig = { + schema: 'https://ng-bike-api.vercel.app/api/graphql', + documents: './src/**/*.gql', + generates: { + 'src/libs/ngBike/client/types.gen.ts': { + plugins: ['typescript', 'typescript-operations'], + config: { + avoidOptionals: { + field: true, + inputValue: false, + object: false, + defaultValue: false + } + } + }, + 'src/libs/ngBike/client/reactQuery.gen.ts': { + plugins: [ + { + add: { + content: ` + /* eslint-disable @tanstack/query/prefer-query-object-syntax */ + import * as Types from "./types.gen" + export type QueryError = Error | import("graphql-request").ClientError + ` + } + }, {'typescript-react-query': { + errorType: "QueryError", + exposeQueryKeys: true, + fetcher: { + func: './graphqlClient#fetcher' + } + }}], + config: { + typesPrefix: 'Types.' + } + } + }, + config: { + skipTypename: true, + }, +}; +export default config; + + diff --git a/apps/app/codegen.yml b/apps/app/codegen.yml deleted file mode 100644 index ec0dd652..00000000 --- a/apps/app/codegen.yml +++ /dev/null @@ -1,34 +0,0 @@ -documents: - - ./src/**/*.gql -schema: - - https://ng-bike-api.vercel.app/api/graphql -generates: - src/libs/ngBike/client/types.gen.ts: - plugins: - - typescript - - typescript-operations - config: - avoidOptionals: - field: true - inputValue: false - object: false - defaultValue: false - - src/libs/ngBike/client/reactQuery.gen.ts: - plugins: - - add: - placement: content - content: | - /* eslint-disable @tanstack/query/prefer-query-object-syntax */ - import * as Types from "./types.gen" - export type QueryError = Error | import("graphql-request").ClientError - - typescript-react-query: - errorType: QueryError - exposeQueryKeys: true - fetcher: - func: './graphqlClient#fetcher' - config: - typesPrefix: 'Types.' - -config: - skipTypename: true diff --git a/apps/app/package.json b/apps/app/package.json index 7326d5b8..c5c40fb4 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -24,7 +24,7 @@ "@react-native-community/netinfo": "9.3.10", "@react-navigation/native": "6.1.9", "@react-navigation/native-stack": "6.9.17", - "@tanstack/react-query": "5.13.4", + "@tanstack/react-query": "4.32.6", "expo": "^49.0.21", "expo-asset": "~8.10.1", "expo-blur": "~12.4.1", @@ -63,6 +63,7 @@ "@expo/metro-config": "0.10.7", "@graphql-codegen/add": "5.0.0", "@graphql-codegen/cli": "5.0.0", + "@graphql-codegen/client-preset": "4.1.0", "@graphql-codegen/typescript": "4.0.1", "@graphql-codegen/typescript-operations": "4.0.1", "@graphql-codegen/typescript-react-query": "6.0.0", @@ -76,7 +77,8 @@ "metro": "0.80.1", "metro-resolver": "0.80.1", "ts-node": "10.9.2", - "typescript": "^5.3.3" + "typescript": "^5.3.3", + "typescript-graphql-request": "^4.4.6" }, "expo": { "install": { diff --git a/apps/app/src/hooks/useStations/useStations.tsx b/apps/app/src/hooks/useStations/useStations.tsx index 4fef2958..9fb8a86a 100644 --- a/apps/app/src/hooks/useStations/useStations.tsx +++ b/apps/app/src/hooks/useStations/useStations.tsx @@ -15,6 +15,7 @@ import { export const useStations = () => { const { userLocation } = useLocationStore(); const { data, ...restQueryResult } = useStationsQuery(undefined, { + queryKey: ['stations'], refetchInterval: 1000 * 60, // 1 minute select: (res) => { const stations = values( diff --git a/apps/app/src/screens/MapScreen/components/Weather/WeatherIndicator.tsx b/apps/app/src/screens/MapScreen/components/Weather/WeatherIndicator.tsx index 12ecad50..78ce080b 100644 --- a/apps/app/src/screens/MapScreen/components/Weather/WeatherIndicator.tsx +++ b/apps/app/src/screens/MapScreen/components/Weather/WeatherIndicator.tsx @@ -19,6 +19,7 @@ export const WeatherIndicator = ({ style }: WeatherIndicatorProps) => { const { data } = useWeatherQuery( { lat: `${latitude}`, lon: `${longitude}` }, { + queryKey: ['weather'], refetchInterval: 1000 * 60 * 30, // 30 minutes, }, ); diff --git a/apps/blog/src/mocks/prismicImage.ts b/apps/blog/src/mocks/prismicImage.ts index 4df47eb9..8627454b 100644 --- a/apps/blog/src/mocks/prismicImage.ts +++ b/apps/blog/src/mocks/prismicImage.ts @@ -1,6 +1,13 @@ import { ImageFieldImage } from '@prismicio/client'; export const prismicImage: ImageFieldImage = { + id: "YBvZx2Z5Q0qX8QY9", + edit: { + x: 0, + y: 0, + zoom: 1, + background: "transparent" + }, dimensions: { width: 2304, height: 1024 }, alt: null, copyright: null, diff --git a/yarn.lock b/yarn.lock index 37d32b9a..5e549093 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2896,7 +2896,7 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/add@npm:5.0.0": +"@graphql-codegen/add@npm:5.0.0, @graphql-codegen/add@npm:^5.0.0": version: 5.0.0 resolution: "@graphql-codegen/add@npm:5.0.0" dependencies: @@ -2961,6 +2961,29 @@ __metadata: languageName: node linkType: hard +"@graphql-codegen/client-preset@npm:4.1.0": + version: 4.1.0 + resolution: "@graphql-codegen/client-preset@npm:4.1.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.20.2" + "@babel/template": "npm:^7.20.7" + "@graphql-codegen/add": "npm:^5.0.0" + "@graphql-codegen/gql-tag-operations": "npm:4.0.1" + "@graphql-codegen/plugin-helpers": "npm:^5.0.1" + "@graphql-codegen/typed-document-node": "npm:^5.0.1" + "@graphql-codegen/typescript": "npm:^4.0.1" + "@graphql-codegen/typescript-operations": "npm:^4.0.1" + "@graphql-codegen/visitor-plugin-common": "npm:^4.0.1" + "@graphql-tools/documents": "npm:^1.0.0" + "@graphql-tools/utils": "npm:^10.0.0" + "@graphql-typed-document-node/core": "npm:3.2.0" + tslib: "npm:~2.5.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: c975e72a97a0f679a9ee77265ad5cf535d17d5409fb39704653f0b6c203e1c6815e0a81b20b0d597ebb8f537a5a8a5a601a9366073270fde9971408f0ddadc1d + languageName: node + linkType: hard + "@graphql-codegen/core@npm:^4.0.0": version: 4.0.0 resolution: "@graphql-codegen/core@npm:4.0.0" @@ -2975,7 +2998,22 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/plugin-helpers@npm:^2.7.2": +"@graphql-codegen/gql-tag-operations@npm:4.0.1": + version: 4.0.1 + resolution: "@graphql-codegen/gql-tag-operations@npm:4.0.1" + dependencies: + "@graphql-codegen/plugin-helpers": "npm:^5.0.0" + "@graphql-codegen/visitor-plugin-common": "npm:4.0.1" + "@graphql-tools/utils": "npm:^10.0.0" + auto-bind: "npm:~4.0.0" + tslib: "npm:~2.5.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: c2e0be33d2e0362892b466058da02ad8476192691ce8efc64f0e94116a1b2ae6c1a479b5d399f4396fee3c54959f5e4a296d994bcffa458c1ec5167c56d183ab + languageName: node + linkType: hard + +"@graphql-codegen/plugin-helpers@npm:^2.4.0, @graphql-codegen/plugin-helpers@npm:^2.7.2": version: 2.7.2 resolution: "@graphql-codegen/plugin-helpers@npm:2.7.2" dependencies: @@ -3036,7 +3074,7 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/typed-document-node@npm:^5.0.0": +"@graphql-codegen/typed-document-node@npm:^5.0.0, @graphql-codegen/typed-document-node@npm:^5.0.1": version: 5.0.1 resolution: "@graphql-codegen/typed-document-node@npm:5.0.1" dependencies: @@ -3066,7 +3104,7 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/typescript-operations@npm:4.0.1, @graphql-codegen/typescript-operations@npm:^4.0.0": +"@graphql-codegen/typescript-operations@npm:4.0.1, @graphql-codegen/typescript-operations@npm:^4.0.0, @graphql-codegen/typescript-operations@npm:^4.0.1": version: 4.0.1 resolution: "@graphql-codegen/typescript-operations@npm:4.0.1" dependencies: @@ -3147,7 +3185,27 @@ __metadata: languageName: node linkType: hard -"@graphql-codegen/visitor-plugin-common@npm:4.0.1": +"@graphql-codegen/visitor-plugin-common@npm:2.7.4": + version: 2.7.4 + resolution: "@graphql-codegen/visitor-plugin-common@npm:2.7.4" + dependencies: + "@graphql-codegen/plugin-helpers": "npm:^2.4.0" + "@graphql-tools/optimize": "npm:^1.0.1" + "@graphql-tools/relay-operation-optimizer": "npm:^6.3.7" + "@graphql-tools/utils": "npm:^8.3.0" + auto-bind: "npm:~4.0.0" + change-case-all: "npm:1.0.14" + dependency-graph: "npm:^0.11.0" + graphql-tag: "npm:^2.11.0" + parse-filepath: "npm:^1.0.2" + tslib: "npm:~2.3.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 12009a549fe6ba33197c5dddfa05a95b3d9b2d43693979f80066b94c6931706d3e39f73361c28ff825f2da3e44502c6b4f13a440bc4d5c0fc5af86b6ac93e6da + languageName: node + linkType: hard + +"@graphql-codegen/visitor-plugin-common@npm:4.0.1, @graphql-codegen/visitor-plugin-common@npm:^4.0.1": version: 4.0.1 resolution: "@graphql-codegen/visitor-plugin-common@npm:4.0.1" dependencies: @@ -3661,6 +3719,18 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/documents@npm:^1.0.0": + version: 1.0.0 + resolution: "@graphql-tools/documents@npm:1.0.0" + dependencies: + lodash.sortby: "npm:^4.7.0" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 06b2cc9f8d0fb7e5c43e434cab35698655d6d65cfa94c301996d6b1354101837a8e709b26dc5251fa2c3216e8469fb0db76b4cd93ca015b61f75e9926db9d9ef + languageName: node + linkType: hard + "@graphql-tools/executor-graphql-ws@npm:^1.0.0": version: 1.1.1 resolution: "@graphql-tools/executor-graphql-ws@npm:1.1.1" @@ -3865,7 +3935,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/optimize@npm:^1.3.0": +"@graphql-tools/optimize@npm:^1.0.1, @graphql-tools/optimize@npm:^1.3.0": version: 1.4.0 resolution: "@graphql-tools/optimize@npm:1.4.0" dependencies: @@ -3915,7 +3985,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/relay-operation-optimizer@npm:^6.5.0": +"@graphql-tools/relay-operation-optimizer@npm:^6.3.7, @graphql-tools/relay-operation-optimizer@npm:^6.5.0": version: 6.5.18 resolution: "@graphql-tools/relay-operation-optimizer@npm:6.5.18" dependencies: @@ -4024,7 +4094,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/utils@npm:^8.8.0": +"@graphql-tools/utils@npm:^8.3.0, @graphql-tools/utils@npm:^8.8.0": version: 8.13.1 resolution: "@graphql-tools/utils@npm:8.13.1" dependencies: @@ -4749,6 +4819,7 @@ __metadata: "@gorhom/bottom-sheet": "npm:4.5.1" "@graphql-codegen/add": "npm:5.0.0" "@graphql-codegen/cli": "npm:5.0.0" + "@graphql-codegen/client-preset": "npm:4.1.0" "@graphql-codegen/typescript": "npm:4.0.1" "@graphql-codegen/typescript-operations": "npm:4.0.1" "@graphql-codegen/typescript-react-query": "npm:6.0.0" @@ -4758,7 +4829,7 @@ __metadata: "@react-native-community/netinfo": "npm:9.3.10" "@react-navigation/native": "npm:6.1.9" "@react-navigation/native-stack": "npm:6.9.17" - "@tanstack/react-query": "npm:5.13.4" + "@tanstack/react-query": "npm:4.32.6" "@types/lodash": "npm:4.14.202" "@types/node": "npm:20.10.4" "@types/react": "npm:~18.2.43" @@ -4799,6 +4870,7 @@ __metadata: react-native-web: "npm:~0.19.9" ts-node: "npm:10.9.2" typescript: "npm:^5.3.3" + typescript-graphql-request: "npm:^4.4.6" zustand: "npm:4.4.7" languageName: unknown linkType: soft @@ -7833,21 +7905,29 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:5.13.4": - version: 5.13.4 - resolution: "@tanstack/query-core@npm:5.13.4" - checksum: 52158a21f82b79afed740339d57886a4b98227d0853bf547d76a54832cb297d8d50d078ab8e62809810b98c017f98fc4a2492dc2d34e71a4fac15eca9681d0b3 +"@tanstack/query-core@npm:4.32.6": + version: 4.32.6 + resolution: "@tanstack/query-core@npm:4.32.6" + checksum: 601e9b3e92ba200a013bdd0c7fd43d77b56c8be14a041b2efa5f9c02cae46f541f947e47eeb03ccc83e6fd490d833e87e86e45cde8ace785b3c2b07fbcfc475f languageName: node linkType: hard -"@tanstack/react-query@npm:5.13.4": - version: 5.13.4 - resolution: "@tanstack/react-query@npm:5.13.4" +"@tanstack/react-query@npm:4.32.6": + version: 4.32.6 + resolution: "@tanstack/react-query@npm:4.32.6" dependencies: - "@tanstack/query-core": "npm:5.13.4" + "@tanstack/query-core": "npm:4.32.6" + use-sync-external-store: "npm:^1.2.0" peerDependencies: - react: ^18.0.0 - checksum: 626dd2ea2b87d88629423b3d0fe9c971bb6d58cbeb157c8a0f01b21acb5563a99d81d2eaeb5f800e4e9a4b56ce7426941e6ddf6fc3d8a60ba46e3e9673844441 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-native: "*" + peerDependenciesMeta: + react-dom: + optional: true + react-native: + optional: true + checksum: af6b656748b261f861d2e017aae3913bfb754b5fbc29a00cd940456f8630f6a92b256e6b03832e6ffcda5d34e2d88947e9848fc29dbcc728fa57fa0da4e2db46 languageName: node linkType: hard @@ -18649,6 +18729,13 @@ __metadata: languageName: node linkType: hard +"lodash.sortby@npm:^4.7.0": + version: 4.7.0 + resolution: "lodash.sortby@npm:4.7.0" + checksum: fc48fb54ff7669f33bb32997cab9460757ee99fafaf72400b261c3e10fde21538e47d8cfcbe6a25a31bcb5b7b727c27d52626386fc2de24eb059a6d64a89cdf5 + languageName: node + linkType: hard + "lodash.startcase@npm:^4.4.0": version: 4.4.0 resolution: "lodash.startcase@npm:4.4.0" @@ -25894,6 +25981,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:~2.3.0": + version: 2.3.1 + resolution: "tslib@npm:2.3.1" + checksum: 4efd888895bdb3b987086b2b7793ad1013566f882b0eb7a328384e5ecc0d71cafb16bbeab3196200cbf7f01a73ccc25acc2f131d4ea6ee959be7436a8a306482 + languageName: node + linkType: hard + "tslib@npm:~2.4.0": version: 2.4.1 resolution: "tslib@npm:2.4.1" @@ -26103,6 +26197,22 @@ __metadata: languageName: node linkType: hard +"typescript-graphql-request@npm:^4.4.6": + version: 4.4.6 + resolution: "typescript-graphql-request@npm:4.4.6" + dependencies: + "@graphql-codegen/plugin-helpers": "npm:^2.4.0" + "@graphql-codegen/visitor-plugin-common": "npm:2.7.4" + auto-bind: "npm:~4.0.0" + tslib: "npm:~2.3.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-request: ^3.4.0 || ^4.0.0 + graphql-tag: ^2.0.0 + checksum: 0f526957b7b5d1a8dbca5e4d38797be20f2610307b28f54b3507047bed005f6c589b5f70deced98dda7c4698d0472aef2a37fb0836d8dae0b90bedb3d1a97d99 + languageName: node + linkType: hard + "typescript@npm:^5.0.4, typescript@npm:^5.3.3": version: 5.3.3 resolution: "typescript@npm:5.3.3" @@ -26616,7 +26726,7 @@ __metadata: languageName: node linkType: hard -"use-sync-external-store@npm:1.2.0, use-sync-external-store@npm:^1.0.0": +"use-sync-external-store@npm:1.2.0, use-sync-external-store@npm:^1.0.0, use-sync-external-store@npm:^1.2.0": version: 1.2.0 resolution: "use-sync-external-store@npm:1.2.0" peerDependencies: