From 8e8695e7b1b3b95a231aff4d62594c162b7e1549 Mon Sep 17 00:00:00 2001 From: Pablo Diehl Date: Mon, 10 Feb 2025 14:28:55 -0300 Subject: [PATCH] Revert "feat: new preset for preact ssg (#433)" This reverts commit 83fbd183a123f6f692644ef99b6a1e52cdba9f70. --- lib/presets/preact/azion.config.js | 5 -- lib/presets/preact/config.js | 10 --- lib/presets/preact/handler.js | 17 ----- lib/presets/preact/prebuild.js | 89 ------------------------- lib/utils/presets/presets.utils.test.js | 1 - tests/e2e/preact-static.test.js | 58 ---------------- 6 files changed, 180 deletions(-) delete mode 100644 lib/presets/preact/azion.config.js delete mode 100644 lib/presets/preact/config.js delete mode 100644 lib/presets/preact/handler.js delete mode 100644 lib/presets/preact/prebuild.js delete mode 100644 tests/e2e/preact-static.test.js diff --git a/lib/presets/preact/azion.config.js b/lib/presets/preact/azion.config.js deleted file mode 100644 index b3a2cb79..00000000 --- a/lib/presets/preact/azion.config.js +++ /dev/null @@ -1,5 +0,0 @@ -import { Preact } from 'azion/presets'; - -const { config } = Preact; - -export default config; diff --git a/lib/presets/preact/config.js b/lib/presets/preact/config.js deleted file mode 100644 index 92d99b6f..00000000 --- a/lib/presets/preact/config.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Config to be used in build context. - */ -const config = { - builder: 'webpack', - polyfills: false, - custom: {}, -}; - -export default config; diff --git a/lib/presets/preact/handler.js b/lib/presets/preact/handler.js deleted file mode 100644 index 67981ba2..00000000 --- a/lib/presets/preact/handler.js +++ /dev/null @@ -1,17 +0,0 @@ -import { mountSPA } from 'azion/utils'; - -/** - * Handles the 'fetch' event. - * @param {import('azion/types').FetchEvent} event - The fetch event. - * @returns {Promise} The response for the request. - */ -async function handler(event) { - try { - const myApp = await mountSPA(event.request.url); - return myApp; - } catch (e) { - return new Response('Not Found', { status: 404 }); - } -} - -export default handler; diff --git a/lib/presets/preact/prebuild.js b/lib/presets/preact/prebuild.js deleted file mode 100644 index 64cb7853..00000000 --- a/lib/presets/preact/prebuild.js +++ /dev/null @@ -1,89 +0,0 @@ -import { exec, getPackageManager, copyDirectory } from '#utils'; -import { lstat, readFile, rm } from 'fs/promises'; -import { join } from 'path'; - -const packageManager = await getPackageManager(); -const edgeStorageDir = '.edge/storage'; -const defaultViteOutDir = 'dist'; - -/** - * Check if the vite.config file exists. - * @returns {boolean} True if the file exists, false otherwise. - */ -async function viteConfigExists() { - const files = ['./vite.config.js', './vite.config.ts']; - const checks = files.map(async (file) => { - try { - await lstat(file); - return true; - } catch (err) { - return false; - } - }); - - const results = await Promise.all(checks); - return results.includes(true); -} - -/** - * Read vite.config build output - * @returns {object} The parsed configuration object or null if the file doesn't exist. - */ -async function readViteBuildOutput() { - try { - const isTypescript = await lstat('./vite.config.ts').then( - () => true, - () => false, - ); - const pathConfigFile = join( - process.cwd(), - isTypescript ? 'vite.config.ts' : 'vite.config.js', - ); - const configFileContent = await readFile(pathConfigFile, 'utf-8'); - const defineConfig = configFileContent.match(/defineConfig\(([\s\S]*)\)/); - if (!defineConfig) { - throw new Error('defineConfig not found'); - } - const buildConfig = defineConfig[1].match(/build: *({[\s\S]*?}),/); - // eslint-disable-next-line no-eval - const buildConfigObject = eval(`(${buildConfig[1]})`); - return Promise.resolve({ build: buildConfigObject }); - } catch (err) { - return null; - } -} - -/** - * Runs custom prebuild actions - */ -async function prebuild() { - const npmArgsForward = packageManager === 'npm' ? '--' : ''; - - let outDir = defaultViteOutDir; - const destPath = edgeStorageDir; - - const isViteProject = await viteConfigExists(); - - if (isViteProject) { - await exec(`${packageManager} run build ${npmArgsForward}`, 'Preact', true); - - const config = await readViteBuildOutput(); - - if (config?.build?.outDir) { - outDir = config.build.outDir; - } - - copyDirectory(outDir, destPath); - rm(outDir, { recursive: true, force: true }); - } - - if (!isViteProject) { - await exec( - `BUILD_PATH="./.edge/storage" ${packageManager} run build`, - 'React', - true, - ); - } -} - -export default prebuild; diff --git a/lib/utils/presets/presets.utils.test.js b/lib/utils/presets/presets.utils.test.js index ec12130c..42634a53 100644 --- a/lib/utils/presets/presets.utils.test.js +++ b/lib/utils/presets/presets.utils.test.js @@ -22,7 +22,6 @@ describe('getPresetsList utils', () => { 'jekyll', 'next', 'nuxt', - 'preact', 'qwik', 'react', 'rustwasm', diff --git a/tests/e2e/preact-static.test.js b/tests/e2e/preact-static.test.js deleted file mode 100644 index b50febed..00000000 --- a/tests/e2e/preact-static.test.js +++ /dev/null @@ -1,58 +0,0 @@ -/* eslint-disable jest/expect-expect */ -import supertest from 'supertest'; -import puppeteer from 'puppeteer'; -import projectInitializer from '../utils/project-initializer.js'; -import projectStop from '../utils/project-stop.js'; -import { getContainerPort } from '../utils/docker-env-actions.js'; - -// timeout in minutes -const TIMEOUT = 10 * 60 * 1000; - -let serverPort; -let localhostBaseUrl; -const EXAMPLE_PATH = '/examples/preact-static'; - -describe('E2E - preact-static project', () => { - let request; - let browser; - let page; - - beforeAll(async () => { - serverPort = getContainerPort(); - localhostBaseUrl = `http://0.0.0.0:${serverPort}`; - - request = supertest(localhostBaseUrl); - - await projectInitializer(EXAMPLE_PATH, 'react', serverPort); - - browser = await puppeteer.launch({ - args: ['--no-sandbox', '--disable-setuid-sandbox'], - headless: 'new', - }); - page = await browser.newPage(); - }, TIMEOUT); - - afterAll(async () => { - await projectStop(serverPort, EXAMPLE_PATH.replace('/examples/', '')); - - await browser.close(); - }, TIMEOUT); - - test('Should render home page in "/" route', async () => { - await page.goto(`${localhostBaseUrl}/`); - - const pageContent = await page.content(); - const pageTitle = await page.title(); - - expect(pageContent).toContain('Get Started'); - expect(pageContent).toContain('Learn Preact'); - expect(pageTitle).toBe('Vite + Preact'); - }); - - test('Should return correct asset', async () => { - await request - .get('/vite.svg') - .expect(200) - .expect('Content-Type', 'image/svg+xml'); - }); -});