elder-orm/core

View on GitHub

Showing 14 of 31 total issues

File model.ts has 515 lines of code (exceeds 250 allowed). Consider refactoring.
Open

import Adapter from './adapter'
import Serializer from './serializer'
import Type from './type'
import Base from './base'
import Collection from './collection'
Severity: Major
Found in src/classes/model.ts - About 1 day to fix

    Model has 47 functions (exceeds 20 allowed). Consider refactoring.
    Open

    export default class Model extends Base {
      static idField: string = 'id'
      static adapter: Adapter
      static serializers: serializers
      static meta: modelMeta = {
    Severity: Minor
    Found in src/classes/model.ts - About 6 hrs to fix

      PostgresAdapter has 30 functions (exceeds 20 allowed). Consider refactoring.
      Open

      export default class PostgresAdapter extends Adapter {
        knex: Knex
      
        constructor(config: databaseConfig) {
          super(config)
      Severity: Minor
      Found in src/adapters/postgres.ts - About 3 hrs to fix

        Adapter has 24 functions (exceeds 20 allowed). Consider refactoring.
        Open

        export default class Adapter {
          config: databaseConfig
        
          constructor(config: databaseConfig) {
            this.config = config
        Severity: Minor
        Found in src/classes/adapter.ts - About 2 hrs to fix

          File postgres.ts has 269 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          import Adapter, {
            DatabaseConnectionError,
            databaseConfig,
            optsMultiple,
            optsSingle,
          Severity: Minor
          Found in src/adapters/postgres.ts - About 2 hrs to fix

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

            export default function type(
              typeName: string,
              options?: { [name: string]: any }
            ): (target: Model, propertyKey: string) => void {
              return function typeDecorator(target: any, propertyKey: string): void {
            Severity: Minor
            Found in src/decorators/type.ts - About 1 hr to fix

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

                return function typeDecorator(target: any, propertyKey: string): void {
                  const Ctor = target.constructor as typeof Model
              
                  const instance: any = Ctor.create()
                  if (instance[propertyKey]) {
              Severity: Minor
              Found in src/decorators/type.ts - About 1 hr to fix

                Function createSome has 26 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                  static async createSome(records: props[]): Promise<number> {
                    for (let [index, props] of records.entries()) {
                      for (const prop of Reflect.ownKeys(props)) {
                        if (!Reflect.ownKeys(this.meta.types).includes(prop)) {
                          throw new Error(`
                Severity: Minor
                Found in src/classes/model.ts - About 1 hr to fix

                  Function defineId has 26 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                    static defineId() {
                      const Ctor = this
                      Reflect.defineProperty(this.prototype, Ctor.idField, {
                        get() {
                          const that: any = this
                  Severity: Minor
                  Found in src/classes/model.ts - About 1 hr to fix

                    Function type has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
                    Open

                    export default function type(
                      typeName: string,
                      options?: { [name: string]: any }
                    ): (target: Model, propertyKey: string) => void {
                      return function typeDecorator(target: any, propertyKey: string): void {
                    Severity: Minor
                    Found in src/decorators/type.ts - About 45 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

                    Function createOne has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                    Open

                      static async createOne<T extends typeof Model>(
                        this: T,
                        props: props
                      ): Promise<T['prototype']> {
                        for (const prop of Reflect.ownKeys(props)) {
                    Severity: Minor
                    Found in src/classes/model.ts - About 35 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

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

                      static updateSome(where: props, props: props): Promise<number> {
                        for (const prop of Reflect.ownKeys(where)) {
                          if (!Reflect.ownKeys(this.meta.types).includes(prop)) {
                            throw new Error(`
                              Invalid key '${prop}' defined on 'where' given to 'Model.updateSome'.
                    Severity: Minor
                    Found in src/classes/model.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

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

                      static updateOne(where: props, props: props): Promise<number> {
                        for (const prop of Reflect.ownKeys(where)) {
                          if (!Reflect.ownKeys(this.meta.types).includes(prop)) {
                            throw new Error(`
                              Invalid key '${prop}' defined on 'where' given to 'Model.updateOne'.
                    Severity: Minor
                    Found in src/classes/model.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

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

                      static async createSome(records: props[]): Promise<number> {
                        for (let [index, props] of records.entries()) {
                          for (const prop of Reflect.ownKeys(props)) {
                            if (!Reflect.ownKeys(this.meta.types).includes(prop)) {
                              throw new Error(`
                    Severity: Minor
                    Found in src/classes/model.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