evansiroky/gtfs-sequelize

View on GitHub

Showing 55 of 55 total issues

File gtfsLoader.js has 625 lines of code (exceeds 250 allowed). Consider refactoring.
Open

var fs = require('fs')
var path = require('path')

var async = require('async')
var csv = require('csvtojson')
Severity: Major
Found in lib/gtfsLoader.js - About 1 day to fix

    Function loadGtfs has 248 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    var loadGtfs = function (extractedFolder, db, isSpatial, interpolateStopTimes, callback) {
      numAgencies = 0
      lastAgencyId = null
    
      var dropAllTables = function (dropCallback) {
    Severity: Major
    Found in lib/gtfsLoader.js - About 1 day to fix

      Function loadGtfs has a Cognitive Complexity of 33 (exceeds 5 allowed). Consider refactoring.
      Open

      var loadGtfs = function (extractedFolder, db, isSpatial, interpolateStopTimes, callback) {
        numAgencies = 0
        lastAgencyId = null
      
        var dropAllTables = function (dropCallback) {
      Severity: Minor
      Found in lib/gtfsLoader.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 loadAllFiles has 82 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

        var loadAllFiles = function (loadingCallback) {
          function makeCallbackLogger (name, cb) {
            return (err) => {
              if (err) {
                console.error('error loading ' + name)
      Severity: Major
      Found in lib/gtfsLoader.js - About 3 hrs to fix

        Function loadCalendarDates has 81 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        var loadCalendarDates = function (extractedFolder, db, callback) {
          var filename = path.join(extractedFolder, 'calendar_dates.txt')
        
          console.log('Processing ' + filename)
        
        
        Severity: Major
        Found in lib/gtfsLoader.js - About 3 hrs to fix

          Function interpolateStopTimes has 75 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

          function interpolateStopTimes (db, callback) {
            console.log('interpolating stop times')
            const streamerConfig = util.makeStreamerConfig(db.trip)
            const querier = dbStreamer.getQuerier(streamerConfig)
            const maxUpdateConcurrency = db.trip.sequelize.getDialect() === 'sqlite' ? 1 : 100
          Severity: Major
          Found in lib/operations.js - About 3 hrs to fix

            Function processCalendarDates has 65 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

              var processCalendarDates = function () {
                db.calendar_date.sync({force: true}).then(function () {
                  var serviceIdsNotInCalendar = []
                  var calendarInserterConfig = util.makeStreamerConfig(db.calendar)
            
            
            Severity: Major
            Found in lib/gtfsLoader.js - About 2 hrs to fix

              Function exports has 58 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

              module.exports = function(sequelize, DataTypes) {
                var Trip = sequelize.define("trip", {
                  route_id: {
                    type: DataTypes.STRING(255),
                    references: {
              Severity: Major
              Found in models/spatial/trip.js - About 2 hrs to fix

                Function exports has 56 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                module.exports = function (gtfsUrl, downloadsDir, callback) {
                  var err
                  if (!gtfsUrl) {
                    err = new Error('GTFS download url not specified.')
                    return callback(err)
                Severity: Major
                Found in lib/download.js - About 2 hrs to fix

                  Function exports has 51 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                  module.exports = function(sequelize, DataTypes) {
                    var Trip = sequelize.define("trip", {
                      route_id: {
                        type: DataTypes.STRING(255),
                        references: {
                  Severity: Major
                  Found in models/trip.js - About 2 hrs to fix

                    Function makeShapeTable has 50 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                      var makeShapeTable = function (seriesCallback) {
                        if (!hasShapeTable) {
                          console.log('shape table does not exist, skipping creation of shape_gis table')
                          return seriesCallback()
                        }
                    Severity: Minor
                    Found in lib/gtfsLoader.js - About 2 hrs to fix

                      Function insertCSVInTable has 50 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                      var insertCSVInTable = function (insertCfg, callback) {
                        console.log('Processing ' + insertCfg.filename)
                      
                        // prepare transformer in case it doesn't exist
                        var transformer = insertCfg.transformer
                      Severity: Minor
                      Found in lib/gtfsLoader.js - About 2 hrs to fix

                        Function loadCalendar has 49 lines of code (exceeds 25 allowed). Consider refactoring.
                        Open

                        var loadCalendar = function (extractedFolder, db, callback) {
                          // reset all these things on each feed load
                          minDateFound = null
                          maxDateFound = null
                          serviceIds = []
                        Severity: Minor
                        Found in lib/gtfsLoader.js - About 1 hr to fix

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

                          module.exports = function(sequelize, DataTypes) {
                            var StopTime = sequelize.define("stop_time", {
                              trip_id: {
                                type: DataTypes.STRING(255),
                                primaryKey: true,
                          Severity: Minor
                          Found in models/stop_time.js - About 1 hr to fix

                            Function makeStopGeom has 40 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                              var makeStopGeom = function (seriesCallback) {
                                console.log('adding stop geometry')
                                var model = db.sequelize.import('../models/spatial/stop.js')
                                var dialect = db.sequelize.getDialect()
                                var alterStopTableQuery, geomUpdateQuery
                            Severity: Minor
                            Found in lib/gtfsLoader.js - About 1 hr to fix

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

                              function updateInterpolatedTimes (cfg, callback) {
                                const db = cfg.db
                                const lastTimepoint = cfg.lastTimepoint
                                const nextTimepoint = cfg.nextTimepoint
                                const timeDiff = nextTimepoint.arrival_time - lastTimepoint.departure_time
                              Severity: Minor
                              Found in lib/operations.js - About 1 hr to fix

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

                                module.exports = function(sequelize, DataTypes) {
                                  var Transfer = sequelize.define("transfer", {
                                    from_stop_id: {
                                      type: DataTypes.STRING(255),
                                      primaryKey: true,
                                Severity: Minor
                                Found in models/transfer.js - About 1 hr to fix

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

                                  module.exports = function(sequelize, DataTypes) {
                                    var Stop = sequelize.define("stop", {
                                      stop_id: {
                                        type: DataTypes.STRING(255),
                                        primaryKey: true
                                  Severity: Minor
                                  Found in models/spatial/stop.js - About 1 hr to fix

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

                                    module.exports = function (config) {
                                      const connectToDatabase = function (rawModels) {
                                        const db = Database(config.database, config.sequelizeOptions ? config.sequelizeOptions : {})
                                        if (!rawModels && config.spatial) {
                                          db.stop = db.sequelize.import('models/spatial/stop.js')
                                    Severity: Minor
                                    Found in index.js - About 1 hr to fix

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

                                      module.exports = function(sequelize, DataTypes) {
                                        var Route = sequelize.define("route", {
                                          route_id: {
                                            type: DataTypes.STRING(255),
                                            primaryKey: true
                                      Severity: Minor
                                      Found in models/route.js - About 1 hr to fix
                                        Severity
                                        Category
                                        Status
                                        Source
                                        Language