dyatko/arkit

View on GitHub

Showing 24 of 24 total issues

Function getImports has 91 lines of code (exceeds 25 allowed). Consider refactoring.
Open

private getImports(sourceFile: SourceFile, statements: Statement[]): Imports {
return statements.reduce((imports, statement) => {
let sourceFileImports: string[] | undefined;
 
if (TypeGuards.isImportTypeNode(statement)) {
Severity: Major
Found in src/parser.ts - About 3 hrs to fix

    Function generateLayers has 59 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    protected generateLayers(
    output: OutputSchema,
    allComponents: Components
    ): Layers {
    const groups = array(output.groups) || [{}];
    Severity: Major
    Found in src/generator.ts - About 2 hrs to fix

      Function resolveConflictingComponentNames has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
      Open

      protected resolveConflictingComponentNames(
      components: Components
      ): Components {
      const componentsByName: { [name: string]: Component[] } = {};
       
       
      Severity: Minor
      Found in src/generator.ts - About 2 hrs to fix

      Function generateLayers has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
      Open

      protected generateLayers(
      output: OutputSchema,
      allComponents: Components
      ): Layers {
      const groups = array(output.groups) || [{}];
      Severity: Minor
      Found in src/generator.ts - About 2 hrs to fix

      Function getExports has 44 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      private getExports(sourceFile: SourceFile, statements: Statement[]): Exports {
      return statements.reduce((exports, statement) => {
      if (
      TypeGuards.isExportableNode(statement) &&
      statement.hasExportKeyword()
      Severity: Minor
      Found in src/parser.ts - About 1 hr to fix

        Function getPaths has 39 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        export const getPaths = (
        mainDirectory: string,
        directory: string,
        includePatterns: string[],
        excludePatterns: string[],
        Severity: Minor
        Found in src/utils.ts - About 1 hr to fix

          Function generatePlantUMLComponent has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
          Open

          private generatePlantUMLComponent(
          component: Component,
          context: Context
          ): string {
          const puml: string[] = [];
          Severity: Minor
          Found in src/puml.ts - About 1 hr to fix

          Function generateComponents has 34 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          protected generateComponents(output: OutputSchema): Components {
          const components = Object.keys(this.files).reduce(
          (components, filename) => {
          const filepath = filename.endsWith("**")
          ? path.dirname(filename)
          Severity: Minor
          Found in src/generator.ts - About 1 hr to fix

            Function convert has 32 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

            convert(pathOrType: string, puml: string): Promise<SavedString> {
            const fullExportPath = path.resolve(this.config.directory, pathOrType);
            const ext = path.extname(fullExportPath);
            const shouldConvertAndSave = Object.values<any>(OutputFormat).includes(
            ext.replace(".", "")
            Severity: Minor
            Found in src/converter.ts - About 1 hr to fix

              Function getOutputs has 32 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

              export const getOutputs = (config: Config): Promise<SavedString[]> => {
              const files = new Parser(config).parse();
              trace("Parsed files");
              trace(files);
               
               
              Severity: Minor
              Found in src/arkit.ts - About 1 hr to fix

                Function findComponentSchema has 28 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                protected findComponentSchema(
                output: OutputSchema,
                filename: string
                ): ComponentSchema | undefined {
                const componentSchemas = this.config.final.components as ComponentSchema[];
                Severity: Minor
                Found in src/generator.ts - About 1 hr to fix

                  Function generateComponents has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
                  Open

                  protected generateComponents(output: OutputSchema): Components {
                  const components = Object.keys(this.files).reduce(
                  (components, filename) => {
                  const filepath = filename.endsWith("**")
                  ? path.dirname(filename)
                  Severity: Minor
                  Found in src/generator.ts - About 1 hr to fix

                  Function request has 27 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                  export const request = (path, payload): Promise<Buffer> => {
                  return new Promise((resolve, reject) => {
                  const req = https
                  .request(
                  {
                  Severity: Minor
                  Found in src/utils.ts - About 1 hr to fix

                    Similar blocks of code found in 2 locations. Consider refactoring.
                    Open

                    } else if (!component.isClass) {
                    puml.push(`(${name})`);
                    } else if (context === Context.RELATIONSHIP) {
                    puml.push(safeName);
                    } else {
                    Severity: Major
                    Found in src/puml.ts and 1 other location - About 1 hr to fix
                    src/puml.ts on lines 66..72

                    Similar blocks of code found in 2 locations. Consider refactoring.
                    Open

                    if (hasLayer) {
                    puml.push(`[${name}]`);
                    } else if (context === Context.RELATIONSHIP) {
                    puml.push(safeName);
                    } else {
                    Severity: Major
                    Found in src/puml.ts and 1 other location - About 1 hr to fix
                    src/puml.ts on lines 73..79

                    Function convert has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
                    Open

                    convert(pathOrType: string, puml: string): Promise<SavedString> {
                    const fullExportPath = path.resolve(this.config.directory, pathOrType);
                    const ext = path.extname(fullExportPath);
                    const shouldConvertAndSave = Object.values<any>(OutputFormat).includes(
                    ext.replace(".", "")
                    Severity: Minor
                    Found in src/converter.ts - About 55 mins to fix

                    Avoid deeply nested control flow statements.
                    Open

                    if (importStructure.namespaceImport) {
                    sourceFileImports.push(importStructure.namespaceImport);
                    }
                    Severity: Major
                    Found in src/parser.ts - About 45 mins to fix

                      Avoid deeply nested control flow statements.
                      Open

                      if (importStructure.defaultImport) {
                      sourceFileImports.push(importStructure.defaultImport);
                      }
                      Severity: Major
                      Found in src/parser.ts - About 45 mins to fix

                        Avoid deeply nested control flow statements.
                        Open

                        if (!sourceFileImports.length && !importStructure.namedImports) {
                        warn("IMPORT", sourceFile.getBaseName(), structure);
                        }
                        Severity: Major
                        Found in src/parser.ts - About 45 mins to fix

                          Avoid deeply nested control flow statements.
                          Open

                          if (importStructure.namedImports instanceof Array) {
                          sourceFileImports.push(
                          ...importStructure.namedImports.map(namedImport =>
                          typeof namedImport === "string" ? namedImport : namedImport.name
                          )
                          Severity: Major
                          Found in src/parser.ts - About 45 mins to fix
                            Severity
                            Category
                            Status
                            Source
                            Language