From f2dc9cd69deda10f7d578fefa9de714982ff0910 Mon Sep 17 00:00:00 2001 From: SvetoslavTsenov Date: Wed, 23 Jan 2019 13:35:35 +0200 Subject: [PATCH 1/2] test: circular deps --- tests/circular-check.js | 37 +++++++++++++++++++++++++++++++++++++ tests/package.json | 5 ++++- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 tests/circular-check.js diff --git a/tests/circular-check.js b/tests/circular-check.js new file mode 100644 index 000000000..e9a4a7b78 --- /dev/null +++ b/tests/circular-check.js @@ -0,0 +1,37 @@ +const madge = require('madge'); +const path = require("path"); +const fs = require("fs"); + +const workingDirecotry = process.cwd(); +const androidApp = path.join(workingDirecotry, "platforms/android/app/src/main/assets/app/tns_modules/tns-core-modules"); +const iosApp = path.join(workingDirecotry, "platforms/ios/tests/app/tns_modules/tns-core-modules"); + +const iosWhiteList = ['image-source/image-source.js', + 'http/http.js', + 'http/http-request/http-request.js']; + +const androidWhiteList = ['ui/frame/frame.js', 'ui/frame/fragment.js']; + +const checkAppForCircualr = async (appName, whiteList) => { + if (!fs.existsSync(appName)) { + console.error(`${appName} doesn't exists!`); + return; + } + + const result = await madge(appName); + const circular = result.circular(); + console.info(`Check ${appName}`); + console.log(`Initial check: `, circular); + + const filteredResult = circular && circular.length > 0 && (whiteList ? circular.filter(c => whiteList.indexOf(c) >= 0) : circular); + + if (circular && circular.length > 0 && filteredResult.length > 0) { + console.log(`Found circular deps!`, filteredResult); + process.exit(1); + } else { + console.log(`Check of circular deps after filtering white list: `, filteredResult); + } +} + +(async () => await checkAppForCircualr(androidApp, androidWhiteList))(); +(async () => await checkAppForCircualr(iosApp, iosWhiteList))(); \ No newline at end of file diff --git a/tests/package.json b/tests/package.json index e5d9d7690..3f6cb8562 100644 --- a/tests/package.json +++ b/tests/package.json @@ -24,5 +24,8 @@ "lazy": "1.0.11", "tns-platform-declarations": "*", "typescript": "^3.1.6" + }, + "scripts": { + "check-circular-deps": "node circular-check.js" } -} +} \ No newline at end of file From 21494f946cbf710948f2e4bed32460717160ce7a Mon Sep 17 00:00:00 2001 From: SvetoslavTsenov Date: Wed, 23 Jan 2019 13:59:07 +0200 Subject: [PATCH 2/2] chore: log of deps --- tests/circular-check.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tests/circular-check.js b/tests/circular-check.js index e9a4a7b78..cfc644ab8 100644 --- a/tests/circular-check.js +++ b/tests/circular-check.js @@ -6,11 +6,15 @@ const workingDirecotry = process.cwd(); const androidApp = path.join(workingDirecotry, "platforms/android/app/src/main/assets/app/tns_modules/tns-core-modules"); const iosApp = path.join(workingDirecotry, "platforms/ios/tests/app/tns_modules/tns-core-modules"); -const iosWhiteList = ['image-source/image-source.js', - 'http/http.js', - 'http/http-request/http-request.js']; +const iosWhiteList = ['image-source/image-source.js']; +const androidWhiteList = ['image-source/image-source.js', 'ui/frame/frame.js']; -const androidWhiteList = ['ui/frame/frame.js', 'ui/frame/fragment.js']; +const printResult = (allCircleDeps) => { + allCircleDeps.forEach(circleDeps => { + const log = circleDeps.join(" -> "); + console.log(log); + }); +} const checkAppForCircualr = async (appName, whiteList) => { if (!fs.existsSync(appName)) { @@ -23,13 +27,13 @@ const checkAppForCircualr = async (appName, whiteList) => { console.info(`Check ${appName}`); console.log(`Initial check: `, circular); - const filteredResult = circular && circular.length > 0 && (whiteList ? circular.filter(c => whiteList.indexOf(c) >= 0) : circular); + const filteredResult = circular && circular.length > 0 && (whiteList ? circular.filter(c => whiteList.indexOf(c[0]) < 0) : circular); if (circular && circular.length > 0 && filteredResult.length > 0) { - console.log(`Found circular deps!`, filteredResult); + + console.log(`Found circular deps!`); + printResult(filteredResult); process.exit(1); - } else { - console.log(`Check of circular deps after filtering white list: `, filteredResult); } }