From 769fe60f7b30e0b8fa18b033d46ccbac3ccf3706 Mon Sep 17 00:00:00 2001 From: Evan Sosenko Date: Thu, 18 Apr 2024 21:52:38 -0700 Subject: [PATCH] Simplify generate --- .github/workflows/generate.yml | 2 -- generate-routes.js | 26 ++++++++++++++++++++++++ package.json | 6 +++--- scripts/generate.js | 37 ---------------------------------- 4 files changed, 29 insertions(+), 42 deletions(-) create mode 100644 generate-routes.js delete mode 100644 scripts/generate.js diff --git a/.github/workflows/generate.yml b/.github/workflows/generate.yml index d7b250f..419644e 100644 --- a/.github/workflows/generate.yml +++ b/.github/workflows/generate.yml @@ -43,8 +43,6 @@ jobs: run: npm run generate - name: Install dependencies run: poetry install --sync - - name: Format - run: make format - name: Commit uses: stefanzweifel/git-auto-commit-action@v5 with: diff --git a/generate-routes.js b/generate-routes.js new file mode 100644 index 0000000..69e339a --- /dev/null +++ b/generate-routes.js @@ -0,0 +1,26 @@ +import path from 'node:path' +import { fileURLToPath } from 'node:url' + +import { + generatePythonSDK as generateSdk, + writeFs, +} from '@seamapi/nextlove-sdk-generator' +import { openapi } from '@seamapi/types/connect' +import { deleteAsync } from 'del' + +const libName = 'seam' + +const rootPath = path.dirname(fileURLToPath(import.meta.url)) +const outputPath = path.resolve(rootPath, libName) + +await deleteAsync(outputPath) + +const fileSystem = await generateSdk({ + openApiSpecObject: openapi, +}) + +const files = Object.entries(fileSystem).filter(([fileName]) => + fileName.startsWith(`${libName}/`), +) + +writeFs(rootPath, Object.fromEntries(files)) diff --git a/package.json b/package.json index a03f48b..695b063 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,9 @@ "private": true, "type": "module", "scripts": { - "generate": "node ./scripts/generate.js", - "format": "prettier --write --ignore-path .gitignore .", - "preformat": "make format" + "generate": "node generate-routes.js", + "postgenerate": "make format", + "format": "prettier --write --ignore-path .gitignore ." }, "devDependencies": { "@seamapi/nextlove-sdk-generator": "1.8.5", diff --git a/scripts/generate.js b/scripts/generate.js deleted file mode 100644 index 5f4faba..0000000 --- a/scripts/generate.js +++ /dev/null @@ -1,37 +0,0 @@ -import { generatePythonSDK, writeFs } from '@seamapi/nextlove-sdk-generator' -import { openapi } from '@seamapi/types/connect' -import path from 'node:path' -import { fileURLToPath } from 'node:url' -import { deleteAsync } from 'del' - -const SEAM_DIRECTORY_PREFIX = 'seam/' -const PROJECT_ROOT_PATH = path.resolve( - path.dirname(fileURLToPath(import.meta.url)), - '../', -) -const MAIN_SEAM_DIR_PATH = path.resolve( - PROJECT_ROOT_PATH, - SEAM_DIRECTORY_PREFIX, -) - -const main = async () => { - try { - await deleteAsync(MAIN_SEAM_DIR_PATH) - - const pythonSdkFileSystem = await generatePythonSDK({ - openApiSpecObject: openapi, - }) - - const seamFiles = Object.entries(pythonSdkFileSystem).filter(([fileName]) => - fileName.startsWith(SEAM_DIRECTORY_PREFIX), - ) - - writeFs(PROJECT_ROOT_PATH, Object.fromEntries(seamFiles)) - - console.log('Python SDK generated successfully!') - } catch (error) { - console.error('Failed to generate SDK:', error) - } -} - -await main()