Opetushallitus/eperusteet-frontend-utils

View on GitHub

Showing 183 of 183 total issues

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

  case 'vuosiluokkakokonaisuus':
    node.location = {
      name: 'vuosiluokkakokonaisuus',
      params: {
        vlkId: _.toString(rawNode.id),
Severity: Major
Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
vue/src/utils/NavigationBuilder.ts on lines 187..194
vue/src/utils/NavigationBuilder.ts on lines 195..202
vue/src/utils/NavigationBuilder.ts on lines 261..268
vue/src/utils/NavigationBuilder.ts on lines 298..305
vue/src/utils/NavigationBuilder.ts on lines 306..313
vue/src/utils/NavigationBuilder.ts on lines 314..321
vue/src/utils/NavigationBuilder.ts on lines 351..358
vue/src/utils/NavigationBuilder.ts on lines 359..366
vue/src/utils/NavigationBuilder.ts on lines 367..374
vue/src/utils/NavigationBuilder.ts on lines 375..382
vue/src/utils/NavigationBuilder.ts on lines 383..390
vue/src/utils/NavigationBuilder.ts on lines 391..398
vue/src/utils/NavigationBuilder.ts on lines 399..406
vue/src/utils/NavigationBuilder.ts on lines 407..414
vue/src/utils/NavigationBuilder.ts on lines 415..422
vue/src/utils/NavigationBuilder.ts on lines 423..430
vue/src/utils/NavigationBuilder.ts on lines 431..438
vue/src/utils/NavigationBuilder.ts on lines 439..446
vue/src/utils/NavigationBuilder.ts on lines 476..483
vue/src/utils/NavigationBuilder.ts on lines 484..491
vue/src/utils/NavigationBuilder.ts on lines 492..499
vue/src/utils/NavigationBuilder.ts on lines 500..507
vue/src/utils/NavigationBuilder.ts on lines 526..533
vue/src/utils/NavigationBuilder.ts on lines 567..574
vue/src/utils/NavigationBuilder.ts on lines 575..582
vue/src/utils/NavigationBuilder.ts on lines 583..590
vue/src/utils/NavigationBuilder.ts on lines 591..598
vue/src/utils/NavigationBuilder.ts on lines 599..606
vue/src/utils/NavigationBuilder.ts on lines 607..614
vue/src/utils/NavigationBuilder.ts on lines 639..646
vue/src/utils/NavigationBuilder.ts on lines 656..663
vue/src/utils/NavigationBuilder.ts on lines 664..671
vue/src/utils/NavigationBuilder.ts on lines 672..679
vue/src/utils/NavigationBuilder.ts on lines 680..687
vue/src/utils/NavigationBuilder.ts on lines 688..695
vue/src/utils/NavigationBuilder.ts on lines 696..703

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 45.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

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

  case 'opintokokonaisuus':
    node.location = {
      name: 'perusteOpintokokonaisuus',
      params: {
        opintokokonaisuusId: _.toString(rawNode.id),
Severity: Major
Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
vue/src/utils/NavigationBuilder.ts on lines 187..194
vue/src/utils/NavigationBuilder.ts on lines 195..202
vue/src/utils/NavigationBuilder.ts on lines 261..268
vue/src/utils/NavigationBuilder.ts on lines 275..282
vue/src/utils/NavigationBuilder.ts on lines 298..305
vue/src/utils/NavigationBuilder.ts on lines 306..313
vue/src/utils/NavigationBuilder.ts on lines 314..321
vue/src/utils/NavigationBuilder.ts on lines 359..366
vue/src/utils/NavigationBuilder.ts on lines 367..374
vue/src/utils/NavigationBuilder.ts on lines 375..382
vue/src/utils/NavigationBuilder.ts on lines 383..390
vue/src/utils/NavigationBuilder.ts on lines 391..398
vue/src/utils/NavigationBuilder.ts on lines 399..406
vue/src/utils/NavigationBuilder.ts on lines 407..414
vue/src/utils/NavigationBuilder.ts on lines 415..422
vue/src/utils/NavigationBuilder.ts on lines 423..430
vue/src/utils/NavigationBuilder.ts on lines 431..438
vue/src/utils/NavigationBuilder.ts on lines 439..446
vue/src/utils/NavigationBuilder.ts on lines 476..483
vue/src/utils/NavigationBuilder.ts on lines 484..491
vue/src/utils/NavigationBuilder.ts on lines 492..499
vue/src/utils/NavigationBuilder.ts on lines 500..507
vue/src/utils/NavigationBuilder.ts on lines 526..533
vue/src/utils/NavigationBuilder.ts on lines 567..574
vue/src/utils/NavigationBuilder.ts on lines 575..582
vue/src/utils/NavigationBuilder.ts on lines 583..590
vue/src/utils/NavigationBuilder.ts on lines 591..598
vue/src/utils/NavigationBuilder.ts on lines 599..606
vue/src/utils/NavigationBuilder.ts on lines 607..614
vue/src/utils/NavigationBuilder.ts on lines 639..646
vue/src/utils/NavigationBuilder.ts on lines 656..663
vue/src/utils/NavigationBuilder.ts on lines 664..671
vue/src/utils/NavigationBuilder.ts on lines 672..679
vue/src/utils/NavigationBuilder.ts on lines 680..687
vue/src/utils/NavigationBuilder.ts on lines 688..695
vue/src/utils/NavigationBuilder.ts on lines 696..703

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 45.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

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

  case 'osaamiskokonaisuus_paa_alue':
    node.location = {
      name: 'perusteOsaamiskokonaisuusPaaAlue',
      params: {
        osaamiskokonaisuusPaaAlueId: _.toString(rawNode.id),
Severity: Major
Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
vue/src/utils/NavigationBuilder.ts on lines 187..194
vue/src/utils/NavigationBuilder.ts on lines 195..202
vue/src/utils/NavigationBuilder.ts on lines 261..268
vue/src/utils/NavigationBuilder.ts on lines 275..282
vue/src/utils/NavigationBuilder.ts on lines 298..305
vue/src/utils/NavigationBuilder.ts on lines 306..313
vue/src/utils/NavigationBuilder.ts on lines 314..321
vue/src/utils/NavigationBuilder.ts on lines 351..358
vue/src/utils/NavigationBuilder.ts on lines 359..366
vue/src/utils/NavigationBuilder.ts on lines 367..374
vue/src/utils/NavigationBuilder.ts on lines 375..382
vue/src/utils/NavigationBuilder.ts on lines 383..390
vue/src/utils/NavigationBuilder.ts on lines 391..398
vue/src/utils/NavigationBuilder.ts on lines 399..406
vue/src/utils/NavigationBuilder.ts on lines 407..414
vue/src/utils/NavigationBuilder.ts on lines 415..422
vue/src/utils/NavigationBuilder.ts on lines 423..430
vue/src/utils/NavigationBuilder.ts on lines 431..438
vue/src/utils/NavigationBuilder.ts on lines 476..483
vue/src/utils/NavigationBuilder.ts on lines 484..491
vue/src/utils/NavigationBuilder.ts on lines 492..499
vue/src/utils/NavigationBuilder.ts on lines 500..507
vue/src/utils/NavigationBuilder.ts on lines 526..533
vue/src/utils/NavigationBuilder.ts on lines 567..574
vue/src/utils/NavigationBuilder.ts on lines 575..582
vue/src/utils/NavigationBuilder.ts on lines 583..590
vue/src/utils/NavigationBuilder.ts on lines 591..598
vue/src/utils/NavigationBuilder.ts on lines 599..606
vue/src/utils/NavigationBuilder.ts on lines 607..614
vue/src/utils/NavigationBuilder.ts on lines 639..646
vue/src/utils/NavigationBuilder.ts on lines 656..663
vue/src/utils/NavigationBuilder.ts on lines 664..671
vue/src/utils/NavigationBuilder.ts on lines 672..679
vue/src/utils/NavigationBuilder.ts on lines 680..687
vue/src/utils/NavigationBuilder.ts on lines 688..695
vue/src/utils/NavigationBuilder.ts on lines 696..703

Duplicated Code

Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

Tuning

This issue has a mass of 45.

We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

Refactorings

Further Reading

Avoid too many return statements within this function.
Open

  return [koulutustyyppi];
Severity: Major
Found in vue/src/utils/perusteet.ts - About 30 mins to fix

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

      case 'aipevaihe':
        node.location = {
          name: 'aipevaihe',
          params: {
            vaiheId: _.toString(rawNode.id),
    Severity: Major
    Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
    vue/src/utils/NavigationBuilder.ts on lines 187..194
    vue/src/utils/NavigationBuilder.ts on lines 195..202
    vue/src/utils/NavigationBuilder.ts on lines 261..268
    vue/src/utils/NavigationBuilder.ts on lines 275..282
    vue/src/utils/NavigationBuilder.ts on lines 306..313
    vue/src/utils/NavigationBuilder.ts on lines 314..321
    vue/src/utils/NavigationBuilder.ts on lines 351..358
    vue/src/utils/NavigationBuilder.ts on lines 359..366
    vue/src/utils/NavigationBuilder.ts on lines 367..374
    vue/src/utils/NavigationBuilder.ts on lines 375..382
    vue/src/utils/NavigationBuilder.ts on lines 383..390
    vue/src/utils/NavigationBuilder.ts on lines 391..398
    vue/src/utils/NavigationBuilder.ts on lines 399..406
    vue/src/utils/NavigationBuilder.ts on lines 407..414
    vue/src/utils/NavigationBuilder.ts on lines 415..422
    vue/src/utils/NavigationBuilder.ts on lines 423..430
    vue/src/utils/NavigationBuilder.ts on lines 431..438
    vue/src/utils/NavigationBuilder.ts on lines 439..446
    vue/src/utils/NavigationBuilder.ts on lines 476..483
    vue/src/utils/NavigationBuilder.ts on lines 484..491
    vue/src/utils/NavigationBuilder.ts on lines 492..499
    vue/src/utils/NavigationBuilder.ts on lines 500..507
    vue/src/utils/NavigationBuilder.ts on lines 526..533
    vue/src/utils/NavigationBuilder.ts on lines 567..574
    vue/src/utils/NavigationBuilder.ts on lines 575..582
    vue/src/utils/NavigationBuilder.ts on lines 583..590
    vue/src/utils/NavigationBuilder.ts on lines 591..598
    vue/src/utils/NavigationBuilder.ts on lines 599..606
    vue/src/utils/NavigationBuilder.ts on lines 607..614
    vue/src/utils/NavigationBuilder.ts on lines 639..646
    vue/src/utils/NavigationBuilder.ts on lines 656..663
    vue/src/utils/NavigationBuilder.ts on lines 664..671
    vue/src/utils/NavigationBuilder.ts on lines 672..679
    vue/src/utils/NavigationBuilder.ts on lines 680..687
    vue/src/utils/NavigationBuilder.ts on lines 688..695
    vue/src/utils/NavigationBuilder.ts on lines 696..703

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 45.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

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

      case 'osaamiskokonaisuus':
        node.location = {
          name: 'perusteOsaamiskokonaisuus',
          params: {
            osaamiskokonaisuusId: _.toString(rawNode.id),
    Severity: Major
    Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
    vue/src/utils/NavigationBuilder.ts on lines 187..194
    vue/src/utils/NavigationBuilder.ts on lines 195..202
    vue/src/utils/NavigationBuilder.ts on lines 261..268
    vue/src/utils/NavigationBuilder.ts on lines 275..282
    vue/src/utils/NavigationBuilder.ts on lines 298..305
    vue/src/utils/NavigationBuilder.ts on lines 306..313
    vue/src/utils/NavigationBuilder.ts on lines 314..321
    vue/src/utils/NavigationBuilder.ts on lines 351..358
    vue/src/utils/NavigationBuilder.ts on lines 359..366
    vue/src/utils/NavigationBuilder.ts on lines 367..374
    vue/src/utils/NavigationBuilder.ts on lines 375..382
    vue/src/utils/NavigationBuilder.ts on lines 383..390
    vue/src/utils/NavigationBuilder.ts on lines 391..398
    vue/src/utils/NavigationBuilder.ts on lines 399..406
    vue/src/utils/NavigationBuilder.ts on lines 407..414
    vue/src/utils/NavigationBuilder.ts on lines 415..422
    vue/src/utils/NavigationBuilder.ts on lines 423..430
    vue/src/utils/NavigationBuilder.ts on lines 439..446
    vue/src/utils/NavigationBuilder.ts on lines 476..483
    vue/src/utils/NavigationBuilder.ts on lines 484..491
    vue/src/utils/NavigationBuilder.ts on lines 492..499
    vue/src/utils/NavigationBuilder.ts on lines 500..507
    vue/src/utils/NavigationBuilder.ts on lines 526..533
    vue/src/utils/NavigationBuilder.ts on lines 567..574
    vue/src/utils/NavigationBuilder.ts on lines 575..582
    vue/src/utils/NavigationBuilder.ts on lines 583..590
    vue/src/utils/NavigationBuilder.ts on lines 591..598
    vue/src/utils/NavigationBuilder.ts on lines 599..606
    vue/src/utils/NavigationBuilder.ts on lines 607..614
    vue/src/utils/NavigationBuilder.ts on lines 639..646
    vue/src/utils/NavigationBuilder.ts on lines 656..663
    vue/src/utils/NavigationBuilder.ts on lines 664..671
    vue/src/utils/NavigationBuilder.ts on lines 672..679
    vue/src/utils/NavigationBuilder.ts on lines 680..687
    vue/src/utils/NavigationBuilder.ts on lines 688..695
    vue/src/utils/NavigationBuilder.ts on lines 696..703

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 45.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

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

      case 'opintojakso':
        node.location = {
          name: 'lops2019OpetussuunnitelmaOpintojakso',
          params: {
            opintojaksoId: _.toString(rawNode.id),
    Severity: Major
    Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
    vue/src/utils/NavigationBuilder.ts on lines 187..194
    vue/src/utils/NavigationBuilder.ts on lines 195..202
    vue/src/utils/NavigationBuilder.ts on lines 261..268
    vue/src/utils/NavigationBuilder.ts on lines 275..282
    vue/src/utils/NavigationBuilder.ts on lines 298..305
    vue/src/utils/NavigationBuilder.ts on lines 306..313
    vue/src/utils/NavigationBuilder.ts on lines 314..321
    vue/src/utils/NavigationBuilder.ts on lines 351..358
    vue/src/utils/NavigationBuilder.ts on lines 359..366
    vue/src/utils/NavigationBuilder.ts on lines 367..374
    vue/src/utils/NavigationBuilder.ts on lines 375..382
    vue/src/utils/NavigationBuilder.ts on lines 383..390
    vue/src/utils/NavigationBuilder.ts on lines 391..398
    vue/src/utils/NavigationBuilder.ts on lines 399..406
    vue/src/utils/NavigationBuilder.ts on lines 407..414
    vue/src/utils/NavigationBuilder.ts on lines 415..422
    vue/src/utils/NavigationBuilder.ts on lines 423..430
    vue/src/utils/NavigationBuilder.ts on lines 431..438
    vue/src/utils/NavigationBuilder.ts on lines 439..446
    vue/src/utils/NavigationBuilder.ts on lines 476..483
    vue/src/utils/NavigationBuilder.ts on lines 484..491
    vue/src/utils/NavigationBuilder.ts on lines 492..499
    vue/src/utils/NavigationBuilder.ts on lines 500..507
    vue/src/utils/NavigationBuilder.ts on lines 567..574
    vue/src/utils/NavigationBuilder.ts on lines 575..582
    vue/src/utils/NavigationBuilder.ts on lines 583..590
    vue/src/utils/NavigationBuilder.ts on lines 591..598
    vue/src/utils/NavigationBuilder.ts on lines 599..606
    vue/src/utils/NavigationBuilder.ts on lines 607..614
    vue/src/utils/NavigationBuilder.ts on lines 639..646
    vue/src/utils/NavigationBuilder.ts on lines 656..663
    vue/src/utils/NavigationBuilder.ts on lines 664..671
    vue/src/utils/NavigationBuilder.ts on lines 672..679
    vue/src/utils/NavigationBuilder.ts on lines 680..687
    vue/src/utils/NavigationBuilder.ts on lines 688..695
    vue/src/utils/NavigationBuilder.ts on lines 696..703

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 45.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

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

      case 'laajaalainenosaaminen':
        node.location = {
          name: 'perusteLaajaalainenOsaaminen',
          params: {
            laajaalainenosaaminenId: _.toString(rawNode.id),
    Severity: Major
    Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
    vue/src/utils/NavigationBuilder.ts on lines 187..194
    vue/src/utils/NavigationBuilder.ts on lines 195..202
    vue/src/utils/NavigationBuilder.ts on lines 261..268
    vue/src/utils/NavigationBuilder.ts on lines 275..282
    vue/src/utils/NavigationBuilder.ts on lines 298..305
    vue/src/utils/NavigationBuilder.ts on lines 306..313
    vue/src/utils/NavigationBuilder.ts on lines 314..321
    vue/src/utils/NavigationBuilder.ts on lines 351..358
    vue/src/utils/NavigationBuilder.ts on lines 359..366
    vue/src/utils/NavigationBuilder.ts on lines 367..374
    vue/src/utils/NavigationBuilder.ts on lines 383..390
    vue/src/utils/NavigationBuilder.ts on lines 391..398
    vue/src/utils/NavigationBuilder.ts on lines 399..406
    vue/src/utils/NavigationBuilder.ts on lines 407..414
    vue/src/utils/NavigationBuilder.ts on lines 415..422
    vue/src/utils/NavigationBuilder.ts on lines 423..430
    vue/src/utils/NavigationBuilder.ts on lines 431..438
    vue/src/utils/NavigationBuilder.ts on lines 439..446
    vue/src/utils/NavigationBuilder.ts on lines 476..483
    vue/src/utils/NavigationBuilder.ts on lines 484..491
    vue/src/utils/NavigationBuilder.ts on lines 492..499
    vue/src/utils/NavigationBuilder.ts on lines 500..507
    vue/src/utils/NavigationBuilder.ts on lines 526..533
    vue/src/utils/NavigationBuilder.ts on lines 567..574
    vue/src/utils/NavigationBuilder.ts on lines 575..582
    vue/src/utils/NavigationBuilder.ts on lines 583..590
    vue/src/utils/NavigationBuilder.ts on lines 591..598
    vue/src/utils/NavigationBuilder.ts on lines 599..606
    vue/src/utils/NavigationBuilder.ts on lines 607..614
    vue/src/utils/NavigationBuilder.ts on lines 639..646
    vue/src/utils/NavigationBuilder.ts on lines 656..663
    vue/src/utils/NavigationBuilder.ts on lines 664..671
    vue/src/utils/NavigationBuilder.ts on lines 672..679
    vue/src/utils/NavigationBuilder.ts on lines 680..687
    vue/src/utils/NavigationBuilder.ts on lines 688..695
    vue/src/utils/NavigationBuilder.ts on lines 696..703

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 45.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

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

      case 'koulutuksenosat':
        node.location = {
          name: 'toteutussuunnitelmaSisalto',
          params: {
            sisaltoviiteId: _.toString(rawNode.id),
    Severity: Major
    Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
    vue/src/utils/NavigationBuilder.ts on lines 187..194
    vue/src/utils/NavigationBuilder.ts on lines 195..202
    vue/src/utils/NavigationBuilder.ts on lines 261..268
    vue/src/utils/NavigationBuilder.ts on lines 275..282
    vue/src/utils/NavigationBuilder.ts on lines 298..305
    vue/src/utils/NavigationBuilder.ts on lines 306..313
    vue/src/utils/NavigationBuilder.ts on lines 314..321
    vue/src/utils/NavigationBuilder.ts on lines 351..358
    vue/src/utils/NavigationBuilder.ts on lines 359..366
    vue/src/utils/NavigationBuilder.ts on lines 367..374
    vue/src/utils/NavigationBuilder.ts on lines 375..382
    vue/src/utils/NavigationBuilder.ts on lines 383..390
    vue/src/utils/NavigationBuilder.ts on lines 391..398
    vue/src/utils/NavigationBuilder.ts on lines 399..406
    vue/src/utils/NavigationBuilder.ts on lines 407..414
    vue/src/utils/NavigationBuilder.ts on lines 415..422
    vue/src/utils/NavigationBuilder.ts on lines 423..430
    vue/src/utils/NavigationBuilder.ts on lines 431..438
    vue/src/utils/NavigationBuilder.ts on lines 439..446
    vue/src/utils/NavigationBuilder.ts on lines 476..483
    vue/src/utils/NavigationBuilder.ts on lines 484..491
    vue/src/utils/NavigationBuilder.ts on lines 492..499
    vue/src/utils/NavigationBuilder.ts on lines 500..507
    vue/src/utils/NavigationBuilder.ts on lines 526..533
    vue/src/utils/NavigationBuilder.ts on lines 567..574
    vue/src/utils/NavigationBuilder.ts on lines 575..582
    vue/src/utils/NavigationBuilder.ts on lines 583..590
    vue/src/utils/NavigationBuilder.ts on lines 591..598
    vue/src/utils/NavigationBuilder.ts on lines 599..606
    vue/src/utils/NavigationBuilder.ts on lines 607..614
    vue/src/utils/NavigationBuilder.ts on lines 639..646
    vue/src/utils/NavigationBuilder.ts on lines 656..663
    vue/src/utils/NavigationBuilder.ts on lines 664..671
    vue/src/utils/NavigationBuilder.ts on lines 680..687
    vue/src/utils/NavigationBuilder.ts on lines 688..695
    vue/src/utils/NavigationBuilder.ts on lines 696..703

    Duplicated Code

    Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

    Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

    When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

    Tuning

    This issue has a mass of 45.

    We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

    The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

    If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

    See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

    Refactorings

    Further Reading

    Avoid too many return statements within this function.
    Open

        return ColorMap.valinnainen;
    Severity: Major
    Found in vue/src/utils/perusterakenne.ts - About 30 mins to fix

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

        case 'tutkinnonosaviite':
          node.location = {
            name: 'tutkinnonosa',
            params: {
              tutkinnonOsaViiteId: _.toString(rawNode.id),
      Severity: Major
      Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
      vue/src/utils/NavigationBuilder.ts on lines 187..194
      vue/src/utils/NavigationBuilder.ts on lines 195..202
      vue/src/utils/NavigationBuilder.ts on lines 275..282
      vue/src/utils/NavigationBuilder.ts on lines 298..305
      vue/src/utils/NavigationBuilder.ts on lines 306..313
      vue/src/utils/NavigationBuilder.ts on lines 314..321
      vue/src/utils/NavigationBuilder.ts on lines 351..358
      vue/src/utils/NavigationBuilder.ts on lines 359..366
      vue/src/utils/NavigationBuilder.ts on lines 367..374
      vue/src/utils/NavigationBuilder.ts on lines 375..382
      vue/src/utils/NavigationBuilder.ts on lines 383..390
      vue/src/utils/NavigationBuilder.ts on lines 391..398
      vue/src/utils/NavigationBuilder.ts on lines 399..406
      vue/src/utils/NavigationBuilder.ts on lines 407..414
      vue/src/utils/NavigationBuilder.ts on lines 415..422
      vue/src/utils/NavigationBuilder.ts on lines 423..430
      vue/src/utils/NavigationBuilder.ts on lines 431..438
      vue/src/utils/NavigationBuilder.ts on lines 439..446
      vue/src/utils/NavigationBuilder.ts on lines 476..483
      vue/src/utils/NavigationBuilder.ts on lines 484..491
      vue/src/utils/NavigationBuilder.ts on lines 492..499
      vue/src/utils/NavigationBuilder.ts on lines 500..507
      vue/src/utils/NavigationBuilder.ts on lines 526..533
      vue/src/utils/NavigationBuilder.ts on lines 567..574
      vue/src/utils/NavigationBuilder.ts on lines 575..582
      vue/src/utils/NavigationBuilder.ts on lines 583..590
      vue/src/utils/NavigationBuilder.ts on lines 591..598
      vue/src/utils/NavigationBuilder.ts on lines 599..606
      vue/src/utils/NavigationBuilder.ts on lines 607..614
      vue/src/utils/NavigationBuilder.ts on lines 639..646
      vue/src/utils/NavigationBuilder.ts on lines 656..663
      vue/src/utils/NavigationBuilder.ts on lines 664..671
      vue/src/utils/NavigationBuilder.ts on lines 672..679
      vue/src/utils/NavigationBuilder.ts on lines 680..687
      vue/src/utils/NavigationBuilder.ts on lines 688..695
      vue/src/utils/NavigationBuilder.ts on lines 696..703

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 45.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Avoid too many return statements within this function.
      Open

            return ColorMap.pakollinen;
      Severity: Major
      Found in vue/src/utils/perusterakenne.ts - About 30 mins to fix

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

          case 'koto_laajaalainenosaaminen':
            node.location = {
              name: 'perusteKotoLaajaalainenOsaaminen',
              params: {
                kotoLaajaalainenOsaaminenId: _.toString(rawNode.id),
        Severity: Major
        Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
        vue/src/utils/NavigationBuilder.ts on lines 187..194
        vue/src/utils/NavigationBuilder.ts on lines 195..202
        vue/src/utils/NavigationBuilder.ts on lines 261..268
        vue/src/utils/NavigationBuilder.ts on lines 275..282
        vue/src/utils/NavigationBuilder.ts on lines 298..305
        vue/src/utils/NavigationBuilder.ts on lines 306..313
        vue/src/utils/NavigationBuilder.ts on lines 314..321
        vue/src/utils/NavigationBuilder.ts on lines 351..358
        vue/src/utils/NavigationBuilder.ts on lines 359..366
        vue/src/utils/NavigationBuilder.ts on lines 367..374
        vue/src/utils/NavigationBuilder.ts on lines 375..382
        vue/src/utils/NavigationBuilder.ts on lines 383..390
        vue/src/utils/NavigationBuilder.ts on lines 391..398
        vue/src/utils/NavigationBuilder.ts on lines 407..414
        vue/src/utils/NavigationBuilder.ts on lines 415..422
        vue/src/utils/NavigationBuilder.ts on lines 423..430
        vue/src/utils/NavigationBuilder.ts on lines 431..438
        vue/src/utils/NavigationBuilder.ts on lines 439..446
        vue/src/utils/NavigationBuilder.ts on lines 476..483
        vue/src/utils/NavigationBuilder.ts on lines 484..491
        vue/src/utils/NavigationBuilder.ts on lines 492..499
        vue/src/utils/NavigationBuilder.ts on lines 500..507
        vue/src/utils/NavigationBuilder.ts on lines 526..533
        vue/src/utils/NavigationBuilder.ts on lines 567..574
        vue/src/utils/NavigationBuilder.ts on lines 575..582
        vue/src/utils/NavigationBuilder.ts on lines 583..590
        vue/src/utils/NavigationBuilder.ts on lines 591..598
        vue/src/utils/NavigationBuilder.ts on lines 599..606
        vue/src/utils/NavigationBuilder.ts on lines 607..614
        vue/src/utils/NavigationBuilder.ts on lines 639..646
        vue/src/utils/NavigationBuilder.ts on lines 656..663
        vue/src/utils/NavigationBuilder.ts on lines 664..671
        vue/src/utils/NavigationBuilder.ts on lines 672..679
        vue/src/utils/NavigationBuilder.ts on lines 680..687
        vue/src/utils/NavigationBuilder.ts on lines 688..695
        vue/src/utils/NavigationBuilder.ts on lines 696..703

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 45.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

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

          case 'suorituspolku':
            node.location = {
              name: 'toteutussuunnitelmaSisalto',
              params: {
                sisaltoviiteId: _.toString(rawNode.id),
        Severity: Major
        Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
        vue/src/utils/NavigationBuilder.ts on lines 187..194
        vue/src/utils/NavigationBuilder.ts on lines 195..202
        vue/src/utils/NavigationBuilder.ts on lines 261..268
        vue/src/utils/NavigationBuilder.ts on lines 275..282
        vue/src/utils/NavigationBuilder.ts on lines 298..305
        vue/src/utils/NavigationBuilder.ts on lines 306..313
        vue/src/utils/NavigationBuilder.ts on lines 314..321
        vue/src/utils/NavigationBuilder.ts on lines 351..358
        vue/src/utils/NavigationBuilder.ts on lines 359..366
        vue/src/utils/NavigationBuilder.ts on lines 367..374
        vue/src/utils/NavigationBuilder.ts on lines 375..382
        vue/src/utils/NavigationBuilder.ts on lines 383..390
        vue/src/utils/NavigationBuilder.ts on lines 391..398
        vue/src/utils/NavigationBuilder.ts on lines 399..406
        vue/src/utils/NavigationBuilder.ts on lines 407..414
        vue/src/utils/NavigationBuilder.ts on lines 415..422
        vue/src/utils/NavigationBuilder.ts on lines 423..430
        vue/src/utils/NavigationBuilder.ts on lines 431..438
        vue/src/utils/NavigationBuilder.ts on lines 439..446
        vue/src/utils/NavigationBuilder.ts on lines 476..483
        vue/src/utils/NavigationBuilder.ts on lines 484..491
        vue/src/utils/NavigationBuilder.ts on lines 492..499
        vue/src/utils/NavigationBuilder.ts on lines 500..507
        vue/src/utils/NavigationBuilder.ts on lines 526..533
        vue/src/utils/NavigationBuilder.ts on lines 567..574
        vue/src/utils/NavigationBuilder.ts on lines 575..582
        vue/src/utils/NavigationBuilder.ts on lines 583..590
        vue/src/utils/NavigationBuilder.ts on lines 599..606
        vue/src/utils/NavigationBuilder.ts on lines 607..614
        vue/src/utils/NavigationBuilder.ts on lines 639..646
        vue/src/utils/NavigationBuilder.ts on lines 656..663
        vue/src/utils/NavigationBuilder.ts on lines 664..671
        vue/src/utils/NavigationBuilder.ts on lines 672..679
        vue/src/utils/NavigationBuilder.ts on lines 680..687
        vue/src/utils/NavigationBuilder.ts on lines 688..695
        vue/src/utils/NavigationBuilder.ts on lines 696..703

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 45.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

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

          case 'vuosiluokkakokonaisuus':
            node.location = {
              name: 'opetussuunnitelmanvuosiluokkakokonaisuus',
              params: {
                vlkId: _.toString(rawNode.id),
        Severity: Major
        Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
        vue/src/utils/NavigationBuilder.ts on lines 187..194
        vue/src/utils/NavigationBuilder.ts on lines 195..202
        vue/src/utils/NavigationBuilder.ts on lines 261..268
        vue/src/utils/NavigationBuilder.ts on lines 275..282
        vue/src/utils/NavigationBuilder.ts on lines 298..305
        vue/src/utils/NavigationBuilder.ts on lines 306..313
        vue/src/utils/NavigationBuilder.ts on lines 314..321
        vue/src/utils/NavigationBuilder.ts on lines 351..358
        vue/src/utils/NavigationBuilder.ts on lines 359..366
        vue/src/utils/NavigationBuilder.ts on lines 367..374
        vue/src/utils/NavigationBuilder.ts on lines 375..382
        vue/src/utils/NavigationBuilder.ts on lines 383..390
        vue/src/utils/NavigationBuilder.ts on lines 391..398
        vue/src/utils/NavigationBuilder.ts on lines 399..406
        vue/src/utils/NavigationBuilder.ts on lines 407..414
        vue/src/utils/NavigationBuilder.ts on lines 415..422
        vue/src/utils/NavigationBuilder.ts on lines 423..430
        vue/src/utils/NavigationBuilder.ts on lines 431..438
        vue/src/utils/NavigationBuilder.ts on lines 439..446
        vue/src/utils/NavigationBuilder.ts on lines 476..483
        vue/src/utils/NavigationBuilder.ts on lines 484..491
        vue/src/utils/NavigationBuilder.ts on lines 492..499
        vue/src/utils/NavigationBuilder.ts on lines 500..507
        vue/src/utils/NavigationBuilder.ts on lines 526..533
        vue/src/utils/NavigationBuilder.ts on lines 567..574
        vue/src/utils/NavigationBuilder.ts on lines 575..582
        vue/src/utils/NavigationBuilder.ts on lines 583..590
        vue/src/utils/NavigationBuilder.ts on lines 591..598
        vue/src/utils/NavigationBuilder.ts on lines 599..606
        vue/src/utils/NavigationBuilder.ts on lines 639..646
        vue/src/utils/NavigationBuilder.ts on lines 656..663
        vue/src/utils/NavigationBuilder.ts on lines 664..671
        vue/src/utils/NavigationBuilder.ts on lines 672..679
        vue/src/utils/NavigationBuilder.ts on lines 680..687
        vue/src/utils/NavigationBuilder.ts on lines 688..695
        vue/src/utils/NavigationBuilder.ts on lines 696..703

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 45.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

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

          case 'opetuksenyleisettavoitteet':
            node.location = {
              name: 'perusteYleisettavoitteet',
              params: {
                yleistavoiteId: _.toString(rawNode.id),
        Severity: Major
        Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
        vue/src/utils/NavigationBuilder.ts on lines 187..194
        vue/src/utils/NavigationBuilder.ts on lines 195..202
        vue/src/utils/NavigationBuilder.ts on lines 261..268
        vue/src/utils/NavigationBuilder.ts on lines 275..282
        vue/src/utils/NavigationBuilder.ts on lines 298..305
        vue/src/utils/NavigationBuilder.ts on lines 306..313
        vue/src/utils/NavigationBuilder.ts on lines 314..321
        vue/src/utils/NavigationBuilder.ts on lines 351..358
        vue/src/utils/NavigationBuilder.ts on lines 359..366
        vue/src/utils/NavigationBuilder.ts on lines 367..374
        vue/src/utils/NavigationBuilder.ts on lines 375..382
        vue/src/utils/NavigationBuilder.ts on lines 383..390
        vue/src/utils/NavigationBuilder.ts on lines 391..398
        vue/src/utils/NavigationBuilder.ts on lines 399..406
        vue/src/utils/NavigationBuilder.ts on lines 407..414
        vue/src/utils/NavigationBuilder.ts on lines 423..430
        vue/src/utils/NavigationBuilder.ts on lines 431..438
        vue/src/utils/NavigationBuilder.ts on lines 439..446
        vue/src/utils/NavigationBuilder.ts on lines 476..483
        vue/src/utils/NavigationBuilder.ts on lines 484..491
        vue/src/utils/NavigationBuilder.ts on lines 492..499
        vue/src/utils/NavigationBuilder.ts on lines 500..507
        vue/src/utils/NavigationBuilder.ts on lines 526..533
        vue/src/utils/NavigationBuilder.ts on lines 567..574
        vue/src/utils/NavigationBuilder.ts on lines 575..582
        vue/src/utils/NavigationBuilder.ts on lines 583..590
        vue/src/utils/NavigationBuilder.ts on lines 591..598
        vue/src/utils/NavigationBuilder.ts on lines 599..606
        vue/src/utils/NavigationBuilder.ts on lines 607..614
        vue/src/utils/NavigationBuilder.ts on lines 639..646
        vue/src/utils/NavigationBuilder.ts on lines 656..663
        vue/src/utils/NavigationBuilder.ts on lines 664..671
        vue/src/utils/NavigationBuilder.ts on lines 672..679
        vue/src/utils/NavigationBuilder.ts on lines 680..687
        vue/src/utils/NavigationBuilder.ts on lines 688..695
        vue/src/utils/NavigationBuilder.ts on lines 696..703

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 45.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

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

          case 'lukiooppiaine_2015':
            node.location = {
              name: 'lopsOpetussuunnitelmaOppiaine',
              params: {
                oppiaineId: _.toString(rawNode.id),
        Severity: Major
        Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
        vue/src/utils/NavigationBuilder.ts on lines 187..194
        vue/src/utils/NavigationBuilder.ts on lines 195..202
        vue/src/utils/NavigationBuilder.ts on lines 261..268
        vue/src/utils/NavigationBuilder.ts on lines 275..282
        vue/src/utils/NavigationBuilder.ts on lines 298..305
        vue/src/utils/NavigationBuilder.ts on lines 306..313
        vue/src/utils/NavigationBuilder.ts on lines 314..321
        vue/src/utils/NavigationBuilder.ts on lines 351..358
        vue/src/utils/NavigationBuilder.ts on lines 359..366
        vue/src/utils/NavigationBuilder.ts on lines 367..374
        vue/src/utils/NavigationBuilder.ts on lines 375..382
        vue/src/utils/NavigationBuilder.ts on lines 383..390
        vue/src/utils/NavigationBuilder.ts on lines 391..398
        vue/src/utils/NavigationBuilder.ts on lines 399..406
        vue/src/utils/NavigationBuilder.ts on lines 407..414
        vue/src/utils/NavigationBuilder.ts on lines 415..422
        vue/src/utils/NavigationBuilder.ts on lines 423..430
        vue/src/utils/NavigationBuilder.ts on lines 431..438
        vue/src/utils/NavigationBuilder.ts on lines 439..446
        vue/src/utils/NavigationBuilder.ts on lines 476..483
        vue/src/utils/NavigationBuilder.ts on lines 492..499
        vue/src/utils/NavigationBuilder.ts on lines 500..507
        vue/src/utils/NavigationBuilder.ts on lines 526..533
        vue/src/utils/NavigationBuilder.ts on lines 567..574
        vue/src/utils/NavigationBuilder.ts on lines 575..582
        vue/src/utils/NavigationBuilder.ts on lines 583..590
        vue/src/utils/NavigationBuilder.ts on lines 591..598
        vue/src/utils/NavigationBuilder.ts on lines 599..606
        vue/src/utils/NavigationBuilder.ts on lines 607..614
        vue/src/utils/NavigationBuilder.ts on lines 639..646
        vue/src/utils/NavigationBuilder.ts on lines 656..663
        vue/src/utils/NavigationBuilder.ts on lines 664..671
        vue/src/utils/NavigationBuilder.ts on lines 672..679
        vue/src/utils/NavigationBuilder.ts on lines 680..687
        vue/src/utils/NavigationBuilder.ts on lines 688..695
        vue/src/utils/NavigationBuilder.ts on lines 696..703

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 45.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

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

          case 'aipeoppiaine':
            node.location = {
              name: 'aipeoppiaine',
              params: {
                oppiaineId: _.toString(rawNode.id),
        Severity: Major
        Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
        vue/src/utils/NavigationBuilder.ts on lines 187..194
        vue/src/utils/NavigationBuilder.ts on lines 195..202
        vue/src/utils/NavigationBuilder.ts on lines 261..268
        vue/src/utils/NavigationBuilder.ts on lines 275..282
        vue/src/utils/NavigationBuilder.ts on lines 298..305
        vue/src/utils/NavigationBuilder.ts on lines 314..321
        vue/src/utils/NavigationBuilder.ts on lines 351..358
        vue/src/utils/NavigationBuilder.ts on lines 359..366
        vue/src/utils/NavigationBuilder.ts on lines 367..374
        vue/src/utils/NavigationBuilder.ts on lines 375..382
        vue/src/utils/NavigationBuilder.ts on lines 383..390
        vue/src/utils/NavigationBuilder.ts on lines 391..398
        vue/src/utils/NavigationBuilder.ts on lines 399..406
        vue/src/utils/NavigationBuilder.ts on lines 407..414
        vue/src/utils/NavigationBuilder.ts on lines 415..422
        vue/src/utils/NavigationBuilder.ts on lines 423..430
        vue/src/utils/NavigationBuilder.ts on lines 431..438
        vue/src/utils/NavigationBuilder.ts on lines 439..446
        vue/src/utils/NavigationBuilder.ts on lines 476..483
        vue/src/utils/NavigationBuilder.ts on lines 484..491
        vue/src/utils/NavigationBuilder.ts on lines 492..499
        vue/src/utils/NavigationBuilder.ts on lines 500..507
        vue/src/utils/NavigationBuilder.ts on lines 526..533
        vue/src/utils/NavigationBuilder.ts on lines 567..574
        vue/src/utils/NavigationBuilder.ts on lines 575..582
        vue/src/utils/NavigationBuilder.ts on lines 583..590
        vue/src/utils/NavigationBuilder.ts on lines 591..598
        vue/src/utils/NavigationBuilder.ts on lines 599..606
        vue/src/utils/NavigationBuilder.ts on lines 607..614
        vue/src/utils/NavigationBuilder.ts on lines 639..646
        vue/src/utils/NavigationBuilder.ts on lines 656..663
        vue/src/utils/NavigationBuilder.ts on lines 664..671
        vue/src/utils/NavigationBuilder.ts on lines 672..679
        vue/src/utils/NavigationBuilder.ts on lines 680..687
        vue/src/utils/NavigationBuilder.ts on lines 688..695
        vue/src/utils/NavigationBuilder.ts on lines 696..703

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 45.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

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

          case 'aihekokonaisuudet':
            node.location = {
              name: 'perusteAihekokonaisuudet',
              params: {
                aihekokonaisuudetId: _.toString(rawNode.id),
        Severity: Major
        Found in vue/src/utils/NavigationBuilder.ts and 36 other locations - About 30 mins to fix
        vue/src/utils/NavigationBuilder.ts on lines 187..194
        vue/src/utils/NavigationBuilder.ts on lines 195..202
        vue/src/utils/NavigationBuilder.ts on lines 261..268
        vue/src/utils/NavigationBuilder.ts on lines 275..282
        vue/src/utils/NavigationBuilder.ts on lines 298..305
        vue/src/utils/NavigationBuilder.ts on lines 306..313
        vue/src/utils/NavigationBuilder.ts on lines 314..321
        vue/src/utils/NavigationBuilder.ts on lines 351..358
        vue/src/utils/NavigationBuilder.ts on lines 359..366
        vue/src/utils/NavigationBuilder.ts on lines 367..374
        vue/src/utils/NavigationBuilder.ts on lines 375..382
        vue/src/utils/NavigationBuilder.ts on lines 383..390
        vue/src/utils/NavigationBuilder.ts on lines 391..398
        vue/src/utils/NavigationBuilder.ts on lines 399..406
        vue/src/utils/NavigationBuilder.ts on lines 407..414
        vue/src/utils/NavigationBuilder.ts on lines 415..422
        vue/src/utils/NavigationBuilder.ts on lines 431..438
        vue/src/utils/NavigationBuilder.ts on lines 439..446
        vue/src/utils/NavigationBuilder.ts on lines 476..483
        vue/src/utils/NavigationBuilder.ts on lines 484..491
        vue/src/utils/NavigationBuilder.ts on lines 492..499
        vue/src/utils/NavigationBuilder.ts on lines 500..507
        vue/src/utils/NavigationBuilder.ts on lines 526..533
        vue/src/utils/NavigationBuilder.ts on lines 567..574
        vue/src/utils/NavigationBuilder.ts on lines 575..582
        vue/src/utils/NavigationBuilder.ts on lines 583..590
        vue/src/utils/NavigationBuilder.ts on lines 591..598
        vue/src/utils/NavigationBuilder.ts on lines 599..606
        vue/src/utils/NavigationBuilder.ts on lines 607..614
        vue/src/utils/NavigationBuilder.ts on lines 639..646
        vue/src/utils/NavigationBuilder.ts on lines 656..663
        vue/src/utils/NavigationBuilder.ts on lines 664..671
        vue/src/utils/NavigationBuilder.ts on lines 672..679
        vue/src/utils/NavigationBuilder.ts on lines 680..687
        vue/src/utils/NavigationBuilder.ts on lines 688..695
        vue/src/utils/NavigationBuilder.ts on lines 696..703

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 45.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Function install has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

          public install(vue: typeof Vue, options) {
            // Sisällön kääntäminen
            vue.prototype.$suodatin = (str: string) => Kielet.searchFn(str);
        
            vue.prototype.$filterBy = function(field: string, query: string) {
        Severity: Minor
        Found in vue/src/plugins/kaannos.ts - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Severity
        Category
        Status
        Source
        Language