UNPKG

1.28 kBJavaScriptView Raw
1const path = require('path')
2const fs = require('fs-extra')
3const extractVersions = require('./extract-versions')
4const extractAplVersions = require('./extract-apl-versions')
5const upToDate = require('../doctor/up-to-date')
6const latestBlinkCli = require('../doctor/latest-blink-cli')
7
8module.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}