diff --git a/lib/cc/engine/analyzers/javascript/main.rb b/lib/cc/engine/analyzers/javascript/main.rb index 00873f51..12c75f48 100644 --- a/lib/cc/engine/analyzers/javascript/main.rb +++ b/lib/cc/engine/analyzers/javascript/main.rb @@ -44,18 +44,18 @@ def transform_sexp(sexp) sexp end - private + protected def process_file(file) - parse(file, REQUEST_PATH) + parse(file, self.class::REQUEST_PATH) end def default_filters - DEFAULT_FILTERS.map { |filter| Sexp::Matcher.parse filter } + self.class::DEFAULT_FILTERS.map { |filter| Sexp::Matcher.parse filter } end def default_post_filters - DEFAULT_POST_FILTERS.map { |filter| Sexp::Matcher.parse filter } + self.class::DEFAULT_POST_FILTERS.map { |filter| Sexp::Matcher.parse filter } end end end diff --git a/lib/cc/engine/analyzers/typescript/main.rb b/lib/cc/engine/analyzers/typescript/main.rb index f7838dbc..240dff50 100644 --- a/lib/cc/engine/analyzers/typescript/main.rb +++ b/lib/cc/engine/analyzers/typescript/main.rb @@ -1,61 +1,20 @@ # frozen_string_literal: true -require "cc/engine/analyzers/analyzer_base" +require "cc/engine/analyzers/javascript/main" module CC module Engine module Analyzers - module TypeScript - class Main < CC::Engine::Analyzers::Base + module TypeScript # TODO: inconsistent naming w/ Javascript + class Main < CC::Engine::Analyzers::Javascript::Main PATTERNS = [ "**/*.ts", "**/*.tsx", ].freeze - LANGUAGE = "typescript" - DEFAULT_MASS_THRESHOLD = 45 - DEFAULT_FILTERS = [ - "(ImportDeclaration ___)".freeze, - "(VariableDeclarator _ (init (CallExpression (_ (Identifier require)) ___)))".freeze, - ].freeze - DEFAULT_POST_FILTERS = [ - "(NUKE ___)".freeze, - "(Program _ ___)".freeze, - ].freeze - POINTS_PER_OVERAGE = 30_000 - REQUEST_PATH = "/typescript".freeze - - def use_sexp_lines? - false - end - - ## - # Transform sexp as such: - # - # s(:Program, :module, s(:body, ... )) - # => s(:NUKE, s(:Program, :module, s(:NUKE, ... ))) - - def transform_sexp(sexp) - return sexp unless sexp.body - sexp.body.sexp_type = :NUKE # negate top level body - sexp = s(:NUKE, sexp) # wrap with extra node to force full process - - sexp - end - - private - - def process_file(file) - parse(file, REQUEST_PATH) - end - - def default_filters - DEFAULT_FILTERS.map { |filter| Sexp::Matcher.parse filter } - end + LANGUAGE = "typescript" - def default_post_filters - DEFAULT_POST_FILTERS.map { |filter| Sexp::Matcher.parse filter } - end + REQUEST_PATH = "/typescript".freeze end end end