bemusic/bemuse

View on GitHub

Showing 274 of 508 total issues

File webpack.js has 359 lines of code (exceeds 250 allowed). Consider refactoring.
Open

import Gauge from 'gauge'
import TerserPlugin from 'terser-webpack-plugin'
import express from 'express'
import webpack from 'webpack'
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
Severity: Minor
Found in bemuse/config/webpack.js - About 4 hrs to fix

    Function getFilesFromEvent has a Cognitive Complexity of 31 (exceeds 5 allowed). Consider refactoring.
    Open

    async function getFilesFromEvent(
      event: DragEvent,
      log: LoggingFunction
    ): Promise<FileEntry[]> {
      const out: FileEntry[] = []
    Severity: Minor
    Found in bemuse/src/resources/dnd-resources.ts - About 4 hrs 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

    File player-state.spec.js has 350 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    import assert from 'assert'
    
    import GameInput from '../input'
    import Player from '../player'
    import PlayerState from './player-state'
    Severity: Minor
    Found in bemuse/src/game/state/player-state.spec.js - About 4 hrs to fix

      Function TouchPlugin has 109 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      export function TouchPlugin(context) {
        let scratchStartY = null
        let scratchY = null
        const getInput = bench.wrap('input:touch:I', _getInput)
        const getScratch = bench.wrap('input:touch:SC', _getScratch)
      Severity: Major
      Found in bemuse/src/game/input/touch-plugin.js - About 4 hrs to fix

        File MusicSelectScene.tsx has 344 lines of code (exceeds 250 allowed). Consider refactoring.
        Open

        import './MusicSelectScene.scss'
        
        import * as Analytics from '../analytics'
        import * as MusicPreviewer from 'bemuse/music-previewer'
        import * as MusicSearchIO from '../io/MusicSearchIO'
        Severity: Minor
        Found in bemuse/src/app/ui/MusicSelectScene.tsx - About 4 hrs to fix

          Function index has a Cognitive Complexity of 29 (exceeds 5 allowed). Consider refactoring.
          Open

          export async function index(path, { recursive }) {
            const stat = await fileStat(path)
            if (!stat.isDirectory()) throw new Error('Not a directory: ' + path)
          
            const cache = new Cache(join(path, 'index.cache'))
          Severity: Minor
          Found in packages/bemuse-tools/src/indexer.js - About 4 hrs 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 CustomFolderTester has 105 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          const CustomFolderTester = () => {
            const context = getDefaultCustomFolderContext()
            const { isLoading, error, data } = useQuery('customFolder', async () => {
              const result = await getCustomFolderState(context)
              return result
          Severity: Major
          Found in bemuse/src/devtools/playgrounds/custom-folder.tsx - About 4 hrs to fix

            Function applyWebConfig has 103 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

            function applyWebConfig(config) {
              Object.assign(config, {
                entry: {
                  boot: ['./boot'],
                },
            Severity: Major
            Found in bemuse/config/webpack.js - About 4 hrs to fix

              Function BemusePreviewer has 99 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

              export const BemusePreviewer = () => {
                const div = useRef<HTMLDivElement>(null)
                const [previewState, dispatch] = useReducer(previewStateReducer, {
                  currentTime: 0,
                  hiSpeed: 1,
              Severity: Major
              Found in bemuse/src/previewer/BemusePreviewer.tsx - About 3 hrs to fix

                Notechart has 31 functions (exceeds 20 allowed). Consider refactoring.
                Open

                export class Notechart {
                  private _timing: BMS.Timing
                  private _keysounds: BMS.Keysounds
                  private _positioning: BMS.Positioning
                  private _spacing: BMS.Spacing
                Severity: Minor
                Found in packages/bemuse-notechart/src/index.ts - About 3 hrs to fix

                  File game-launcher.tsx has 322 lines of code (exceeds 250 allowed). Consider refactoring.
                  Open

                  import * as Analytics from './analytics'
                  import * as Options from './entities/Options'
                  
                  import { Chart, Song } from 'bemuse/collection-model/types'
                  import { ReactScene, SceneManager } from 'bemuse/scene-manager'
                  Severity: Minor
                  Found in bemuse/src/app/game-launcher.tsx - About 3 hrs to fix

                    Function PreviewKeyHandler has 92 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                    export const PreviewKeyHandler: FC<PreviewKeyHandler> = (props) => {
                      const getLatestNotechartPreview = useLatest(props.notechartPreview)
                      useEffect(() => {
                        const onKeyDown = (e: KeyboardEvent) => {
                          if (isModalActive()) return
                    Severity: Major
                    Found in bemuse/src/previewer/PreviewKeyHandler.tsx - About 3 hrs to fix

                      Function go has 89 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                      async function go(loader, element) {
                        const master = new SamplingMaster(ctx)
                        const $log = element.find('.js-log')
                        const $play = element.find('.js-play').hide()
                        const $sampler = element.find('.js-sampler')
                      Severity: Major
                      Found in bemuse/src/coming-soon/demo/index.js - About 3 hrs to fix

                        File index.ts has 313 lines of code (exceeds 250 allowed). Consider refactoring.
                        Open

                        import {
                          Action,
                          DataStore,
                          initialState,
                          put,
                        Severity: Minor
                        Found in bemuse/src/online/index.ts - About 3 hrs to fix

                          File player-state.ts has 313 lines of code (exceeds 250 allowed). Consider refactoring.
                          Open

                          import _ from 'lodash'
                          
                          import PlayerStats from './player-stats'
                          import {
                            MISSED,
                          Severity: Minor
                          Found in bemuse/src/game/state/player-state.ts - About 3 hrs to fix

                            Function music has a Cognitive Complexity of 24 (exceeds 5 allowed). Consider refactoring.
                            Open

                            function music(master: SamplingMaster, samples: Samples) {
                              return function play(callbacks: { a: () => void }) {
                                master.unmute()
                            
                                const BPM = 148
                            Severity: Minor
                            Found in bemuse/src/auto-synchro/music/index.ts - About 3 hrs 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 compile has 85 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                            export function compile(text: string, options?: Partial<BMSCompileOptions>) {
                              options = options || {}
                            
                              const chart = new BMSChart()
                            
                            
                            Severity: Major
                            Found in packages/bms/src/compiler/index.ts - About 3 hrs to fix

                              Function PreviewInfo has 85 lines of code (exceeds 25 allowed). Consider refactoring.
                              Open

                              export const PreviewInfo: FC<PreviewInfo> = (props) => {
                                const preview = props.notechartPreview
                              
                                const measureInfo = useMemo(() => {
                                  return props.notechartPreview.getMeasureInfo(props.previewState.currentTime)
                              Severity: Major
                              Found in bemuse/src/previewer/PreviewInfo.tsx - About 3 hrs to fix

                                Function previewStateReducer has 84 lines of code (exceeds 25 allowed). Consider refactoring.
                                Open

                                export function previewStateReducer(
                                  state: PreviewState,
                                  action: PreviewAction
                                ) {
                                  let nextState = state
                                Severity: Major
                                Found in bemuse/src/previewer/PreviewState.tsx - About 3 hrs to fix

                                  Function onKeyDown has 82 lines of code (exceeds 25 allowed). Consider refactoring.
                                  Open

                                      const onKeyDown = (e: KeyboardEvent) => {
                                        if (isModalActive()) return
                                        console.log(e.key)
                                        if (e.key === '2') {
                                          props.dispatch({ speedUp: true })
                                  Severity: Major
                                  Found in bemuse/src/previewer/PreviewKeyHandler.tsx - About 3 hrs to fix
                                    Severity
                                    Category
                                    Status
                                    Source
                                    Language