node-libcurl
Version:
The fastest http(s) client (and much more) for Node.js - Node.js bindings for libcurl
52 lines (39 loc) • 1.26 kB
JavaScript
const cheerio = require('cheerio')
const { curly, CurlHttpVersion } = require('../../dist')
const {
convertCurlConstantToCamelCase,
} = require('./convertCurlConstantToCamelCase')
const retrieveConstantList = async ({ url, constantPrefix, blacklist }) => {
const { data } = await curly.get(url, {
SSL_VERIFYPEER: false,
})
const $ = cheerio.load(data)
const constants = $('.nroffip')
return constants
.map((i, el) => {
const $descriptionEl = $(el).parent().next()
$descriptionEl.find('a').remove()
const description = $descriptionEl
.text()
.trim()
.replace(/See$/, '')
.replace(/>/g, '\\>')
.trim()
const constantOriginal = $(el).text()
const constantName = constantOriginal.replace(constantPrefix, '')
const url = `https://curl.haxx.se/libcurl/c/${constantOriginal}.html`
return {
constantOriginal,
constantName,
constantNameCamelCase: convertCurlConstantToCamelCase(constantName),
description,
url,
}
})
.get()
.sort((a, b) => a.constantName.localeCompare(b.constantName))
.filter((item) => !blacklist.includes(item.constantOriginal))
}
module.exports = {
retrieveConstantList,
}