Frontend Enhancements: - Complete React TypeScript frontend with modern UI components - Distributed workflows management interface with real-time updates - Socket.IO integration for live agent status monitoring - Agent management dashboard with cluster visualization - Project management interface with metrics and task tracking - Responsive design with proper error handling and loading states Backend Infrastructure: - Distributed coordinator for multi-agent workflow orchestration - Cluster management API with comprehensive agent operations - Enhanced database models for agents and projects - Project service for filesystem-based project discovery - Performance monitoring and metrics collection - Comprehensive API documentation and error handling Documentation: - Complete distributed development guide (README_DISTRIBUTED.md) - Comprehensive development report with architecture insights - System configuration templates and deployment guides The platform now provides a complete web interface for managing the distributed AI cluster with real-time monitoring, workflow orchestration, and agent coordination capabilities. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
25 lines
1.0 KiB
Markdown
25 lines
1.0 KiB
Markdown
# Legacy environment support for `RegExp` comparators
|
|
|
|
Starting in `4.x.x`, `RegExp.prototype.flags` is expected to be available in the environment. All modern browsers support this feature, however there may be situations where a legacy environmental support is required (example: IE11). If you need to support such an environment and polyfilling is not an option, creating a custom comparator that uses a more verbose comparison of all possible flags is a simple solution.
|
|
|
|
```ts
|
|
import { createCustomEqual, sameValueZeroEqual } from 'deep-Equals';
|
|
|
|
const areRegExpsEqual = (a: RegExp, b: RegExp) =>
|
|
a.source === b.source &&
|
|
a.global === b.global &&
|
|
a.ignoreCase === b.ignoreCase &&
|
|
a.multiline === b.multiline &&
|
|
a.unicode === b.unicode &&
|
|
a.sticky === b.sticky &&
|
|
a.lastIndex === b.lastIndex;
|
|
|
|
const deepEqual = createCustomEqual({
|
|
createCustomConfig: () => ({ areRegExpsEqual }),
|
|
});
|
|
const shallowEqual = createCustomEqual({
|
|
comparator: sameValueZero,
|
|
createCustomConfig: () => ({ areRegExpsEqual }),
|
|
});
|
|
```
|