What does this PR do?
- Fixes #23104
- Fixes CAL-6255
PR Body / Description
Context
Historically, parts of the codebase relied on the dynamic appStore
barrel imports (lazy-loaded via async functions). This created unnecessary indirection, made typing harder, and added overhead.
Changes
This PR updates those references to use the new generated service maps directly, aligning with other parts of the repo that already follow this pattern:
-
Video conferencing
- Replaced
appStore
in videoClient.ts
with VIDEO_ADAPTERS
.
- Directly resolve adapters from the generated map instead of awaiting async imports.
-
Calendar services
- Replaced
appStore
in getCalendar.ts
with CALENDAR_SERVICES
.
- Switched
await calendarAppImportFn()
to direct module access.
-
Payment providers
- Replaced
appStore
in handlePayment.ts
with PAYMENT_APPS
.
- Updated key validation (
isKeyOf
) to target PAYMENT_APPS
.
- Resolved providers directly without async indirection.
-
CRM services
- No changes required in
getCrm.ts
, it already uses the generated CrmServiceMap
.
Benefits
- Consistency across all app-store entry points.
- Eliminates unnecessary async indirection (
await appStore[...]?.()
).
- Simplifies typing and reduces runtime overhead.
- Aligns with the approach established in PRs #22450 and #19771.
Visual Demo
Video Demo:
https://youtu.be/SQrH-S5bivM
Mandatory Tasks (DO NOT REMOVE)
- I have self-reviewed the code (A decent size PR without self-review might be rejected).
- I have updated the developer docs in /docs if this PR makes changes that would require a documentation change.
How should this be tested?
- Are there environment variables that should be set?
- What are the minimal test data to have?
- What is expected (happy path) to have (input and output)?
- Any other important info that could help to test that PR
Algora.io
/claim #23104