From 69aa51d5e6dacc7450279e24df179bdb4f033c77 Mon Sep 17 00:00:00 2001 From: kwonoj Date: Mon, 19 Oct 2015 21:25:01 -0700 Subject: [PATCH] chore(code coverage): remap multi staged commonjs sourcemap into original typescript code closes #558 --- .travis.yml | 1 - lib/stage_sourcemap.js | 22 ++++++++++++++++++++++ package.json | 5 ++++- 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 lib/stage_sourcemap.js diff --git a/.travis.yml b/.travis.yml index 04d5befc59..a5627be12b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,5 +20,4 @@ script: - npm run build_cover after_script: - - ./node_modules/.bin/remap-istanbul -i coverage/coverage.json -o coverage/coverage-remapped.json && ./node_modules/.bin/remap-istanbul -i coverage/coverage.json -o coverage/coverage-remapped.lcov -t lcovonly && ./node_modules/.bin/remap-istanbul -i coverage/coverage.json -o coverage/coverage-remapped -t html - cat ./coverage/coverage-remapped.lcov | ./node_modules/coveralls/bin/coveralls.js diff --git a/lib/stage_sourcemap.js b/lib/stage_sourcemap.js new file mode 100644 index 0000000000..b2cd15b635 --- /dev/null +++ b/lib/stage_sourcemap.js @@ -0,0 +1,22 @@ +var fs = require('fs-extra'); +var glob = require('glob'); +var jsonfile = require('jsonfile'); +var transfer = require('multi-stage-sourcemap').transfer; + +glob('dist/es6/**/*.js.map', null, function (er, files) { + files.forEach(function (file) { + var source = jsonfile.readFileSync(file); + var destFile = file.replace('es6', 'cjs'); + var dest = jsonfile.readFileSync(destFile); + + var transferred = transfer({ fromSourceMap: JSON.stringify(dest), + toSourceMap: JSON.stringify(source) }); + + fs.unlink(destFile); + jsonfile.writeFile(destFile, transferred, function (err) { + if (err) { + console.log(err); + } + }); + }); +}); \ No newline at end of file diff --git a/package.json b/package.json index 7b975b900d..0a1b8373e0 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "lint_spec": "eslint spec/**/*.js --fix", "lint_src": "tslint -c .tslintrc src/**/*.ts", "lint": "npm run lint_src && npm run lint_spec && npm run lint_perf", - "cover": "istanbul cover -x \"*-spec.js index.js *-helper.js\" jasmine", + "cover": "istanbul cover -x \"*-spec.js index.js *-helper.js\" jasmine && npm run cover_remapping", + "cover_remapping": "node lib/stage_sourcemap.js && remap-istanbul -i coverage/coverage.json -o coverage/coverage-remapped.json && remap-istanbul -i coverage/coverage.json -o coverage/coverage-remapped.lcov -t lcovonly && remap-istanbul -i coverage/coverage.json -o coverage/coverage-remapped -t html", "test": "jasmine", "watch": "watch \"echo triggering build && npm run build_test && echo build completed\" src -d -u -w=15", "perf": "protractor protractor.conf.js", @@ -82,7 +83,9 @@ "istanbul": "0.3.22", "jasmine": "2.3.2", "jasmine-core": "2.3.4", + "jsonfile": "2.2.2", "lodash": "3.5.0", + "multi-stage-sourcemap": "0.2.1", "platform": "1.3.0", "promise": "7.0.3", "protractor": "2.2.0",