Comparing version 2.0.0-rc.6 to 2.0.0-rc.7
@@ -50,2 +50,6 @@ # Changelog | ||
## 1.10.6 | ||
* Ensure proper type checking for `@see` annotation ([#291](https://github.com/SassDoc/sassdoc/issues/232)) | ||
## 1.10.3 | ||
@@ -52,0 +56,0 @@ |
@@ -68,7 +68,3 @@ "use strict"; | ||
variables = variables.map(typeNameObject('variable')); | ||
var all = []; | ||
all = all.concat(mixins); | ||
all = all.concat(functions); | ||
all = all.concat(placeholders); | ||
all = all.concat(variables); | ||
var all = [].concat(mixins, functions, placeholders, variables); | ||
all = all.filter((function(x) { | ||
@@ -75,0 +71,0 @@ return x !== undefined; |
@@ -14,6 +14,15 @@ "use strict"; | ||
var match = seeRegEx.exec(text); | ||
return { | ||
var obj = { | ||
type: match[1] || 'function', | ||
name: match[2] | ||
}; | ||
if (obj.name.indexOf('$') === 0) { | ||
obj.type = 'variable'; | ||
obj.name = obj.name.slice(1); | ||
} | ||
if (obj.name.indexOf('%') === 0) { | ||
obj.type = 'placeholder'; | ||
obj.name = obj.name.slice(1); | ||
} | ||
return obj; | ||
}, | ||
@@ -20,0 +29,0 @@ resolve: function(data) { |
@@ -8,9 +8,10 @@ "use strict"; | ||
}); | ||
var doc = "\nUsage: sassdoc <src> <dest> [options]\n\nArguments:\n <src> Path to your Sass folder.\n <dest> Path to the destination folder.\n\nOptions:\n -h, --help Bring help.\n --version Show version.\n -v, --verbose Enable verbose mode.\n -i, --interactive Prompt to remove an existing destination directory.\n -f, --force Always remove an existing destination directory\n without asking.\n -c, --config=<path> Path to JSON/YAML configuration file.\n -t, --theme=<name> Theme to use.\n --no-update-notifier Disable update notifier check.\n"; | ||
var doc = "\nUsage: sassdoc <src> <dest> [options]\n\nArguments:\n <src> Path to your Sass folder.\n <dest> Path to the destination folder.\n\nOptions:\n -h, --help Bring help.\n --version Show version.\n -v, --verbose Enable verbose mode.\n -i, --interactive Prompt to remove an existing destination directory.\n -f, --force Always remove an existing destination directory\n without asking.\n -c, --config=<path> Path to JSON/YAML configuration file.\n -t, --theme=<name> Theme to use.\n --no-update-notifier Disable update notifier check.\n --strict Turn warnings into errors.\n"; | ||
var docopt = require('docopt').docopt; | ||
var pkg = require('../package.json'); | ||
var cfg = require('./cfg'); | ||
var Environment = require('./environment').default; | ||
var Logger = require('./logger').default; | ||
var sassdoc = require('./sassdoc').default; | ||
var $__default = function() { | ||
var errors = require('./errors'); | ||
function cli() { | ||
var argv = arguments[0] !== (void 0) ? arguments[0] : process.argv; | ||
@@ -22,4 +23,11 @@ var options = docopt(doc, { | ||
var logger = new Logger(options['--verbose']); | ||
var config = cfg.pre(options['--config'] || undefined, logger); | ||
ensure(config, options, { | ||
var env = new Environment(logger, options['--strict']); | ||
env.on('error', (function(error) { | ||
if (error instanceof errors.Warning) { | ||
process.exit(2); | ||
} | ||
process.exit(1); | ||
})); | ||
env.load(options['--config']); | ||
ensure(env, options, { | ||
theme: '--theme', | ||
@@ -30,17 +38,20 @@ interactive: '--interactive', | ||
}); | ||
cfg.post(config); | ||
if (!config.noUpdateNotifier) { | ||
env.postProcess(); | ||
if (!env.noUpdateNotifier) { | ||
require('./notifier').default(pkg, logger); | ||
} | ||
sassdoc(options['<src>'], options['<dest>'], config).then(undefined, (function() { | ||
return process.exit(1); | ||
})); | ||
}; | ||
function ensure(config, options, names) { | ||
Object.keys(names).forEach((function(k) { | ||
var v = names[k]; | ||
if (options[v]) { | ||
config[k] = options[v]; | ||
sassdoc(options['<src>'], options['<dest>'], env); | ||
} | ||
var $__default = cli; | ||
function ensure(env, options, names) { | ||
for (var $__0 = Object.keys(names)[$traceurRuntime.toProperty(Symbol.iterator)](), | ||
$__1; !($__1 = $__0.next()).done; ) { | ||
var k = $__1.value; | ||
{ | ||
var v = names[k]; | ||
if (options[v]) { | ||
env[k] = options[v]; | ||
} | ||
} | ||
})); | ||
} | ||
} |
@@ -13,8 +13,9 @@ "use strict"; | ||
var utils = require('./utils'); | ||
var Parser = function Parser(config, additionalAnnotations) { | ||
this.annotations = new AnnotationsApi(config); | ||
var errors = require('./errors'); | ||
var Parser = function Parser(env, additionalAnnotations) { | ||
this.annotations = new AnnotationsApi(env); | ||
this.annotations.addAnnotations(additionalAnnotations); | ||
this.scssParser = new ScssCommentParser(this.annotations.list, config); | ||
this.scssParser = new ScssCommentParser(this.annotations.list, env); | ||
this.scssParser.commentParser.on('warning', (function(warning) { | ||
config.logger.warn(warning); | ||
env.emit('warning', new errors.Warning(warning.message)); | ||
})); | ||
@@ -21,0 +22,0 @@ }; |
@@ -12,5 +12,11 @@ "use strict"; | ||
}}, | ||
ensureEnvironment: {get: function() { | ||
return ensureEnvironment; | ||
}}, | ||
documentize: {get: function() { | ||
return documentize; | ||
}}, | ||
Environment: {get: function() { | ||
return Environment; | ||
}}, | ||
Logger: {get: function() { | ||
@@ -25,39 +31,45 @@ return Logger; | ||
}}, | ||
cfg: {get: function() { | ||
return cfg; | ||
recurse: {get: function() { | ||
return recurse; | ||
}}, | ||
exclude: {get: function() { | ||
return exclude; | ||
}}, | ||
errors: {get: function() { | ||
return errors; | ||
}}, | ||
__esModule: {value: true} | ||
}); | ||
var utils = require('./utils'); | ||
var errors = require('./errors'); | ||
var mkdir = utils.denodeify(require('mkdirp')); | ||
var safeWipe = require('safe-wipe'); | ||
var vfs = require('vinyl-fs'); | ||
var glob2base = require('glob2base'); | ||
var Glob = require('glob').Glob; | ||
var cfg = require('./cfg'); | ||
var Environment = require('./environment').default; | ||
var Logger = require('./logger').default; | ||
var Parser = require('./parser').default; | ||
var exclude = require('./exclude').default; | ||
var recurse = require('./recurse').default; | ||
var sort = require('./sorter').default; | ||
var recurse = require('./recurse').default; | ||
var exclude = require('./exclude').default; | ||
var converter = require('sass-convert'); | ||
var pipe = require('multipipe'); | ||
function sassdoc(src, dest) { | ||
var config = arguments[2] !== (void 0) ? arguments[2] : {}; | ||
var logger = config.logger = config.logger || new Logger(config.verbose); | ||
config = cfg.post(config); | ||
return refresh(dest, { | ||
interactive: config.interactive || false, | ||
force: config.force || false, | ||
parent: g2b(src), | ||
var env = arguments[2] !== (void 0) ? arguments[2] : {}; | ||
var deferred = utils.defer(); | ||
env = ensureEnvironment(env, deferred.reject); | ||
var logger = env.logger; | ||
refresh(dest, { | ||
interactive: env.interactive || false, | ||
force: env.force || false, | ||
parent: utils.g2b(src), | ||
silent: true | ||
}).then((function() { | ||
logger.log(("Folder \"" + dest + "\" successfully refreshed.")); | ||
return parse(src, config); | ||
}), (function(err) { | ||
throw new utils.SassDocError(err.message); | ||
return parse(src, env); | ||
}), (function(error) { | ||
throw new errors.Error(error.message); | ||
})).then((function(data) { | ||
logger.log(("Folder \"" + src + "\" successfully parsed.")); | ||
config.data = data; | ||
var promise = config.theme(dest, config); | ||
env.data = data; | ||
var promise = env.theme(dest, env); | ||
if (promise && typeof promise.then === 'function') { | ||
@@ -67,6 +79,6 @@ return promise; | ||
var type = Object.prototype.toString.call(promise); | ||
throw new Error(("Theme didn't return a promise, got " + type + ".")); | ||
throw new errors.Error(("Theme didn't return a promise, got " + type + ".")); | ||
})).then((function() { | ||
if (config.themeName) { | ||
logger.log(("theme \"" + config.themeName + "\" successfully rendered.")); | ||
if (env.themeName) { | ||
logger.log(("Theme \"" + env.themeName + "\" successfully rendered.")); | ||
} else { | ||
@@ -76,20 +88,15 @@ logger.log('Anonymous theme successfully rendered.'); | ||
logger.log('Process over. Everything okay!'); | ||
}), (function(err) { | ||
var friendlyErrors = [utils.SassDocError, converter.BinaryError, converter.VersionError]; | ||
if (friendlyErrors.indexOf(err.constructor) !== -1) { | ||
logger.error(err.message); | ||
} else { | ||
logger.error('stack' in err ? err.stack : err); | ||
} | ||
throw err; | ||
})).then(deferred.resolve, (function(error) { | ||
return env.emit('error', error); | ||
})); | ||
return deferred.promise; | ||
} | ||
var $__default = sassdoc; | ||
function parse(src) { | ||
var config = arguments[1] !== (void 0) ? arguments[1] : {}; | ||
config = cfg.post(config); | ||
var env = arguments[1] !== (void 0) ? arguments[1] : {}; | ||
var deferred = utils.defer(); | ||
var parser = new Parser(config, config.theme && config.theme.annotations); | ||
env = ensureEnvironment(env, deferred.reject); | ||
var parser = new Parser(env, env.theme && env.theme.annotations); | ||
var parseFilter = parser.stream(); | ||
var stream = pipe(recurse(), exclude(config.exclude || []), converter({ | ||
var stream = pipe(recurse(), exclude(env.exclude || []), converter({ | ||
from: 'sass', | ||
@@ -104,11 +111,20 @@ to: 'scss' | ||
} | ||
function refresh(dest, config) { | ||
return safeWipe(dest, config).then((function() { | ||
function refresh(dest, env) { | ||
return safeWipe(dest, env).then((function() { | ||
return mkdir(dest); | ||
})); | ||
} | ||
function ensureEnvironment(config, onError) { | ||
if (config instanceof Environment) { | ||
config.on('error', onError); | ||
return config; | ||
} | ||
var logger = new Logger(config.verbose); | ||
var env = new Environment(logger, config.strict); | ||
env.on('error', onError); | ||
env.load(config); | ||
env.postProcess(); | ||
return env; | ||
} | ||
var documentize = sassdoc; | ||
; | ||
function g2b(src) { | ||
return glob2base(new Glob([].concat(src)[0])); | ||
} |
@@ -24,4 +24,4 @@ "use strict"; | ||
}}, | ||
SassDocError: {get: function() { | ||
return SassDocError; | ||
g2b: {get: function() { | ||
return g2b; | ||
}}, | ||
@@ -32,2 +32,4 @@ __esModule: {value: true} | ||
var _ = require('lodash'); | ||
var glob2base = require('glob2base'); | ||
var Glob = require('glob').Glob; | ||
function eachItem(byTypeAndName, cb) { | ||
@@ -70,9 +72,9 @@ _.each(byTypeAndName, function(typeObj) { | ||
for (var args = [], | ||
$__1 = 0; $__1 < arguments.length; $__1++) | ||
args[$__1] = arguments[$__1]; | ||
$__0 = 0; $__0 < arguments.length; $__0++) | ||
args[$__0] = arguments[$__0]; | ||
return new Promise((function(resolve, reject) { | ||
fn.apply(null, $traceurRuntime.spread(args, [(function(err) { | ||
for (var args = [], | ||
$__2 = 1; $__2 < arguments.length; $__2++) | ||
args[$__2 - 1] = arguments[$__2]; | ||
$__1 = 1; $__1 < arguments.length; $__1++) | ||
args[$__1 - 1] = arguments[$__1]; | ||
if (err) { | ||
@@ -100,7 +102,4 @@ reject(err); | ||
} | ||
var SassDocError = function SassDocError(message) { | ||
$traceurRuntime.superConstructor($SassDocError).call(this, message); | ||
this.message = message; | ||
}; | ||
var $SassDocError = SassDocError; | ||
($traceurRuntime.createClass)(SassDocError, {}, {}, Error); | ||
function g2b(src) { | ||
return glob2base(new Glob([].concat(src)[0])); | ||
} |
@@ -24,3 +24,3 @@ { | ||
], | ||
"version": "2.0.0-rc.6", | ||
"version": "2.0.0-rc.7", | ||
"license": { | ||
@@ -49,2 +49,10 @@ "type": "MIT", | ||
}, | ||
"files": [ | ||
"bin", | ||
"dist", | ||
"index.js", | ||
"CHANGELOG.md", | ||
"LICENCE.md", | ||
"README.md" | ||
], | ||
"dependencies": { | ||
@@ -71,6 +79,10 @@ "chalk": "^0.5.0", | ||
"assert": "^1.1.1", | ||
"traceur": "0.0.78", | ||
"jshint": "^2.5.10", | ||
"mocha": "^2.0.1" | ||
"mocha": "^2.0.1", | ||
"traceur": "0.0.79" | ||
}, | ||
"engines": { | ||
"npm": ">=2.0" | ||
}, | ||
"engineStrict": true, | ||
"scripts": { | ||
@@ -77,0 +89,0 @@ "test": "make dist lint test", |
Sorry, the diff of this file is too big to display
3948
7
138535
37