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.method} ${item.path}
${item.description}
field |
type |
required |
${vars}
`
});
});
const writeText = `
${config.info.sitename} - API Docs
`;
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));
}