From 0009f168e47225e8d0fe21ac221d9523100ca6be Mon Sep 17 00:00:00 2001 From: Ryan Davis Date: Mon, 21 May 2018 13:21:45 -0700 Subject: [PATCH] Simple refactoring between javascript and typescript. They're identical except for data in consts. This had to switch up how the consts were accessed on the JS side but is semantically the same, just more explicit. --- lib/cc/engine/analyzers/javascript/main.rb | 8 ++-- lib/cc/engine/analyzers/typescript/main.rb | 51 +++------------------- 2 files changed, 9 insertions(+), 50 deletions(-) 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