From 576f9092bdb01e9609aa489beb545646256d8447 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Tue, 7 Feb 2023 12:29:10 +0300 Subject: [PATCH] scripts: add graphql:codegen script --- apps/web/package.json | 1 + apps/web/scripts/graphql-codegen.js | 3 +++ apps/web/scripts/graphql-update.js | 12 +++--------- apps/web/scripts/lib/graphql.js | 18 ++++++++++++++++++ package.json | 3 ++- scripts/graphql-codegen.js | 5 +++++ 6 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 apps/web/scripts/graphql-codegen.js create mode 100644 apps/web/scripts/lib/graphql.js create mode 100644 scripts/graphql-codegen.js diff --git a/apps/web/package.json b/apps/web/package.json index f0900b2..32ca0d7 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -9,6 +9,7 @@ "lint:fix": "next lint -- --fix", "start": "next start", "graphql:update": "node ./scripts/graphql-update.js", + "graphql:codegen": "node ./scripts/graphql-codegen.js", "test": "jest" }, "dependencies": { diff --git a/apps/web/scripts/graphql-codegen.js b/apps/web/scripts/graphql-codegen.js new file mode 100644 index 0000000..1fe65ec --- /dev/null +++ b/apps/web/scripts/graphql-codegen.js @@ -0,0 +1,3 @@ +const { generateTypescript } = require('./lib/graphql'); + +generateTypescript(); diff --git a/apps/web/scripts/graphql-update.js b/apps/web/scripts/graphql-update.js index 3a3b438..1525d63 100644 --- a/apps/web/scripts/graphql-update.js +++ b/apps/web/scripts/graphql-update.js @@ -1,10 +1,4 @@ -const run = require('tools/scripts'); +const { downloadSchema, generateTypescript } = require('./lib/graphql'); -const { URL_CRM_GRAPHQL_DIRECT } = process.env; -const PATH_CRM_GRAPHQL_SCHEMA = './graphql/crm.schema.graphql'; - -const command1 = ['gql-sdl', URL_CRM_GRAPHQL_DIRECT, '-o', PATH_CRM_GRAPHQL_SCHEMA].join(' '); -run(command1, 'Download GraphQL Schema...'); - -const command2 = ['graphql-codegen,', '--config', '.graphqlrc.yml'].join(' '); -run(command2, 'Generating TypeScript code...'); +downloadSchema(); +generateTypescript(); diff --git a/apps/web/scripts/lib/graphql.js b/apps/web/scripts/lib/graphql.js new file mode 100644 index 0000000..693a9d8 --- /dev/null +++ b/apps/web/scripts/lib/graphql.js @@ -0,0 +1,18 @@ +const run = require('tools/scripts'); + +function downloadSchema() { + const { URL_CRM_GRAPHQL_DIRECT } = process.env; + const PATH_CRM_GRAPHQL_SCHEMA = './graphql/crm.schema.graphql'; + const command1 = ['gql-sdl', URL_CRM_GRAPHQL_DIRECT, '-o', PATH_CRM_GRAPHQL_SCHEMA].join(' '); + run(command1, 'Download GraphQL Schema...'); +} + +function generateTypescript() { + const command2 = ['graphql-codegen,', '--config', '.graphqlrc.yml'].join(' '); + run(command2, 'Generating TypeScript code...'); +} + +module.exports = { + downloadSchema, + generateTypescript, +}; diff --git a/package.json b/package.json index be1a566..d5a15f0 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "test": "dotenv -e .env.local turbo run test", "prepare": "husky install", "precommit": "yarn format && yarn lint:fix && yarn test", - "graphql:update": "dotenv -e .env.local node ./scripts/graphql-update.js" + "graphql:update": "dotenv -e .env.local node ./scripts/graphql-update.js", + "graphql:codegen": "dotenv -e .env.local node ./scripts/graphql-codegen.js" }, "dependencies": {}, "devDependencies": { diff --git a/scripts/graphql-codegen.js b/scripts/graphql-codegen.js new file mode 100644 index 0000000..1323ee0 --- /dev/null +++ b/scripts/graphql-codegen.js @@ -0,0 +1,5 @@ +const run = require('tools/scripts'); + +const command = ['yarn', 'workspace', 'web', 'graphql:codegen'].join(' '); + +run(command, '*** Update GraphQL files ***');