@returns {Data}
()
| 60 | |
| 61 | /** @returns {Data} */ |
| 62 | load() { |
| 63 | this.languages = globs.sync(path.join(this.coursePath, '*/')).map(languagePath => { |
| 64 | const language = new Language({ |
| 65 | framework: this.framework, |
| 66 | languagePath, |
| 67 | courseDir: this.courseDir, |
| 68 | jsonext: this.jsonext, |
| 69 | trackingIdType: this.trackingIdType, |
| 70 | log: this.log |
| 71 | }); |
| 72 | language.load(); |
| 73 | return language; |
| 74 | }).filter(lang => lang.isValid); |
| 75 | this.configFile = new JSONFile({ |
| 76 | framework: this.framework, |
| 77 | path: path.join(this.coursePath, `config.${this.jsonext}`), |
| 78 | jsonext: this.jsonext |
| 79 | }); |
| 80 | this.configFile.load(); |
| 81 | return this; |
| 82 | } |
| 83 | |
| 84 | /** @type {boolean} */ |
| 85 | get hasChanged() { |
no test coverage detected