From 799fe92c218abc14ec6a24f372f4ff393ef5c4f7 Mon Sep 17 00:00:00 2001 From: Alan Hamlett Date: Sun, 11 Mar 2018 13:40:48 -0700 Subject: [PATCH] support for TypeScript dependencies --- tests/samples/codefiles/typescript.ts | 37 +++++++++++++++++++++++++++ tests/test_dependencies.py | 20 +++++++++++++++ wakatime/dependencies/__init__.py | 2 -- wakatime/dependencies/javascript.py | 4 +++ 4 files changed, 61 insertions(+), 2 deletions(-) diff --git a/tests/samples/codefiles/typescript.ts b/tests/samples/codefiles/typescript.ts index e69de29..db546a2 100644 --- a/tests/samples/codefiles/typescript.ts +++ b/tests/samples/codefiles/typescript.ts @@ -0,0 +1,37 @@ +import Alpha from './bravo' +import { charlie, delta } from '../../echo/foxtrot' +import golf from './hotel/india.js' +import juliett from 'kilo' +import { + lima, + mike, +} from './november' +import * from '/modules/oscar' +import * as papa from 'quebec' +import {romeo as sierra} from from 'tango.jsx' +import 'uniform.js' +import victorDefault, * as victorModule from '/modules/victor.js' +import whiskeyDefault, {whiskeyOne, whiskeyTwo} from 'whiskey' + +const propTypes = {} + +const defaultProps = {} + +class Link extends Alpha.Component { + static method() { + return true + } + + render() { + return ( + + {this.props.text} + + ) + } +} + +Link.propTypes = propTypes +Link.defaultProps = defaultProps + +export default Link diff --git a/tests/test_dependencies.py b/tests/test_dependencies.py index 751935b..2ad2ef5 100644 --- a/tests/test_dependencies.py +++ b/tests/test_dependencies.py @@ -377,3 +377,23 @@ class DependenciesTestCase(TestCase): expected_lines=37, entity='es6.js', ) + + def test_typescript_dependencies_detected(self): + self.shared( + expected_dependencies=[ + 'bravo', + 'foxtrot', + 'india', + 'kilo', + 'november', + 'oscar', + 'quebec', + 'tango', + 'uniform', + 'victor', + 'whiskey', + ], + expected_language='TypeScript', + expected_lines=37, + entity='typescript.ts', + ) diff --git a/wakatime/dependencies/__init__.py b/wakatime/dependencies/__init__.py index b7653bc..b590ecb 100644 --- a/wakatime/dependencies/__init__.py +++ b/wakatime/dependencies/__init__.py @@ -123,8 +123,6 @@ class DependencyParser(object): @property def root_lexer(self): - if not self.lexer: - return None if hasattr(self.lexer, 'root_lexer'): return self.lexer.root_lexer return self.lexer diff --git a/wakatime/dependencies/javascript.py b/wakatime/dependencies/javascript.py index 0627788..75ef535 100644 --- a/wakatime/dependencies/javascript.py +++ b/wakatime/dependencies/javascript.py @@ -54,3 +54,7 @@ class JavascriptParser(TokenParser): content = content.split('/')[-1].split('\\')[-1] content = self.extension.sub('', content, count=1) return content + + +class TypeScriptParser(JavascriptParser): + pass