Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -118,14 +118,14 @@
"@vitejs/plugin-react": "^5.1.4",
"babel-plugin-graphql-tag": "^3.3.0",
"concurrently": "^9.2.1",
"esbuild": "^0.27.3",
"eslint": "^9.39.4",
"eslint-config-ndla": "^6.0.14-alpha.0",
"jsdom": "^28.1.0",
"nock": "^14.0.11",
"oxfmt": "^0.36.0",
"postcss": "^8.5.8",
"postcss-preset-env": "^11.2.0",
"rolldown": "^1.0.0-rc.8",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.56.1",
Expand Down
26 changes: 8 additions & 18 deletions scripts/build-server.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,16 @@
*
*/

import * as esbuild from "esbuild";
import { build } from "rolldown";

await esbuild.build({
entryPoints: ["src/server.ts"],
bundle: true,
format: "esm",
await build({
input: "src/server.ts",
platform: "node",
target: "esnext",
ignoreAnnotations: true,
sourcemap: true,
sourcesContent: false,
external: ["vite"],
outfile: "build/server.js",
// Vite automatically handles SSR env variables, covering most of our application.
// However, we also need to define it here to cover the small portion of our backend that runs outside of Vite.
define: {
"import.meta.env.SSR": "true",
},
// Mixing ESM and CJS is still a struggle. This is a workaround for now.
banner: {
js: `import { createRequire } from 'module';const require = createRequire(import.meta.url);`,
output: {
file: "build/server.js",
format: "esm",
codeSplitting: false,
sourcemap: true,
},
});
231 changes: 229 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1151,6 +1151,34 @@ __metadata:
languageName: node
linkType: hard

"@emnapi/core@npm:^1.7.1":
version: 1.8.1
resolution: "@emnapi/core@npm:1.8.1"
dependencies:
"@emnapi/wasi-threads": "npm:1.1.0"
tslib: "npm:^2.4.0"
checksum: 10c0/2c242f4b49779bac403e1cbcc98edacdb1c8ad36562408ba9a20663824669e930bc8493be46a2522d9dc946b8d96cd7073970bae914928c7671b5221c85b432e
languageName: node
linkType: hard

"@emnapi/runtime@npm:^1.7.1":
version: 1.8.1
resolution: "@emnapi/runtime@npm:1.8.1"
dependencies:
tslib: "npm:^2.4.0"
checksum: 10c0/f4929d75e37aafb24da77d2f58816761fe3f826aad2e37fa6d4421dac9060cbd5098eea1ac3c9ecc4526b89deb58153852fa432f87021dc57863f2ff726d713f
languageName: node
linkType: hard

"@emnapi/wasi-threads@npm:1.1.0":
version: 1.1.0
resolution: "@emnapi/wasi-threads@npm:1.1.0"
dependencies:
tslib: "npm:^2.4.0"
checksum: 10c0/e6d54bf2b1e64cdd83d2916411e44e579b6ae35d5def0dea61a3c452d9921373044dff32a8b8473ae60c80692bdc39323e98b96a3f3d87ba6886b24dd0ef7ca1
languageName: node
linkType: hard

"@envelop/core@npm:^5.4.0":
version: 5.4.0
resolution: "@envelop/core@npm:5.4.0"
Expand Down Expand Up @@ -2720,6 +2748,17 @@ __metadata:
languageName: node
linkType: hard

"@napi-rs/wasm-runtime@npm:^1.1.1":
version: 1.1.1
resolution: "@napi-rs/wasm-runtime@npm:1.1.1"
dependencies:
"@emnapi/core": "npm:^1.7.1"
"@emnapi/runtime": "npm:^1.7.1"
"@tybys/wasm-util": "npm:^0.10.1"
checksum: 10c0/04d57b67e80736e41fe44674a011878db0a8ad893f4d44abb9d3608debb7c174224cba2796ed5b0c1d367368159f3ca6be45f1c59222f70e32ddc880f803d447
languageName: node
linkType: hard

"@ndla/article-converter@npm:^10.0.185-alpha.0":
version: 10.0.185-alpha.0
resolution: "@ndla/article-converter@npm:10.0.185-alpha.0"
Expand Down Expand Up @@ -3033,6 +3072,13 @@ __metadata:
languageName: node
linkType: hard

"@oxc-project/types@npm:=0.115.0":
version: 0.115.0
resolution: "@oxc-project/types@npm:0.115.0"
checksum: 10c0/47fc31eb3fb3fcf4119955339f92ba2003f9b445834c1a28ed945cd6b9cd833c7ba66fca88aa5277336c2c55df300a593bc67970e544691eceaa486ebe12cb58
languageName: node
linkType: hard

"@oxfmt/binding-android-arm-eabi@npm:0.36.0":
version: 0.36.0
resolution: "@oxfmt/binding-android-arm-eabi@npm:0.36.0"
Expand Down Expand Up @@ -3430,13 +3476,127 @@ __metadata:
languageName: node
linkType: hard

"@rolldown/binding-android-arm64@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.8"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard

"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.8"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard

"@rolldown/binding-darwin-x64@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.8"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard

"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.8"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard

"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.8"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard

"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.8"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard

"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.8"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard

"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.8"
conditions: os=linux & cpu=ppc64 & libc=glibc
languageName: node
linkType: hard

"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.8"
conditions: os=linux & cpu=s390x & libc=glibc
languageName: node
linkType: hard

"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.8"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard

"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.8"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard

"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.8"
conditions: os=openharmony & cpu=arm64
languageName: node
linkType: hard

"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.8"
dependencies:
"@napi-rs/wasm-runtime": "npm:^1.1.1"
conditions: cpu=wasm32
languageName: node
linkType: hard

"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.8"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard

"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.8"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard

"@rolldown/pluginutils@npm:1.0.0-rc.3":
version: 1.0.0-rc.3
resolution: "@rolldown/pluginutils@npm:1.0.0-rc.3"
checksum: 10c0/3928b6282a30f307d1b075d2f217180ae173ea9e00638ce46ab65f089bd5f7a0b2c488ae1ce530f509387793c656a2910337c4cd68fa9d37d7e439365989e699
languageName: node
linkType: hard

"@rolldown/pluginutils@npm:1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "@rolldown/pluginutils@npm:1.0.0-rc.8"
checksum: 10c0/a451e422ec1b5c867231e13c35f8ca9fda50f56340c76ef75e23c2ece0731ca2fe6393854ca874b0ba326421cced705c752cfb8592e8481397d3b23206b1e8ef
languageName: node
linkType: hard

"@rollup/rollup-android-arm-eabi@npm:4.59.0":
version: 4.59.0
resolution: "@rollup/rollup-android-arm-eabi@npm:4.59.0"
Expand Down Expand Up @@ -3916,6 +4076,15 @@ __metadata:
languageName: node
linkType: hard

"@tybys/wasm-util@npm:^0.10.1":
version: 0.10.1
resolution: "@tybys/wasm-util@npm:0.10.1"
dependencies:
tslib: "npm:^2.4.0"
checksum: 10c0/b255094f293794c6d2289300c5fbcafbb5532a3aed3a5ffd2f8dc1828e639b88d75f6a376dd8f94347a44813fd7a7149d8463477a9a49525c8b2dcaa38c2d1e8
languageName: node
linkType: hard

"@types/aria-query@npm:^5.0.1":
version: 5.0.4
resolution: "@types/aria-query@npm:5.0.4"
Expand Down Expand Up @@ -7103,7 +7272,7 @@ __metadata:
languageName: node
linkType: hard

"esbuild@npm:^0.27.0, esbuild@npm:^0.27.3, esbuild@npm:~0.27.0":
"esbuild@npm:^0.27.0, esbuild@npm:~0.27.0":
version: 0.27.3
resolution: "esbuild@npm:0.27.3"
dependencies:
Expand Down Expand Up @@ -9807,7 +9976,6 @@ __metadata:
babel-plugin-graphql-tag: "npm:^3.3.0"
concurrently: "npm:^9.2.1"
cross-env: "npm:^10.1.0"
esbuild: "npm:^0.27.3"
eslint: "npm:^9.39.4"
eslint-config-ndla: "npm:^6.0.14-alpha.0"
express: "npm:5.2.1"
Expand All @@ -9833,6 +10001,7 @@ __metadata:
react-hook-form: "npm:^7.53.2"
react-i18next: "npm:^16.5.3"
react-router: "npm:^7.12.0"
rolldown: "npm:^1.0.0-rc.8"
rxjs: "npm:^7.8.2"
serialize-javascript: "npm:^7.0.4"
sirv: "npm:^3.0.2"
Expand Down Expand Up @@ -11423,6 +11592,64 @@ __metadata:
languageName: node
linkType: hard

"rolldown@npm:^1.0.0-rc.8":
version: 1.0.0-rc.8
resolution: "rolldown@npm:1.0.0-rc.8"
dependencies:
"@oxc-project/types": "npm:=0.115.0"
"@rolldown/binding-android-arm64": "npm:1.0.0-rc.8"
"@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.8"
"@rolldown/binding-darwin-x64": "npm:1.0.0-rc.8"
"@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.8"
"@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.8"
"@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.8"
"@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.8"
"@rolldown/binding-linux-ppc64-gnu": "npm:1.0.0-rc.8"
"@rolldown/binding-linux-s390x-gnu": "npm:1.0.0-rc.8"
"@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.8"
"@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.8"
"@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.8"
"@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.8"
"@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.8"
"@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.8"
"@rolldown/pluginutils": "npm:1.0.0-rc.8"
dependenciesMeta:
"@rolldown/binding-android-arm64":
optional: true
"@rolldown/binding-darwin-arm64":
optional: true
"@rolldown/binding-darwin-x64":
optional: true
"@rolldown/binding-freebsd-x64":
optional: true
"@rolldown/binding-linux-arm-gnueabihf":
optional: true
"@rolldown/binding-linux-arm64-gnu":
optional: true
"@rolldown/binding-linux-arm64-musl":
optional: true
"@rolldown/binding-linux-ppc64-gnu":
optional: true
"@rolldown/binding-linux-s390x-gnu":
optional: true
"@rolldown/binding-linux-x64-gnu":
optional: true
"@rolldown/binding-linux-x64-musl":
optional: true
"@rolldown/binding-openharmony-arm64":
optional: true
"@rolldown/binding-wasm32-wasi":
optional: true
"@rolldown/binding-win32-arm64-msvc":
optional: true
"@rolldown/binding-win32-x64-msvc":
optional: true
bin:
rolldown: bin/cli.mjs
checksum: 10c0/791354cc0248e4cd9c303b311041995a99631f6136bc3f63b080d840caff2519fbdad0ed3594f4667d50101859a887cddd265a5b3795193714e8ec8f3005f261
languageName: node
linkType: hard

"rollup@npm:^4.43.0":
version: 4.59.0
resolution: "rollup@npm:4.59.0"
Expand Down