From 5fd2ae0c8e5753b922cc4f80cd3f0eeb66725155 Mon Sep 17 00:00:00 2001 From: Zakaria Mansouri Date: Sat, 25 Jan 2025 13:25:59 +0100 Subject: [PATCH 1/2] add TypeScript check script and integrate it into CI workflow --- .github/workflows/ci.reusable.misc.yml | 1 + web/cloudflare/package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/ci.reusable.misc.yml b/.github/workflows/ci.reusable.misc.yml index 2cfbf05c8..9937b381d 100644 --- a/.github/workflows/ci.reusable.misc.yml +++ b/.github/workflows/ci.reusable.misc.yml @@ -27,3 +27,4 @@ jobs: - run: npx lerna run bundle:alone --scope "@dzcode.io/web" - run: npx lerna run generate:sitemap --scope "@dzcode.io/web" - run: npx lerna run generate:htmls --scope "@dzcode.io/web" + - run: npm run --prefix web/cloudflare ts:check diff --git a/web/cloudflare/package.json b/web/cloudflare/package.json index 0c7c8ba11..6ee4a9e02 100644 --- a/web/cloudflare/package.json +++ b/web/cloudflare/package.json @@ -14,6 +14,7 @@ }, "private": true, "scripts": { + "ts:check": "tsc --noEmit", "build": "lerna run build:alone --scope=@dzcode.io/web --include-dependencies --stream", "deploy:prd": "npm run generate:config -- production && wrangler pages deploy --branch main", "deploy:stg": "npm run generate:config -- staging && wrangler pages deploy --branch main", From 37dad7d1dc962294719d86469b146340b84692a5 Mon Sep 17 00:00:00 2001 From: Zakaria Mansouri Date: Sat, 25 Jan 2025 13:32:45 +0100 Subject: [PATCH 2/2] refactor: update language imports and types in sitemap functions --- web/cloudflare/functions/w/contributions-sitemap.xml.ts | 7 ++++--- web/cloudflare/functions/w/contributors-sitemap.xml.ts | 7 ++++--- web/cloudflare/functions/w/projects-sitemap.xml.ts | 7 ++++--- web/cloudflare/scripts/generate-config.ts | 3 +++ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/web/cloudflare/functions/w/contributions-sitemap.xml.ts b/web/cloudflare/functions/w/contributions-sitemap.xml.ts index d032dfaed..54f7d4214 100644 --- a/web/cloudflare/functions/w/contributions-sitemap.xml.ts +++ b/web/cloudflare/functions/w/contributions-sitemap.xml.ts @@ -1,10 +1,11 @@ import { Env } from "handler/contribution"; import { environments } from "@dzcode.io/utils/dist/config/environment"; -import { Language, Languages } from "@dzcode.io/models/dist/language"; +import { LANGUAGES } from "@dzcode.io/models/dist/language"; import { getContributionURL } from "@dzcode.io/web/dist/utils/contribution"; import { fsConfig } from "@dzcode.io/utils/dist/config"; import { fetchV2Factory } from "@dzcode.io/utils/dist/fetch/factory"; import { Endpoints } from "@dzcode.io/api/dist/app/endpoints"; +import { LanguageCode } from "@dzcode.io/utils/dist/language"; function xmlEscape(s: string) { return s.replace( @@ -20,9 +21,9 @@ export const onRequest: PagesFunction = async (context) => { stage = "development"; } const fullstackConfig = fsConfig(stage); - const links: Array<{ url: string; lang: Language["code"] }> = []; + const links: Array<{ url: string; lang: LanguageCode }> = []; - for (const lang of Languages) { + for (const lang of LANGUAGES) { const fetchV2 = fetchV2Factory(fullstackConfig, lang.code); const { contributions } = await fetchV2("api:contributions/for-sitemap", {}); diff --git a/web/cloudflare/functions/w/contributors-sitemap.xml.ts b/web/cloudflare/functions/w/contributors-sitemap.xml.ts index f1c5a979c..d04a6c04c 100644 --- a/web/cloudflare/functions/w/contributors-sitemap.xml.ts +++ b/web/cloudflare/functions/w/contributors-sitemap.xml.ts @@ -1,10 +1,11 @@ import { Env } from "handler/contributor"; import { environments } from "@dzcode.io/utils/dist/config/environment"; -import { Language, Languages } from "@dzcode.io/models/dist/language"; +import { LANGUAGES } from "@dzcode.io/models/dist/language"; import { getContributorURL } from "@dzcode.io/web/dist/utils/contributor"; import { fsConfig } from "@dzcode.io/utils/dist/config"; import { fetchV2Factory } from "@dzcode.io/utils/dist/fetch/factory"; import { Endpoints } from "@dzcode.io/api/dist/app/endpoints"; +import { LanguageCode } from "@dzcode.io/utils/dist/language"; export const onRequest: PagesFunction = async (context) => { let stage = context.env.STAGE; @@ -13,8 +14,8 @@ export const onRequest: PagesFunction = async (context) => { stage = "development"; } const fullstackConfig = fsConfig(stage); - const links: Array<{ url: string; lang: Language["code"] }> = []; - for (const lang of Languages) { + const links: Array<{ url: string; lang: LanguageCode }> = []; + for (const lang of LANGUAGES) { const fetchV2 = fetchV2Factory(fullstackConfig, lang.code); const { contributors } = await fetchV2("api:contributors/for-sitemap", {}); for (const contributor of contributors) { diff --git a/web/cloudflare/functions/w/projects-sitemap.xml.ts b/web/cloudflare/functions/w/projects-sitemap.xml.ts index 712192ec4..d912f4a14 100644 --- a/web/cloudflare/functions/w/projects-sitemap.xml.ts +++ b/web/cloudflare/functions/w/projects-sitemap.xml.ts @@ -1,10 +1,11 @@ import { Env } from "handler/project"; import { environments } from "@dzcode.io/utils/dist/config/environment"; -import { Language, Languages } from "@dzcode.io/models/dist/language"; import { getProjectURL } from "@dzcode.io/web/dist/utils/project"; import { fsConfig } from "@dzcode.io/utils/dist/config"; import { fetchV2Factory } from "@dzcode.io/utils/dist/fetch/factory"; import { Endpoints } from "@dzcode.io/api/dist/app/endpoints"; +import { LANGUAGES } from "@dzcode.io/models/dist/language"; +import { LanguageCode } from "@dzcode.io/utils/dist/language"; export const onRequest: PagesFunction = async (context) => { let stage = context.env.STAGE; @@ -13,8 +14,8 @@ export const onRequest: PagesFunction = async (context) => { stage = "development"; } const fullstackConfig = fsConfig(stage); - const links: Array<{ url: string; lang: Language["code"] }> = []; - for (const lang of Languages) { + const links: Array<{ url: string; lang: LanguageCode }> = []; + for (const lang of LANGUAGES) { const fetchV2 = fetchV2Factory(fullstackConfig, lang.code); const { projects } = await fetchV2("api:projects/for-sitemap", {}); for (const project of projects) { diff --git a/web/cloudflare/scripts/generate-config.ts b/web/cloudflare/scripts/generate-config.ts index b49356ed8..6b6d3f2b2 100644 --- a/web/cloudflare/scripts/generate-config.ts +++ b/web/cloudflare/scripts/generate-config.ts @@ -1,3 +1,6 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-nocheck + import { writeFileSync } from "fs"; // Get the environment passed as argument