From 90d731ad3b4b3b81ef57edd6b6597eccf477b2e6 Mon Sep 17 00:00:00 2001 From: Olaf Ghanizadeh Date: Tue, 13 Aug 2024 18:51:11 +0100 Subject: [PATCH 1/7] add vite and vite.config.ts --- .../remix-run/application/package-lock.json | 67 ++++++++++++++++--- frameworks/remix-run/application/package.json | 6 +- .../remix-run/application/vite.config.ts | 16 +++++ 3 files changed, 79 insertions(+), 10 deletions(-) create mode 100644 frameworks/remix-run/application/vite.config.ts diff --git a/frameworks/remix-run/application/package-lock.json b/frameworks/remix-run/application/package-lock.json index f12e4b3..c7866c0 100644 --- a/frameworks/remix-run/application/package-lock.json +++ b/frameworks/remix-run/application/package-lock.json @@ -55,7 +55,9 @@ "concurrently": "^7.6", "postcss": "^8.4.20", "tailwindcss": "^3.4.1", - "typescript": "^5.3.3" + "typescript": "^5.3.3", + "vite": "^5.4.0", + "vite-tsconfig-paths": "^5.0.1" }, "engines": { "node": ">=18" @@ -4767,6 +4769,12 @@ "node": ">=4" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -8039,9 +8047,9 @@ } }, "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "dev": true, "funding": [ { @@ -9864,6 +9872,26 @@ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "node_modules/tsconfck": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.1.tgz", + "integrity": "sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==", + "dev": true, + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/tsconfig-paths": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", @@ -10310,13 +10338,13 @@ } }, "node_modules/vite": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", - "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz", + "integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==", "dev": true, "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.39", + "postcss": "^8.4.40", "rollup": "^4.13.0" }, "bin": { @@ -10336,6 +10364,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -10353,6 +10382,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -10399,6 +10431,25 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite-tsconfig-paths": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.0.1.tgz", + "integrity": "sha512-yqwv+LstU7NwPeNqajZzLEBVpUFU6Dugtb2P84FXuvaoYA+/70l9MHE+GYfYAycVyPSDYZ7mjOFuYBRqlEpTig==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/vite/node_modules/@esbuild/android-arm": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", diff --git a/frameworks/remix-run/application/package.json b/frameworks/remix-run/application/package.json index 59bbfba..c51d92e 100644 --- a/frameworks/remix-run/application/package.json +++ b/frameworks/remix-run/application/package.json @@ -7,7 +7,7 @@ "scripts": { "build": "npm run build:css && remix build", "build:css": "tailwindcss -c tailwind.config.js -m -i ./src/styles/index.css -o ./src/styles/tailwind.css", - "dev": "remix dev", + "dev": "remix vite:dev", "dev:css": "tailwindcss -c tailwind.config.js -w -i ./src/styles/index.css -o ./src/styles/tailwind.css", "start": "remix-serve ./build/index.js", "test": "playwright test", @@ -62,7 +62,9 @@ "concurrently": "^7.6", "postcss": "^8.4.20", "tailwindcss": "^3.4.1", - "typescript": "^5.3.3" + "typescript": "^5.3.3", + "vite": "^5.4.0", + "vite-tsconfig-paths": "^5.0.1" }, "overrides": { "@react-pdf/renderer": { diff --git a/frameworks/remix-run/application/vite.config.ts b/frameworks/remix-run/application/vite.config.ts new file mode 100644 index 0000000..9264805 --- /dev/null +++ b/frameworks/remix-run/application/vite.config.ts @@ -0,0 +1,16 @@ +import {vitePlugin as remix} from "@remix-run/dev"; +import {defineConfig} from "vite"; +import tsconfigPaths from 'vite-tsconfig-paths'; + + +export default defineConfig({ + server: { + port: process.env.REMIX_APP_PORT || 3000 + }, + plugins: [remix({ + appDirectory: "src", + serverModuleFormat: "esm" + }), + tsconfigPaths() + ], +}); From df5b9124a77afa5ac70316f17651dd431738c206 Mon Sep 17 00:00:00 2001 From: Olaf Ghanizadeh Date: Wed, 18 Sep 2024 17:42:12 +0100 Subject: [PATCH 2/7] Remove remix.config.js file, replaced by vite config --- frameworks/remix-run/application/remix.config.js | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 frameworks/remix-run/application/remix.config.js diff --git a/frameworks/remix-run/application/remix.config.js b/frameworks/remix-run/application/remix.config.js deleted file mode 100644 index 90cff92..0000000 --- a/frameworks/remix-run/application/remix.config.js +++ /dev/null @@ -1,13 +0,0 @@ -/** - * @type {import('@remix-run/dev').AppConfig} - * {import} - */ - -module.exports = { - ignoredRouteFiles: ['.*'], - appDirectory: 'src', - dev: { - port: 8002, - }, - serverModuleFormat: 'cjs', -}; From e25730078e938b6ba6a48620567351e27e4f3c9a Mon Sep 17 00:00:00 2001 From: Olaf Ghanizadeh Date: Wed, 18 Sep 2024 17:50:18 +0100 Subject: [PATCH 3/7] Enable symlink preservation in Vite config in order to support symlinked folders in monorepo --- frameworks/remix-run/application/vite.config.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/frameworks/remix-run/application/vite.config.ts b/frameworks/remix-run/application/vite.config.ts index 9264805..9e02f89 100644 --- a/frameworks/remix-run/application/vite.config.ts +++ b/frameworks/remix-run/application/vite.config.ts @@ -7,6 +7,9 @@ export default defineConfig({ server: { port: process.env.REMIX_APP_PORT || 3000 }, + resolve: { + preserveSymlinks: true + }, plugins: [remix({ appDirectory: "src", serverModuleFormat: "esm" From 4a7bea0e009607ce51e42341b25c14ac4961d8ea Mon Sep 17 00:00:00 2001 From: Olaf Ghanizadeh Date: Wed, 18 Sep 2024 17:50:34 +0100 Subject: [PATCH 4/7] Switch to ES module exports in config files --- frameworks/remix-run/application/postcss.config.js | 4 ++-- frameworks/remix-run/application/tailwind.config.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/frameworks/remix-run/application/postcss.config.js b/frameworks/remix-run/application/postcss.config.js index 67cdf1a..5aa5df0 100644 --- a/frameworks/remix-run/application/postcss.config.js +++ b/frameworks/remix-run/application/postcss.config.js @@ -1,6 +1,6 @@ -module.exports = { +export default { plugins: { tailwindcss: {}, autoprefixer: {}, }, -}; +} \ No newline at end of file diff --git a/frameworks/remix-run/application/tailwind.config.js b/frameworks/remix-run/application/tailwind.config.js index 06aa689..e4506b7 100644 --- a/frameworks/remix-run/application/tailwind.config.js +++ b/frameworks/remix-run/application/tailwind.config.js @@ -1,4 +1,4 @@ -module.exports = { +export default { mode: 'jit', content: ['./src/**/*.{ts,tsx,jsx,js}'], theme: { From 7fe0b86e717373ee69ca599c4f510809ffb4b441 Mon Sep 17 00:00:00 2001 From: Olaf Ghanizadeh Date: Wed, 18 Sep 2024 17:51:08 +0100 Subject: [PATCH 5/7] Use ESM import for platformsh dependency --- shared/application/use-cases/storage.server.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/shared/application/use-cases/storage.server.ts b/shared/application/use-cases/storage.server.ts index 19922f0..80df7e9 100644 --- a/shared/application/use-cases/storage.server.ts +++ b/shared/application/use-cases/storage.server.ts @@ -1,13 +1,15 @@ import * as redis from 'redis'; import { BackendStorage, StorageOptions } from './contracts/BackendStorage'; +import { config } from 'platformsh-config'; + function createRedisStorageEngine(dsn: string | undefined, options: StorageOptions = {}): BackendStorage { const prefix = options?.prefix ?? ''; let redisDSN = `${dsn || 'redis://127.0.0.1:6379'}`; - const config = require('platformsh-config').config(); - if (config.isValidPlatform()) { - const credentials = config.credentials('redis'); - redisDSN = `redis://${credentials.host}:${credentials.port}`; + const platformConfig = config(); + if (platformConfig.isValidPlatform()) { + const credentials = platformConfig.credentials('redis'); + const redisDSN = `redis://${credentials.host}:${credentials.port}`; } const client = redis.createClient({ url: redisDSN }); client.connect(); From 3baa027885eec15f20bd3c94d864915c13258655 Mon Sep 17 00:00:00 2001 From: Olaf Ghanizadeh Date: Wed, 18 Sep 2024 17:55:10 +0100 Subject: [PATCH 6/7] Add type module to package.json --- frameworks/remix-run/application/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/frameworks/remix-run/application/package.json b/frameworks/remix-run/application/package.json index c51d92e..b8d4d3b 100644 --- a/frameworks/remix-run/application/package.json +++ b/frameworks/remix-run/application/package.json @@ -4,6 +4,7 @@ "description": "Crystallize Furniture v2 Remix Boilerplate", "license": "MIT", "sideEffects": false, + "type": "module", "scripts": { "build": "npm run build:css && remix build", "build:css": "tailwindcss -c tailwind.config.js -m -i ./src/styles/index.css -o ./src/styles/tailwind.css", From 9efd81bf8861ad1727782beb767ed81866cbab5a Mon Sep 17 00:00:00 2001 From: Olaf Ghanizadeh Date: Wed, 18 Sep 2024 17:55:39 +0100 Subject: [PATCH 7/7] Refactor import of DebounceInput in search-bar.tsx to support ESM import --- shared/application/ui/components/search/search-bar.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/shared/application/ui/components/search/search-bar.tsx b/shared/application/ui/components/search/search-bar.tsx index a18bb70..c40e045 100644 --- a/shared/application/ui/components/search/search-bar.tsx +++ b/shared/application/ui/components/search/search-bar.tsx @@ -1,6 +1,7 @@ import { useEffect, useRef, useState } from 'react'; import SearchIcon from '~/assets/searchIcon.svg'; -import { DebounceInput } from 'react-debounce-input'; +import pkg from 'react-debounce-input'; +const {DebounceInput} = pkg; import Link from '~/bridge/ui/Link'; import { Image } from '@crystallize/reactjs-components'; import { useAppContext } from '../../app-context/provider';