diff --git a/lib/converter.js b/lib/converter.js index ad3651e3..a74ccf82 100644 --- a/lib/converter.js +++ b/lib/converter.js @@ -127,7 +127,11 @@ function addAssociationToDot(sourceUmlClass, targetUmlClass, association, classO (sourceUmlClass.stereotype === umlClass_1.ClassStereotype.Library || targetUmlClass.stereotype === umlClass_1.ClassStereotype.Library)) || (classOptions.hideInterfaces && - targetUmlClass.stereotype === umlClass_1.ClassStereotype.Interface)) { + targetUmlClass.stereotype === umlClass_1.ClassStereotype.Interface) || + (classOptions.hideStructs && + targetUmlClass.stereotype === umlClass_1.ClassStereotype.Struct) || + (classOptions.hideEnums && + targetUmlClass.stereotype === umlClass_1.ClassStereotype.Enum)) { return ''; } let dotString = `\n${sourceUmlClass.id} -> ${targetUmlClass.id} [`; diff --git a/lib/dotGenerator.js b/lib/dotGenerator.js index 2ad29c08..61dde2ed 100644 --- a/lib/dotGenerator.js +++ b/lib/dotGenerator.js @@ -4,11 +4,14 @@ exports.dotUmlClass = void 0; // Returns a string of the UML Class in Graphviz's dot format const umlClass_1 = require("./umlClass"); const dotUmlClass = (umlClass, options = {}) => { - // do not include library or interface classes if hidden + // do not include library, interface, struct or enum classes if hidden if ((options.hideLibraries && umlClass.stereotype === umlClass_1.ClassStereotype.Library) || (options.hideInterfaces && - umlClass.stereotype === umlClass_1.ClassStereotype.Interface)) { + umlClass.stereotype === umlClass_1.ClassStereotype.Interface) || + (options.hideStructs && + umlClass.stereotype === umlClass_1.ClassStereotype.Struct) || + (options.hideEnums && umlClass.stereotype === umlClass_1.ClassStereotype.Enum)) { return ''; } let dotString = `\n${umlClass.id} [label="{${dotClassTitle(umlClass)}`; diff --git a/package-lock.json b/package-lock.json index d78e274e..1b2e8ff3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "sol2uml", - "version": "1.1.29", + "version": "1.1.30", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 020000f8..373fc74d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sol2uml", - "version": "1.1.29", + "version": "1.1.30", "description": "Unified Modeling Language (UML) class diagram generator for Solidity contracts", "main": "./lib/index.js", "types": "./lib/index.d.ts", diff --git a/src/ts/converter.ts b/src/ts/converter.ts index 5bc0e2a2..7ae13075 100644 --- a/src/ts/converter.ts +++ b/src/ts/converter.ts @@ -187,7 +187,11 @@ function addAssociationToDot( (sourceUmlClass.stereotype === ClassStereotype.Library || targetUmlClass.stereotype === ClassStereotype.Library)) || (classOptions.hideInterfaces && - targetUmlClass.stereotype === ClassStereotype.Interface) + targetUmlClass.stereotype === ClassStereotype.Interface) || + (classOptions.hideStructs && + targetUmlClass.stereotype === ClassStereotype.Struct) || + (classOptions.hideEnums && + targetUmlClass.stereotype === ClassStereotype.Enum) ) { return '' } diff --git a/src/ts/dotGenerator.ts b/src/ts/dotGenerator.ts index 145804d8..5f36cc8c 100644 --- a/src/ts/dotGenerator.ts +++ b/src/ts/dotGenerator.ts @@ -23,12 +23,15 @@ export const dotUmlClass = ( umlClass: UmlClass, options: ClassOptions = {} ): string => { - // do not include library or interface classes if hidden + // do not include library, interface, struct or enum classes if hidden if ( (options.hideLibraries && umlClass.stereotype === ClassStereotype.Library) || (options.hideInterfaces && - umlClass.stereotype === ClassStereotype.Interface) + umlClass.stereotype === ClassStereotype.Interface) || + (options.hideStructs && + umlClass.stereotype === ClassStereotype.Struct) || + (options.hideEnums && umlClass.stereotype === ClassStereotype.Enum) ) { return '' }