22var path = require ( 'path' ) ;
33var fs = require ( 'fs' ) ;
44var exists_1 = require ( '../services/exists' ) ;
5+ var tutorialError = 'This is an error with the tutorial itself' ;
56function packageJsonExists ( ) {
67 var pathToPackageJson = path . join ( window . coderoad . dir , 'package.json' ) ;
78 return exists_1 . fileExists ( pathToPackageJson ) ;
@@ -17,14 +18,31 @@ function loadRootPackageJson() {
1718exports . loadRootPackageJson = loadRootPackageJson ;
1819function _isTutorial ( name ) {
1920 var pathToTutorialPackageJson = path . join ( window . coderoad . dir , 'node_modules' , name , 'package.json' ) ;
20- if ( exists_1 . fileExists ( pathToTutorialPackageJson ) ) {
21- var packageJson = JSON . parse ( fs . readFileSync ( pathToTutorialPackageJson , 'utf8' ) ) ;
22- if ( packageJson . main && packageJson . main . match ( / c o d e r o a d .j s o n $ / ) ) {
23- var pathToCoderoadJson = path . join ( window . coderoad . dir , 'node_modules' , name , packageJson . main ) ;
24- return exists_1 . fileExists ( pathToCoderoadJson ) ;
25- }
26- }
27- return false ;
21+ if ( ! exists_1 . fileExists ( pathToTutorialPackageJson ) ) {
22+ console . log ( "Error with " + name + ": no package.json file found. " + tutorialError ) ;
23+ return false ;
24+ }
25+ var packageJson = JSON . parse ( fs . readFileSync ( pathToTutorialPackageJson , 'utf8' ) ) ;
26+ if ( ! packageJson . main && packageJson . main . match ( / c o d e r o a d .j s o n $ / ) ) {
27+ console . log ( "Error with " + name + ": main does not load a coderoad.json file. " + tutorialError ) ;
28+ return false ;
29+ }
30+ var pathToCoderoadJson = path . join ( window . coderoad . dir , 'node_modules' , name , packageJson . main ) ;
31+ if ( ! exists_1 . fileExists ( pathToCoderoadJson ) ) {
32+ console . log ( "Error with " + name + ": no coderoad.json file. " + tutorialError ) ;
33+ return false ;
34+ }
35+ ;
36+ if ( ! packageJson . config || ! packageJson . config . testRunner ) {
37+ console . log ( "Error with " + name + ": no test runner specified. " + tutorialError ) ;
38+ return false ;
39+ }
40+ var pathToTestRunner = path . join ( window . coderoad . dir , 'node_modules' , packageJson . config . testRunner ) ;
41+ if ( ! exists_1 . fileExists ( pathToTestRunner ) ) {
42+ console . log ( "Error with " + name + ": " + packageJson . config . testRunner + " test runner not installed" ) ;
43+ return false ;
44+ }
45+ return true ;
2846}
2947function searchForTutorials ( deps ) {
3048 if ( ! ! deps && Object . keys ( deps ) . length > 0 ) {
0 commit comments