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.
Installation
# NPM
npm install modulant-js
# Or clone the repository
git clone https://github.com/54rkaz71k/ModulantJS.gitDistributed 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.jsUsage
Basic Initialization
// Using npm package
import Modulant from 'modulant-js';
// Or using direct include
// const { Modulant } = require('modulant-js');
const modulant = await Modulant.init({
primaryServerURL: 'https://primary-server.com',
secondaryServerURL: 'https://secondary-server.com',
routes: [
{
match: {
hostname: 'primary-server.com',
path: '/api/*'
},
proxy: { 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.
Development
Available 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 debug logging in Node.js:
process.env.DEBUG_MODULANT = 'true';Enable debug logging in browser:
localStorage.setItem('DEBUG_MODULANT', 'true');Contributing
- 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