Package Exports
- modulant-js
- modulant-js/src/modulant.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (modulant-js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Modulant JS
Overview
Modulant is a stealth web extension framework designed to intercept and route web requests dynamically, enabling you to enhance third-party websites without modifying their source code.
Distributed Client-Side Proxy Tool
Modulant.js is a powerful JavaScript library that provides a distributed proxy mechanism for intercepting and routing web navigation and AJAX requests through a hidden iframe, allowing you to enhance vendor platforms without breaking their core experience.
Features
- 🔗 Link Interception: Capture and proxy all
<a>tag navigations - 🌐 AJAX Request Routing: Intercept and route fetch/AJAX requests
- 🛡️ Secure Communication: Uses
postMessagefor inter-frame communication - 🔀 Dynamic Routing: Configure primary and secondary server routing
- 📦 Lightweight and Easy to Use
Project Structure
modulant/
│
├── src/
│ └── modulant.js # Core Modulant library
│
├── config/
│ ├── global-setup.js # Test setup configuration
│ ├── global-teardown.js # Test cleanup configuration
│ └── playwright.config.js # Playwright test configuration
│
└── tests/
├── mocks/ # Mock servers and test pages
│ ├── test-server.js # Test server implementation
│ └── test-page.html # Test page for integration tests
└── playwright/ # Integration tests
├── modulant.playwright.spec.js
└── performance.playwright.spec.jsInstallation
# Clone the repository
git clone https://github.com/54rkaz71k/ModulantJS.git
# Install dependencies
npm installUsage
Basic Initialization
const modulant = Modulant.init({
primaryServerURL: 'https://primary-server.com',
secondaryServerURL: 'https://secondary-server.com',
routes: [
{ pattern: '/api', target: 'secondary' }
],
defaultHeaders: {
'X-Modulant-Proxy': 'true'
}
});For detailed API documentation and advanced usage, please refer to API.md.
For a quick overview of common use cases and examples, check out TLDR.md.
For detailed technical architecture, see architecture.md.
Testing
The project uses Playwright for comprehensive integration testing:
Available Test Scripts
# Run all tests
npm test
# Run tests with debug mode
npm run test:debug
# Run tests with console output
npm run test:console
# Start development server
npm run dev
# Run linting
npm run lintDebug Logging
Enable detailed logging during testing:
# Run tests with console output
npm run test:console
# Run tests in debug mode
npm run test:debugContributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
License
Fuck your Licence (Im Rick James, bitch...)
Contact
GitHub: @54rkaz71k
Project Link: https://github.com/54rkaz71k/ModulantJS