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>
37 lines
1.4 KiB
JavaScript
37 lines
1.4 KiB
JavaScript
import getNameOrValue from './getNameOrValue.js';
|
|
import resolveToValue from './resolveToValue.js';
|
|
export const COMPUTED_PREFIX = '@computed#';
|
|
/**
|
|
* In an ObjectExpression, the name of a property can either be an identifier
|
|
* or a literal (or dynamic, but we don't support those). This function simply
|
|
* returns the value of the literal or name of the identifier.
|
|
*/
|
|
export default function getPropertyName(propertyPath) {
|
|
if (propertyPath.isObjectTypeSpreadProperty()) {
|
|
const argument = propertyPath.get('argument');
|
|
if (argument.isGenericTypeAnnotation()) {
|
|
return getNameOrValue(argument.get('id'));
|
|
}
|
|
return null;
|
|
}
|
|
else if (propertyPath.has('computed')) {
|
|
const key = propertyPath.get('key');
|
|
// Try to resolve variables and member expressions
|
|
if (key.isIdentifier() || key.isMemberExpression()) {
|
|
const valuePath = resolveToValue(key);
|
|
if (valuePath.isStringLiteral() || valuePath.isNumericLiteral()) {
|
|
return `${valuePath.node.value}`;
|
|
}
|
|
}
|
|
// generate name for identifier
|
|
if (key.isIdentifier()) {
|
|
return `${COMPUTED_PREFIX}${key.node.name}`;
|
|
}
|
|
if (key.isStringLiteral() || key.isNumericLiteral()) {
|
|
return `${key.node.value}`;
|
|
}
|
|
return null;
|
|
}
|
|
return `${getNameOrValue(propertyPath.get('key'))}`;
|
|
}
|