mirror of
https://github.com/element-hq/element-call.git
synced 2026-09-11 07:05:35 +00:00
Adds component/index.tsx as a fourth build target: <ElementCall client roomId /> and an initializeElementCall to await once beforehand. It gives Element Call everything it would otherwise take from the page it is on — the parameters, the host bridge, media devices, translations, a container to confine itself to — and hands it the host's client rather than finding one of its own. React, the Matrix SDK and LiveKit stay external, since the host has them and a second copy of any would not merely be wasteful: React would hold two sets of hooks and the client would run two sync loops. Every subpath has to be listed by name, because the pattern and callback forms of rollupOptions.external are silently ignored here — a lesson worth the comment that records it. Element Call's own navigation runs in a MemoryRouter, so being embedded cannot disturb the host's URL. ClientContext and GroupCallView both navigate, so some router has to be present. The bundle is not yet a reasonable size: library mode base64-inlines assets referenced through import.meta.url, so MediaPipe's vision runtime lands in it whole. Left for its own change, since the fix — loading the background blur transformer lazily — is worth doing for the standalone app too.
62 lines
2.0 KiB
JSON
62 lines
2.0 KiB
JSON
{
|
|
"compilerOptions": {
|
|
"target": "es2022",
|
|
"module": "es2022",
|
|
"jsx": "react-jsx",
|
|
"lib": ["es2024", "dom", "dom.iterable"],
|
|
"skipLibCheck": true,
|
|
|
|
// From Matrix-JS-SDK
|
|
"strict": true,
|
|
"noEmit": true,
|
|
"noEmitOnError": true,
|
|
"experimentalDecorators": false,
|
|
"esModuleInterop": true,
|
|
"noUnusedLocals": true,
|
|
"moduleResolution": "bundler",
|
|
"declaration": true,
|
|
"resolveJsonModule": true,
|
|
// Workaround for https://github.com/microsoft/TypeScript/issues/55132
|
|
"useDefineForClassFields": false,
|
|
"allowImportingTsExtensions": true,
|
|
"paths": {
|
|
// These imports within @livekit/components-core and
|
|
// @livekit/components-react are broken under the "bundler" module
|
|
// resolution mode, so we need to resolve them manually
|
|
"livekit-client/dist/src/room/types": [
|
|
"./node_modules/livekit-client/dist/src/room/types.d.ts"
|
|
],
|
|
"livekit-client/dist/src/room/Room": [
|
|
"./node_modules/livekit-client/dist/src/room/Room.d.ts"
|
|
],
|
|
"livekit-client/dist/src/room/track/TrackPublication": [
|
|
"./node_modules/livekit-client/dist/src/room/track/TrackPublication.d.ts"
|
|
],
|
|
"livekit-client/dist/src/room/participant/Participant": [
|
|
"./node_modules/livekit-client/dist/src/room/participant/Participant.d.ts"
|
|
],
|
|
"livekit-client/dist/src/proto/livekit_models_pb": [
|
|
"./node_modules/@livekit/protocol/src/gen/livekit_models_pb.d.ts"
|
|
]
|
|
}
|
|
|
|
// TODO: Enable the following options later.
|
|
// "forceConsistentCasingInFileNames": true,
|
|
// "noFallthroughCasesInSwitch": true,
|
|
// "noImplicitOverride": true,
|
|
// "noImplicitReturns": true,
|
|
// "noPropertyAccessFromIndexSignature": true,
|
|
// "noUncheckedIndexedAccess": true,
|
|
// "noUnusedParameters": true,
|
|
},
|
|
"include": [
|
|
"./src/**/*.ts",
|
|
"./src/**/*.tsx",
|
|
"./playwright/**/*.ts",
|
|
"./sdk/**/*.ts",
|
|
"./component/**/*.ts",
|
|
"./component/**/*.tsx"
|
|
],
|
|
"exclude": ["**.test.ts"]
|
|
}
|