Compare commits

...

3 Commits

Author SHA1 Message Date
konnorrogers
29abd7efa1 try but fail ssr 2025-08-04 11:38:50 -04:00
konnorrogers
fded1571b4 prettier 2025-08-04 10:59:37 -04:00
konnorrogers
82b853f818 testing SSR 2025-08-04 10:57:51 -04:00
3 changed files with 17 additions and 2 deletions

5
package-lock.json generated
View File

@@ -1923,6 +1923,7 @@
"resolved": "https://registry.npmjs.org/@lit-labs/testing/-/testing-0.2.7.tgz",
"integrity": "sha512-1vuCq+uh6MId6VKzFyEtWejX3+VU0Xejaa1Fmdg5S10bh7Mv6u/KS1e4Z2yxnAHnpeLd5BezBrN13dEaKka+/A==",
"dev": true,
"license": "BSD-3-Clause",
"dependencies": {
"@lit-labs/ssr": "^3.3.0",
"@lit-labs/ssr-client": "^1.1.4",
@@ -13992,6 +13993,7 @@
"style-observer": "^0.0.7"
},
"devDependencies": {
"@lit-labs/testing": "^0.2.7",
"@wc-toolkit/jsx-types": "^1.3.0"
},
"engines": {
@@ -14013,6 +14015,9 @@
"qr-creator": "^1.0.0",
"style-observer": "^0.0.7"
},
"devDependencies": {
"@wc-toolkit/jsx-types": "^1.3.0"
},
"engines": {
"node": ">=14.17.0"
}

View File

@@ -54,8 +54,8 @@
"build:serve": "npm run build && npx http-server _site -p 4000",
"publish-alpha-cdn": "./publish-alpha-cdn.sh",
"create": "plop --plopfile scripts/plop/plopfile.js",
"test": "CSR_ONLY=\"true\" web-test-runner --group default",
"test:component": "CSR_ONLY=\"true\" web-test-runner -- --watch --group",
"test": "web-test-runner --group default",
"test:component": "web-test-runner -- --watch --group",
"test:watch": "web-test-runner --watch --group default",
"prettier": "prettier --check --log-level=warn --ignore-path=\"../../.prettierignore\" .",
"prettier:fix": "prettier --write --log-level=warn --ignore-path=\"../../.prettierignore\" .",
@@ -88,6 +88,7 @@
]
},
"devDependencies": {
"@lit-labs/testing": "^0.2.7",
"@wc-toolkit/jsx-types": "^1.3.0"
}
}

View File

@@ -5,6 +5,7 @@ import { globbySync } from 'globby';
import * as os from 'os';
import * as process from 'process';
import { getAllComponents } from './scripts/shared.js';
import {litSsrPlugin} from '@lit-labs/testing/web-test-runner-ssr-plugin.js';
// Get a list of all Web Awesome component imports for the test runner
const metadata = JSON.parse(readFileSync('./dist/custom-elements.json'), 'utf8');
@@ -17,6 +18,11 @@ getAllComponents(metadata).forEach(component => {
componentImports.push(`/dist-cdn/components/${name}/${name}.js`);
});
if (!process.env.CSR_ONLY && !process.env.SSR_ONLY) {
// Make CSR (client side rendering) the default if neither exists.
process.env.CSR_ONLY = 'true';
}
// os.availableParallelism only available as of Node 18.14.0 , maybe don't need the fallback?
// I've found the browser is more stable if you give it concurrency up front.
const cores = os.availableParallelism?.() ?? os.cpus.length;
@@ -69,6 +75,7 @@ export default {
ts: true,
target: 'es2020',
}),
litSsrPlugin()
],
browsers: [
playwrightLauncher({ product: 'chromium', concurrency }),
@@ -88,6 +95,8 @@ export default {
window.process = {env: { NODE_ENV: "production" }}
</script>
<script>
window.SSR_ONLY = ${process.env.SSR_ONLY === "true"}
window.CSR_ONLY = ${process.env.CSR_ONLY === "true"}
window.serverComponents = [
${serverComponents.map(str => `"${str}"`).join(',\n')}
]