UNPKG

puppy-api-docs

Version:

Genernate material api docs from your comments.

36 lines (32 loc) 1.58 kB
#!/usr/bin/env node const comments = require('./lib/comments'); const fs = require('fs'); const Doc = require('./models/doc'); const TemplateGenerator = require('./lib/templateGenerator'); const FileManager = require('./lib/fileManager'); const Handlebars = require('handlebars'); const HandlerbarsHelpers = require('./utils/handlebarsHelpers'); const ArgumentParser = require('./lib/argumentsParser'); const DocUtils = require('./lib/docUtils'); const path = require('path'); Handlebars.registerHelper(HandlerbarsHelpers); const meta = ArgumentParser.processArguments(process.argv); const jsFiles = FileManager.readJsFiles(meta.processingPath); const docs = []; console.log("JS files found:\n", jsFiles); jsFiles.forEach((file) => { console.log('Processing file:', file); if (file.indexOf('/api_docs/lib/comments.js') === -1) { const input = FileManager.readAsString(file); const parseResult = comments(input); const docsFromResult = parseResult.comments.map((comment) => docs.push(new Doc(comment))); docs.concat(docsFromResult); } }); const groupedDocs = DocUtils.groupDocs(docs); const html = TemplateGenerator.generateDocPage(groupedDocs); FileManager.checkAndCreateFolder(path.join(process.cwd(), 'api_docs')); FileManager.saveFile('doc.html', path.join(process.cwd(), 'api_docs'), html); FileManager.copyFolder(path.join(path.dirname(require.main.filename),'assets/css'), path.join(process.cwd(), 'api_docs/css')); console.log('\nDocumentation Generated!'); console.log('Path: ', path.join(process.cwd(), 'api_docs'), '\n');