Add comprehensive development roadmap via GitHub Issues
Created 10 detailed GitHub issues covering: - Project activation and management UI (#1-2) - Worker node coordination and visualization (#3-4) - Automated GitHub repository scanning (#5) - Intelligent model-to-issue matching (#6) - Multi-model task execution system (#7) - N8N workflow integration (#8) - Hive-Bzzz P2P bridge (#9) - Peer assistance protocol (#10) Each issue includes detailed specifications, acceptance criteria, technical implementation notes, and dependency mapping. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
92
frontend/node_modules/react-docgen/dist/utils/normalizeClassDefinition.js
generated
vendored
Normal file
92
frontend/node_modules/react-docgen/dist/utils/normalizeClassDefinition.js
generated
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
import { classProperty, inheritsComments } from '@babel/types';
|
||||
import getMemberExpressionRoot from '../utils/getMemberExpressionRoot.js';
|
||||
import getMembers from '../utils/getMembers.js';
|
||||
import { visitors } from '@babel/traverse';
|
||||
import { ignore } from './traverse.js';
|
||||
const explodedVisitors = visitors.explode({
|
||||
Function: { enter: ignore },
|
||||
Class: { enter: ignore },
|
||||
Loop: { enter: ignore },
|
||||
AssignmentExpression(path, state) {
|
||||
const left = path.get('left');
|
||||
if (left.isMemberExpression()) {
|
||||
const first = getMemberExpressionRoot(left);
|
||||
if (first.isIdentifier({ name: state.variableName })) {
|
||||
const [member] = getMembers(left);
|
||||
if (member &&
|
||||
!member.path.has('computed') &&
|
||||
!member.path.isPrivateName()) {
|
||||
const property = classProperty(member.path.node, path.node.right, null, null, false, true);
|
||||
inheritsComments(property, path.node);
|
||||
if (path.parentPath.isExpressionStatement()) {
|
||||
inheritsComments(property, path.parentPath.node);
|
||||
}
|
||||
state.classDefinition.get('body').unshiftContainer('body', property);
|
||||
path.skip();
|
||||
path.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
path.skip();
|
||||
}
|
||||
},
|
||||
});
|
||||
/**
|
||||
* Given a class definition (i.e. `class` declaration or expression), this
|
||||
* function "normalizes" the definition, by looking for assignments of static
|
||||
* properties and converting them to ClassProperties.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* class MyComponent extends React.Component {
|
||||
* // ...
|
||||
* }
|
||||
* MyComponent.propTypes = { ... };
|
||||
*
|
||||
* is converted to
|
||||
*
|
||||
* class MyComponent extends React.Component {
|
||||
* // ...
|
||||
* static propTypes = { ... };
|
||||
* }
|
||||
*/
|
||||
export default function normalizeClassDefinition(classDefinition) {
|
||||
let variableName;
|
||||
if (classDefinition.isClassDeclaration()) {
|
||||
// Class declarations may not have an id, e.g.: `export default class extends React.Component {}`
|
||||
if (classDefinition.node.id) {
|
||||
variableName = classDefinition.node.id.name;
|
||||
}
|
||||
}
|
||||
else if (classDefinition.isClassExpression()) {
|
||||
let parentPath = classDefinition.parentPath;
|
||||
while (parentPath &&
|
||||
parentPath.node !== classDefinition.scope.block &&
|
||||
!parentPath.isBlockStatement()) {
|
||||
if (parentPath.isVariableDeclarator()) {
|
||||
const idPath = parentPath.get('id');
|
||||
if (idPath.isIdentifier()) {
|
||||
variableName = idPath.node.name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (parentPath.isAssignmentExpression()) {
|
||||
const leftPath = parentPath.get('left');
|
||||
if (leftPath.isIdentifier()) {
|
||||
variableName = leftPath.node.name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
parentPath = parentPath.parentPath;
|
||||
}
|
||||
}
|
||||
if (!variableName) {
|
||||
return;
|
||||
}
|
||||
const state = {
|
||||
variableName,
|
||||
classDefinition,
|
||||
};
|
||||
classDefinition.parentPath.scope.path.traverse(explodedVisitors, state);
|
||||
}
|
||||
Reference in New Issue
Block a user