feat(core): Add keycdn provider support - #49
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (26)
💤 Files with no reviewable changes (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe PR adds the KeyCDN image provider, registers it as built in, and adds tests and demo documentation. It also derives displayed provider counts from the registry and replaces fixed count wording across repository and package documentation. ChangesKeyCDN provider implementation
Demo provider catalog
Documentation updates
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant ImageRequest
participant keycdnProvider
participant getImage
participant KeyCDNURL
ImageRequest->>keycdnProvider: configure provider options
keycdnProvider->>getImage: create configured image handler
getImage->>getImage: map modifiers and validate format
getImage->>KeyCDNURL: build transformed URL
KeyCDNURL-->>ImageRequest: return image URL
Merge Risk: ⚪ Minimal · up to The KeyCDN adapter intentionally requires callers to sign the final transformed URL, so the implementation is mergeable after normal checks. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 6 files. (19 skipped: 19 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. A rabbit counts providers in a row Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Code Review ✅ ApprovedAdds KeyCDN provider support with image transformation capabilities (resizing, fit, position, background, quality) and multiple output formats (JPEG, PNG, WebP). Updates provider documentation, metadata maintenance, and test coverage. No issues found. OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Important Your trial ends in 7 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more. Was this helpful? React with 👍 / 👎 | Gitar |
There was a problem hiding this comment.
🟡 Changes recommended
The new providerCount usage imports a heavier $lib/providers module in multiple landing-page components, which can unnecessarily bloat/execute provider-directory code in client bundles.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Adds first-class KeyCDN Image Processing support to the core provider registry, alongside documentation/test coverage updates and website copy changes that avoid hard-coded provider totals.
Changes:
- Added a built-in
keycdnprovider to@desource/image(registry + provider export) with modifier mapping and unsupported-format rejection. - Added unit tests for KeyCDN provider behavior (query preservation/replacement, background mapping, and format validation).
- Updated READMEs/site copy to use durable “dozens/built-in” wording and derived provider counts (plus removed
fetchpriority="low"from provider gallery thumbnails).
File summaries
| File | Description |
|---|---|
| README.md | Updates marketing copy to remove hard-coded provider totals; adds keycdn to supported provider list. |
| packages/svelte/README.md | Replaces fixed provider total with durable wording. |
| packages/svelte/package.json | Updates package description to remove hard-coded provider count. |
| packages/svelte/CHANGELOG.md | Updates changelog wording to remove hard-coded provider count. |
| packages/react/README.md | Replaces fixed provider total with durable wording. |
| packages/react/package.json | Updates package description to remove hard-coded provider count. |
| packages/react/CHANGELOG.md | Updates changelog wording to remove hard-coded provider count. |
| packages/core/test/unit/providers/keycdn.test.ts | Adds KeyCDN provider unit tests covering URL building, query preservation, and format rejection. |
| packages/core/src/providers/registry.ts | Registers keycdn as a built-in provider and includes it in createBuiltInProviders(). |
| packages/core/src/providers/keycdn.ts | Implements KeyCDN provider query construction and modifier mapping. |
| packages/core/src/providers/index.ts | Exports keycdnProvider and KeyCDNProviderOptions. |
| packages/core/README.md | Updates provider list and wording to remove hard-coded provider totals; includes keycdn. |
| packages/core/package.json | Updates core package description to remove hard-coded provider count. |
| packages/core/CHANGELOG.md | Updates changelog wording to remove hard-coded provider count. |
| packages/angular/README.md | Replaces fixed provider total with durable wording. |
| packages/angular/package.json | Updates package description to remove hard-coded provider count. |
| packages/angular/CHANGELOG.md | Updates changelog wording to remove hard-coded provider count. |
| demo/src/routes/+page.svelte | Uses derived provider count in social meta description. |
| demo/src/lib/SiteFooter.svelte | Uses derived provider count in footer copy. |
| demo/src/lib/server/provider-docs.ts | Adds KeyCDN provider documentation entry (options/modifiers/notes). |
| demo/src/lib/providers.ts | Adds keycdn display name and exports providerCount derived from the built-in registry. |
| demo/src/lib/home/ProvidersSection.svelte | Uses derived provider count in headings/summary text. |
| demo/src/lib/home/HeroSection.svelte | Displays derived provider count in hero stats. |
| demo/src/lib/home/CtaSection.svelte | Displays derived provider count in CTA footer text. |
| demo/src/lib/home/BenefitsSection.svelte | Displays derived provider count in benefits copy. |
| demo/src/lib/Gallery.svelte | Removes explicit fetchpriority="low" from gallery images. |
Review details
- Files reviewed: 26/27 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| <script lang="ts"> | ||
| import { DsPicture } from '@desource/image-svelte'; | ||
| import RayField from '$lib/RayField.svelte'; | ||
| import { providerCount } from '$lib/providers'; |
| icon: `/providers/${toProviderSlug(sharedIconProviders[id] ?? id)}.png` | ||
| })); | ||
|
|
||
| export const providerCount = BUILT_IN_PROVIDER_NAMES.length; |



Description
Type of Change
Testing
pnpm check:releaseScreenshots (if applicable)
Checklist
Manual Coverage (Optional)
Maintainers only (
write/maintain/adminaccess): open the workflow, clickRun workflow, and setpr_numberto this PR number to post/update a coverage comment on this PRSummary by CodeRabbit
New Features
Documentation
Bug Fixes