1 | const path = require('path')
|
2 | const fs = require('fs-extra')
|
3 | const extractVersions = require('./extract-versions')
|
4 | const extractAplVersions = require('./extract-apl-versions')
|
5 | const upToDate = require('../doctor/up-to-date')
|
6 | const latestBlinkCli = require('../doctor/latest-blink-cli')
|
7 |
|
8 | module.exports = async ({ program, pkg }) => {
|
9 | const srcPath = path.join(program.cwd, 'src')
|
10 | const allFiles = await fs.readdir(srcPath)
|
11 | let blinkFile, aplFile, blinkData, aplData
|
12 |
|
13 | if (allFiles.includes('blink.js')) blinkFile = 'blink.js'
|
14 | else blinkFile = allFiles.filter((file) => file.match(/blink-*/))[0]
|
15 | if (!blinkFile) return Promise.reject(new Error('No valid blink file found'))
|
16 | blinkData = await fs.readFile(path.join(srcPath, blinkFile), { encoding: 'utf8' })
|
17 | const data = extractVersions(blinkData, pkg)
|
18 | data.using = blinkFile
|
19 | data.starterKits.outdated = !upToDate(data.starterKits.version, pkg.starterKitVersion.slice(1))
|
20 | data.blinkCli.outdated = !upToDate(pkg.version, await latestBlinkCli(pkg))
|
21 |
|
22 | if (allFiles.includes('apl.js')) aplFile = 'apl.js'
|
23 | if (aplFile) {
|
24 | aplData = await fs.readFile(path.join(srcPath, aplFile), { encoding: 'utf8' })
|
25 | Object.assign(data, extractAplVersions(aplData, pkg))
|
26 | data.using += ` & ${aplFile}`
|
27 | }
|
28 | return data
|
29 | }
|