Skip to content

Commit e191d9c

Browse files
committed
fix: enable rspack for meteor, to fix sofie launching with esm packages
1 parent e967cb7 commit e191d9c

15 files changed

Lines changed: 2879 additions & 252 deletions

File tree

meteor/.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,9 @@ client/ui/Shelf/Keyboard
1919
!.yarn/sdks
2020
!.yarn/versions
2121

22+
23+
# Meteor Modern-Tools build context directories
24+
_build
25+
*/build-assets
26+
*/build-chunks
27+
.rsdoctor

meteor/.meteor/packages

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,4 @@ typescript@5.10.0 # Enable TypeScript syntax in .ts and .tsx modules
2020
tracker@1.3.4 # Meteor's client-side reactive programming library
2121

2222
zodern:types
23+
rspack

meteor/.meteor/versions

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ react-fast-refresh@0.3.0
4141
reload@1.3.2
4242
retry@1.1.1
4343
routepolicy@1.1.2
44+
rspack@1.1.0
4445
socket-stream-client@0.6.1
46+
tools-core@1.1.0
4547
tracker@1.3.4
4648
typescript@5.10.0
4749
webapp@2.1.2

meteor/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ WORKDIR /opt/core/packages
88
RUN rm -R *-gateway documentation openapi
99
RUN corepack enable
1010
RUN yarn install && yarn build
11+
RUN cd webui && yarn build
1112

1213
# Install production dependencies for the worker
1314
# HACK:

meteor/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"@sofie-automation/job-worker": "portal:../packages/job-worker",
4646
"@sofie-automation/meteor-lib": "portal:../packages/meteor-lib",
4747
"@sofie-automation/shared-lib": "portal:../packages/shared-lib",
48+
"@swc/helpers": "0.5.17",
4849
"bcrypt": "^6.0.0",
4950
"deep-extend": "0.6.0",
5051
"deepmerge": "^4.3.1",
@@ -64,14 +65,17 @@
6465
"semver": "^7.7.4",
6566
"superfly-timeline": "9.2.0",
6667
"threadedclass": "^1.4.0",
67-
"timecode": "0.0.4",
6868
"type-fest": "^4.41.0",
6969
"underscore": "^1.13.8",
7070
"winston": "^3.19.0"
7171
},
7272
"devDependencies": {
7373
"@babel/core": "^7.29.0",
7474
"@babel/plugin-transform-modules-commonjs": "^7.28.6",
75+
"@meteorjs/rspack": "2.0.1",
76+
"@rsdoctor/rspack-plugin": "1.5.7",
77+
"@rspack/cli": "1.7.1",
78+
"@rspack/core": "1.7.1",
7579
"@shopify/jest-koa-mocks": "^5.3.1",
7680
"@sofie-automation/code-standard-preset": "^3.2.2",
7781
"@types/deep-extend": "^0.6.2",

meteor/rspack.config.cjs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
const { defineConfig } = require('@meteorjs/rspack')
2+
3+
module.exports = defineConfig((Meteor) => ({
4+
// Exclude native modules from the bundle (use Meteor runtime)
5+
...(Meteor.isServer ? Meteor.compileWithMeteor(['threadedclass']) : {}),
6+
}))

meteor/server/coreSystem/index.ts

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import { checkDatabaseVersions } from './checkDatabaseVersions'
1818
import PLazy from 'p-lazy'
1919
import { getCoreSystemAsync } from './collection'
2020
import { wrapDefaultObject } from '@sofie-automation/corelib/dist/settings/objectWithOverrides'
21+
const mosPkgJson = require('@mos-connection/helper/package.json')
22+
const superTimelinePkgJson = require('superfly-timeline/package.json')
2123

2224
export { PackageInfo }
2325

@@ -125,30 +127,10 @@ function onCoreSystemChanged() {
125127
export const RelevantSystemVersions = PLazy.from(async () => {
126128
const versions: { [name: string]: string } = {}
127129

128-
const dependencies: any = PackageInfo.dependencies
129-
if (dependencies) {
130-
const libNames: string[] = ['@mos-connection/helper', 'superfly-timeline']
131-
132-
const getRealVersion = async (name: string, fallback: string): Promise<string> => {
133-
try {
134-
const pkgInfo = require(name + '/package.json')
135-
return pkgInfo.version
136-
} catch (e) {
137-
logger.warn(`Failed to read version of package "${name}": ${stringifyError(e)}`)
138-
return parseVersion(fallback)
139-
}
140-
}
141-
142-
await Promise.all([
143-
...libNames.map(async (name) => {
144-
versions[name] = await getRealVersion(name, dependencies[name])
145-
}),
146-
])
147-
versions['core'] = PackageInfo.versionExtended || PackageInfo.version // package version
148-
versions['timeline-state-resolver-types'] = TMP_TSR_VERSION
149-
} else {
150-
logger.error(`Core package dependencies missing`)
151-
}
130+
versions['@mos-connection/helper'] = mosPkgJson.version
131+
versions['superfly-timeline'] = superTimelinePkgJson.version
132+
versions['core'] = PackageInfo.versionExtended || PackageInfo.version // package version
133+
versions['timeline-state-resolver-types'] = TMP_TSR_VERSION
152134

153135
return versions
154136
})

0 commit comments

Comments
 (0)