Files
cal.diy/agents/rules/quality-imports.md
Benny JooandDevin AI ab21c7f805 refactor: Cal.diy (#28903)
* feat: Cal.diy — community-driven MIT-licensed fork of Cal.com

This squashed commit contains all Cal.diy changes applied on top of calcom/cal.com main:

- Rebrand Cal.com to Cal.diy across the entire codebase
- Remove Enterprise Edition (EE) features, license checks, and AGPL restrictions
- Switch license from AGPL-3.0 to MIT
- Remove docs/ directory (migrated to Nextra at cal.diy)
- Remove dead code: org tests, EE tips, platform nav, premium username, SAML/SSO, etc.
- Clean up .env.example for self-hosted Cal.diy
- Update Docker image references to calcom/cal.diy
- Update README, CONTRIBUTING.md, and issue templates for Cal.diy community fork
- Add PR welcome bot for Cal.diy contributors
- Fix API v2 breaking changes oasdiff ignore entries
- Replace Blacksmith CI runners with default GitHub Actions

3893 files changed, 20789 insertions(+), 411020 deletions(-)

Co-Authored-By: benny@cal.com <sldisek783@gmail.com>

* refactor: remove org-specific /organizations/:orgId endpoints from API v2 atoms controllers (#1701)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix: revert Cal.diy Inc to Cal.com, Inc. in license files, copyright notices, and package metadata (#1702)

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* rip out org related comments in api v2

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-04-15 09:52:36 -03:00

1.7 KiB

title, impact, impactDescription, tags
title impact impactDescription tags
Import and Export Patterns MEDIUM Incorrect imports cause build failures and bundle bloat imports, exports, modules, app-store

Import and Export Patterns

Named vs Default Exports

When working with imports in the Cal.diy codebase, particularly in app-store integrations, pay attention to whether modules use named exports or default exports.

Many services like VideoApiAdapter, CalendarService, and PaymentService are exported as named exports, but the actual export name may differ from the generic service type.

// ✅ Good - Verify actual export name and use named import
import { AppleCalendarService } from "./applecalendar/lib/CalendarService";

// With renaming if needed
import { AppleCalendarService as ApplecalendarCalendarService } from "./applecalendar/lib/CalendarService";

// ❌ Bad - Assuming default export without checking
import CalendarService from "./applecalendar/lib/CalendarService";

Generated Files

When fixing imports in Cal.diy's generated files (like packages/app-store/apps.browser-*.generated.tsx), always check the actual exports in the source files first.

For EventTypeAppCardInterface components, they likely use named exports rather than default exports, requiring:

import * as ComponentName from "./path";
// instead of
import ComponentName from "./path";

Factory Function Naming

When creating factory functions that replace class exports, use the naming convention Build[ServiceName] instead of just [ServiceName]:

// ✅ Good - Clear factory function naming
export function BuildPaymentService() { ... }

// ❌ Bad - Confusing with class export
export function PaymentService() { ... }