UNPKG

nlts

Version:

CommandLine Tool for Node LTS

52 lines (43 loc) 1.59 kB
const axios = require('axios'); const path = require('path'); const fs = require('fs'); const compareVersions = require('compare-versions'); const terminalLink = require('terminal-link'); const color = require('cli-color'); /** * 获取官方所有的lts版本, 并且大于等于指定版本。 */ const query = async (v, useLocal) => { // 去官方获取所有的Node版本 // 获取nodejs.org内容太慢了,直接拷贝了一份。 // const result = await axios.get('https://nodejs.org/dist/index.json'); // const baidu = await axios.get('https://www.baidu.com/'); // console.log(baidu.data); let data; if (useLocal) { let dataPath = path.join(__dirname, '../data/index.json'); data = fs.readFileSync(dataPath).toString(); data = JSON.parse(data); } else { data = await axios.get('https://nodejs.org/dist/index.json'); data = data.data; } // console.log(Object.keys(data),'===') let cv = v.split('.'); let cvArray = ['0', '0', '0']; let i = 0; while (i < cv.length) { cvArray[i] = cv[i]; i++; } return data.filter(node => { const cp = v ? (compareVersions(node.version, 'v' + cvArray.join('.')) >= 0) : true; return node.lts && cp; }).map(it => { const { files, ...rest } = it; const link = `https://nodejs.org/dist/${it.version}/docs/api/documentation.html`; const doc = color.yellow(terminalLink(`API(${link})`, link)); return { ...rest, doc } }) } module.exports = query;