cozy-labs/cozy-desktop

View on GitHub

Showing 610 of 610 total issues

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

      if (initDoc.trashed) {
        remoteDocsToTrash.push(remoteFile)
      } else {
        await builders
          .metafile()
Severity: Major
Found in dev/capture/remote.js and 1 other location - About 1 hr to fix
dev/capture/remote.js on lines 64..73

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 72.

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 openOAuthView has 46 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  async openOAuthView(url /*: string */) {
    try {
      // Open remote OAuth flow in separate view, without Node integration.
      // This avoids giving access to Node's API to remote code and allows
      // remote code to load and make use of jQuery since it can't be loaded via
Severity: Minor
Found in gui/js/onboarding.window.js - About 1 hr to fix

    Function squashMoves has 46 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    function squashMoves(changes /*: LocalChange[] */) {
      log.trace('Squash moves...')
      const stopMeasure = measureTime('LocalWatcher#squashMoves')
    
      for (let i = 0; i < changes.length; i++) {
    Severity: Minor
    Found in core/local/chokidar/analysis.js - About 1 hr to fix

      Function doTrash has 45 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

        async doTrash(
          side /*: SideName */,
          was /*: SavedMetadata */,
          doc /*: Metadata */
        ) /*: Promise<void> */ {
      Severity: Minor
      Found in core/merge.js - About 1 hr to fix

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

        function updated(
          doc /*: Metadata */
        ) /*: RemoteFileUpdate | RemoteDirUpdate */ {
          if (metadata.isFile(doc)) {
            return {
        Severity: Major
        Found in core/remote/change.js and 1 other location - About 1 hr to fix
        core/remote/change.js on lines 194..210

        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 71.

        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 setup has 45 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

          async setup() {
            const clientInfo = this.clientInfo()
            log.info(clientInfo, 'user config')
        
            if (!this.config.isValid()) {
        Severity: Minor
        Found in core/app.js - About 1 hr to fix

          Function waitForNewChangeOn has 45 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

            async waitForNewChangeOn(seq /*: number */, expectedPath /*: string */) {
              log.debug({ path: expectedPath }, 'Waiting for new change to be merged')
          
              return new Promise((resolve, reject) => {
                const opts = {
          Severity: Minor
          Found in core/sync/index.js - About 1 hr to fix

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

            function deleted(
              doc /*: SavedMetadata */
            ) /*: RemoteFileDeletion | RemoteDirDeletion */ {
              if (metadata.isFile(doc)) {
                return {
            Severity: Major
            Found in core/remote/change.js and 1 other location - About 1 hr to fix
            core/remote/change.js on lines 219..235

            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 71.

            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 doTrash has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
            Open

              async doTrash(
                side /*: SideName */,
                was /*: SavedMetadata */,
                doc /*: Metadata */
              ) /*: Promise<void> */ {
            Severity: Minor
            Found in core/merge.js - About 1 hr 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

            Function setupDesktop has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
            Open

            const setupDesktop = async () => {
              try {
                // TODO: allow setting desktop up without running migrations (when opening
                // a cozy-note)?
                await desktop.setup()
            Severity: Minor
            Found in gui/main.js - About 1 hr 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

            Function showWindow has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
            Open

            const showWindow = async bounds => {
              if (
                notificationsState.revokedAlertShown ||
                notificationsState.syncDirUnlinkedShown
              )
            Severity: Minor
            Found in gui/main.js - About 1 hr 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

            Function connect has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
            Open

              async connect(
                req /*: http.ClientRequest */,
                opts /*: AgentConnectOpts */
              ) /*: Promise<http.Agent> */ {
                const { secureEndpoint } = opts
            Severity: Minor
            Found in gui/js/network/agent.js - About 1 hr 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

            Function trashWithParentOrByItself has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
            Open

              async trashWithParentOrByItself(
                doc /*: SavedMetadata */,
                side /*: Writer */
              ) /*: Promise<void> */ {
                const parentPath = dirname(doc.path)
            Severity: Minor
            Found in core/sync/index.js - About 1 hr 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

            Function setupDesktop has 43 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

            const setupDesktop = async () => {
              try {
                // TODO: allow setting desktop up without running migrations (when opening
                // a cozy-note)?
                await desktop.setup()
            Severity: Minor
            Found in gui/main.js - About 1 hr to fix

              Function handleBunyanMessage has 43 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

              const handleBunyanMessage = msg => {
                const level =
                  msg.level >= bunyan.FATAL
                    ? 'fatal'
                    : msg.level >= bunyan.ERROR
              Severity: Minor
              Found in core/utils/sentry.js - About 1 hr to fix

                Function detectOperation has 43 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                const detectOperation = async (
                  change /*: PouchDBFeedData */,
                  sync /*: Sync */
                ) /*: Promise<SyncOperation> */ => {
                  const outdatedSide = sync.selectSide(change)
                Severity: Minor
                Found in core/sync/index.js - About 1 hr to fix

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

                    if (moveChangeSamePath && !moveChangeSamePath.old) {
                      // $FlowFixMe
                      moveChangeSamePath.type = 'Ignored'
                      delete moveChangeSamePath.wip
                      delete moveChangeSamePath.md5sum
                  Severity: Major
                  Found in core/local/chokidar/local_change.js and 1 other location - About 1 hr to fix
                  core/local/chokidar/local_change.js on lines 922..934

                  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 69.

                  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 2 locations. Consider refactoring.
                  Open

                    if (addChangeSamePath && addChangeSamePath.wip) {
                      // $FlowFixMe
                      addChangeSamePath.type = 'Ignored'
                      delete addChangeSamePath.wip
                      delete addChangeSamePath.md5sum
                  Severity: Major
                  Found in core/local/chokidar/local_change.js and 1 other location - About 1 hr to fix
                  core/local/chokidar/local_change.js on lines 958..970

                  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 69.

                  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 analyseEvents has 42 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                  function analyseEvents(
                    events /*: LocalEvent[] */,
                    pendingChanges /*: LocalChange[] */
                  ) /*: LocalChange[] */ {
                    const stopMeasure = measureTime('LocalWatcher#analyseEvents')
                  Severity: Minor
                  Found in core/local/chokidar/analysis.js - About 1 hr to fix

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

                      const watcher = chokidar.watch('.', {
                        cwd: syncPath,
                        ignored: /(^|[\/\\])\.system-tmp-cozy-drive/, // eslint-disable-line no-useless-escape
                        followSymlinks: false,
                        alwaysStat: true,
                    Severity: Major
                    Found in dev/chokidar.js and 1 other location - About 1 hr to fix
                    dev/capture/local.js on lines 38..51

                    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 68.

                    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

                    Severity
                    Category
                    Status
                    Source
                    Language