Socket
Socket
Sign inDemoInstall

apidoc-core

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

apidoc-core - npm Package Compare versions

Comparing version 0.2.1 to 0.2.2

lib/languages/clj.js

126

lib/index.js

@@ -19,3 +19,3 @@ var _ = require('lodash');

excludeFilters: [],
includeFilters: [ '.*\\.(coffee|cs|dart|erl|go|java|js|php?|py|rb|ts|pm)$' ],
includeFilters: [ '.*\\.(clj|coffee|cs|dart|erl|go|java|js|php?|py|rb|ts|pm)$' ],

@@ -25,2 +25,3 @@ src: path.join(__dirname, '../example/'),

filters: {},
languages: {},
parsers: {},

@@ -32,3 +33,3 @@ workers: {}

options : {},
log : {},
log : logger,
generator : {},

@@ -43,2 +44,11 @@ packageInfos: {},

},
languages: {
'.clj' : './languages/clj.js',
'.coffee' : './languages/coffee.js',
'.erl' : './languages/erl.js',
'.pm' : './languages/pm.js',
'.py' : './languages/py.js',
'.rb' : './languages/rb.js',
'default' : './languages/default.js'
},
parsers: {

@@ -101,6 +111,6 @@ api : './parsers/api.js',

var defaultGenerator = {
version: '0.0.0',
name : 'apidoc',
time : new Date(),
name : 'apidoc',
url : 'http://apidocjs.com'
url : 'http://apidocjs.com',
version: '0.0.0'
};

@@ -110,9 +120,27 @@

var defaultPackageInfos = {
description: '',
name : '',
version : '0.0.0',
description: '',
sampleUrl : false
sampleUrl : false,
version : '0.0.0'
};
// Simple logger interace
var logger = {
debug : function() { console.log(arguments); },
verbose: function() { console.log(arguments); },
info : function() { console.log(arguments); },
warn : function() { console.log(arguments); },
error : function() { console.log(arguments); }
};
/**
* Return the used specification version
*
* @returns {String}
*/
function getSpecificationVersion() {
return SPECIFICATION_VERSION;
}
/**
* Parser

@@ -122,8 +150,3 @@ *

* @param {Object} logger Logger (with methods: debug, verbose, info, warn and error is necessary).
* @param {Object} [packageInfos] Collected from apidoc.json / package.json.
* @param {String} [packageInfos.name] Project name.
* @param {String} [packageInfos.version] Version (semver) of the project, e.g. 1.0.27
* @param {String} [packageInfos.description] A short description.
* @param {String} [packageInfos.sampleUrl] @see http://apidocjs.com/#param-api-sample-request
* @param {Object} [markdown] Markdown parser.
* @returns {Mixed} true = ok, but nothing todo | false = error | Object with parsed data and project-informations.

@@ -135,9 +158,10 @@ * {

*/
function parse(options, logger, generator, packageInfos, markdown) {
function parse(options) {
_.defaults(options, defaults);
// extend with custom functions
app.filters = _.defaults(options.filters, app.filters);
app.parsers = _.defaults(options.parsers, app.parsers);
app.workers = _.defaults(options.workers, app.workers);
app.filters = _.defaults(options.filters, app.filters);
app.languages = _.defaults(options.languages, app.languages);
app.parsers = _.defaults(options.parsers, app.parsers);
app.workers = _.defaults(options.workers, app.workers);

@@ -147,16 +171,8 @@ // options

// logger
app.log = logger;
// generator
app.generator = generator || {};
_.defaults(app.generator, defaultGenerator);
// packageInfos
app.packageInfos = packageInfos || {};
_.defaults(app.packageInfos, defaultPackageInfos);
// markdown parser
app.markdown = markdown;
var parsedFiles = [];

@@ -277,5 +293,59 @@ var parsedFilenames = [];

/**
* Set generator informations.
*
* @param {Object} [generator] Generator informations.
* @param {String} [generator.name] Generator name (UI-Name).
* @param {String} [generator.time] Time for the generated doc
* @param {String} [generator.version] Version (semver) of the generator, e.g. 1.2.3
* @param {String} [generator.url] Url to the generators homepage
*/
function setGeneratorInfos(generator) {
app.generator = generator;
}
/**
* Set a logger.
*
* @param {Object} logger A Logger (@see https://github.com/flatiron/winston for details)
* Interface:
* debug(msg, meta)
* verbose(msg, meta)
* info(msg, meta)
* warn(msg, meta)
* error(msg, meta)
*/
function setLogger(logger) {
app.log = logger;
}
/**
* Set the markdown parser.
*
* @param {Object} [markdown] Markdown parser.
*/
function setMarkdownParser(markdown) {
app.markdown = markdown;
}
/**
* Set package infos.
*
* @param {Object} [packageInfos] Collected from apidoc.json / package.json.
* @param {String} [packageInfos.name] Project name.
* @param {String} [packageInfos.version] Version (semver) of the project, e.g. 1.0.27
* @param {String} [packageInfos.description] A short description.
* @param {String} [packageInfos.sampleUrl] @see http://apidocjs.com/#param-api-sample-request
*/
function setPackageInfos(packageInfos) {
app.packageInfos = packageInfos;
}
module.exports = {
parse: parse,
SPECIFICATION_VERSION: SPECIFICATION_VERSION
getSpecificationVersion: getSpecificationVersion,
parse : parse,
setGeneratorInfos : setGeneratorInfos,
setLogger : setLogger,
setMarkdownParser : setMarkdownParser,
setPackageInfos : setPackageInfos
};

@@ -20,2 +20,3 @@ var _ = require('lodash');

// class variables
self.languages = {};
self.parsers = {};

@@ -26,2 +27,10 @@ self.parsedFileElements = [];

// load languages
var languages = Object.keys(app.languages);
languages.forEach(function(language) {
var filename = app.languages[language];
app.log.debug('load parser language: ' + language + ', ' + filename);
self.addLanguage(language, require(filename));
});
// load parser

@@ -47,2 +56,9 @@ var parsers = Object.keys(app.parsers);

/**
* Add a Language
*/
Parser.prototype.addLanguage = function(name, language) {
this.languages[name] = language;
};
/**
* Add a Parser

@@ -343,49 +359,3 @@ */

var regexs = {
'.coffee': {
// find document blocks between '###' and '###'
// docBlocksRegExp: /###\uffff?(.+?)###/g,
docBlocksRegExp: /###\uffff?(.+?)\uffff(?:\s*)?###/g,
// remove not needed tabs at the beginning
inlineRegExp: /^(\t*)?/gm
},
'.erl': {
// Find document blocks between '%{' and '%}'
// docBlocksRegExp: /\%*\{\uffff?(.+?)\%+\}/g,
docBlocksRegExp: /\%*\{\uffff?(.+?)\uffff(?:\s*)?\%+\}/g,
// remove not needed ' % ' and tabs at the beginning
// HINT: Not sure if erlang developer use the %, but i think it should be no problem
inlineRegExp: /^(\s*)?(\%*)[ ]?/gm
},
'.py': {
// find document blocks between """ and """
// docBlocksRegExp: /\"\"\"\uffff?(.+?)\"\"\"/g,
docBlocksRegExp: /\"\"\"\uffff?(.+?)\uffff(?:\s*)?\"\"\"/g,
// remove not needed tabs at the beginning
inlineRegExp: /^(\t*)?/gm
},
'.rb': {
// find document blocks between '=begin' and '=end'
// docBlocksRegExp: /\=begin\uffff?(.+?)\=end/g,
docBlocksRegExp: /\=begin\uffff?(.+?)\uffff(?:\s*)?\=end/g,
// remove not needed tabs at the beginning
inlineRegExp: /^(\t*)?/gm
},
'.pm': {
// find document blocks between '#**' and '#*'
// or between '=pod' and '=cut'
// docBlocksRegExp: /#\*\*\uffff?(.+?)#\*|=pod\uffff?(.+?)=cut/g,
docBlocksRegExp: /#\*\*\uffff?(.+?)\uffff(?:\s*)?#\*|=pod\uffff?(.+?)\uffff(?:\s*)?=cut/g,
// remove not needed ' # ' and tabs at the beginning
inlineRegExp: /^(\s*)?(#)[ ]?/gm
},
'default': {
// find document blocks between '#**' and '#*'
// docBlocksRegExp: /\/\*\*\uffff?(.+?)\*\//g,
docBlocksRegExp: /\/\*\*\uffff?(.+?)\uffff(?:\s*)?\*\//g,
// remove not needed ' * ' and tabs at the beginning
inlineRegExp: /^(\s*)?(\*)[ ]?/gm
}
};
var regexForFile = regexs[self.extension] || regexs['default'];
var regexForFile = this.languages[self.extension] || this.languages['default'];
var matches = regexForFile.docBlocksRegExp.exec(src);

@@ -392,0 +362,0 @@ while (matches) {

{
"name": "apidoc-core",
"version": "0.2.1",
"version": "0.2.2",
"description": "Core parser library to generate apidoc result following the apidoc-spec",

@@ -21,3 +21,3 @@ "author": "Peter Rottmann <rottmann@inveris.de>",

"test": "npm run jshint && mocha test/",
"jshint": "jshint lib/ test/ --exclude test/fixtures/"
"jshint": "jshint lib/ test/"
},

@@ -24,0 +24,0 @@ "keywords": [

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc