Skip to content

feat: Ferrum Plugin SDK — 7-phase plugin pipeline - #8

Merged
Roy-Wanyoike merged 1 commit into
mainfrom
feat/ferrum-plugin-sdk
Sep 1, 2026
Merged

feat: Ferrum Plugin SDK — 7-phase plugin pipeline#8
Roy-Wanyoike merged 1 commit into
mainfrom
feat/ferrum-plugin-sdk

Conversation

@Roy-Wanyoike

Copy link
Copy Markdown
Owner

Summary

Implements the Ferrum Plugin SDK from the roadmap (Alpha → functional). A zero-dependency plugin system for extending the Ferrum compiler.

Architecture

Phase Hook Description
1 validate Schema & type validation
2 register Token/component registration
3 transform CSS transformation (primary hook)
4 optimize Post-transform optimization
5 generate Final CSS generation
6 post-process Minification, autoprefixing
7 cleanup Resource cleanup

Components

  • FerrumPlugin abstract base class with default hooks
  • PluginRegistry — Map-backed registration, lookup, hook querying
  • PluginPipeline — Sequential phase execution with error/warning collection
  • validateManifest() — Checks name, semver, hooks

Built-in Plugins

  • @ferrum/prefix — Adds prefix to CSS class selectors
  • @ferrum/minify — Strips comments, collapses whitespace

Tests

  • 39 unit tests covering all components

Files Added

  • src/lib/ferrum-plugin-sdk/ — 9 source files
  • __tests__/ferrum-plugin-sdk.test.ts — 39 tests

Closes roadmap item: Ferrum Plugin SDK Alpha ✅

Implements the Ferrum Plugin SDK (Alpha → functional):

Architecture:
- 7-phase pipeline: validate → register → transform → optimize → generate → post-process → cleanup
- Abstract FerrumPlugin base class with default hook implementations
- PluginRegistry for registration, lookup, and hook-based querying
- PluginPipeline for sequential phase execution with error/warning collection
- Manifest validation (name, semver version, valid hooks)

Built-in Plugins:
- @ferrum/prefix: Adds configurable prefix to CSS class selectors
- @ferrum/minify: Strips comments and collapses whitespace

Key Design:
- Zero external dependencies
- Supports both sync and async plugin methods
- Configurable abort-on-error behavior
- 39 unit tests
@vercel

vercel Bot commented Aug 31, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ferrum-engine Error Error Aug 31, 2026 6:15pm

@Roy-Wanyoike
Roy-Wanyoike merged commit 6f16045 into main Sep 1, 2026
5 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant