const saveFile = require('fs').writeFileSync; const fs = require('fs') exports.createDocumentation = function(endpoints, config) { // console.log(endpoints[0]['name']) let data = ""; endpoints.map(endpoint => { const endp = (JSON.parse(endpoint)) endp.map(item => { let vars = item.fields.reduce((acc, field) => acc += ` ${field.name} ${field.type} ${field.required} `, "") data = data + `

${item.name}

${item.method} ${item.path}

${item.description}

${vars}
field type required
` }); }); const writeText = ` ${config.info.sitename} - API Docs

${config.info.sitename}

Logo

${config.info.sitedescription}

${data}
`; fs.writeFileSync(config.outputfile, writeText, function (err) { if (err) throw err; console.log('File is created successfully.'); }); // console.log(writeText) } exports.initFiles = function() { try { fs.readFileSync('../../doc_config.js') } catch (error) { fs.writeFileSync('../../doc_config.js', ` const netlifydoc = require('serverless-functions-api-docs/index'); const config = { basedir: "functions", outputfile: "index.html", info: { sitename: "SITE NAME", logourl: "SITELOGO URL", sitedescription: "SITE DESCRIPTION" } } netlifydoc.createDoc(config); `, function (err) { if (err) throw err; console.log('Configuration file is created successfully.'); }); } } exports.updatePackage = function() { const pkgJsonPath = require.main.paths[0].split('node_modules')[0] + 'package.json'; const json = require(pkgJsonPath); if (!json.hasOwnProperty('scripts')) { json.scripts = {}; } json.scripts['createdoc'] = 'node doc_config.js'; saveFile(pkgJsonPath, JSON.stringify(json, null, 2)); }