sassdoc
Version:
Release the docs!
80 lines (57 loc) • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _annotations = require('./annotations');
var _annotations2 = _interopRequireDefault(_annotations);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var AnnotationsApi = function () {
function AnnotationsApi(env) {
(0, _classCallCheck3.default)(this, AnnotationsApi);
this.env = env;
this.list = {
_: { alias: {} }
};
this.addAnnotations(_annotations2.default);
}
/**
* Add a single annotation by name
* @param {String} name - Name of the annotation
* @param {Object} annotation - Annotation object
*/
(0, _createClass3.default)(AnnotationsApi, [{
key: 'addAnnotation',
value: function addAnnotation(name, annotation) {
var _this = this;
annotation = annotation(this.env);
this.list._.alias[name] = name;
if (Array.isArray(annotation.alias)) {
annotation.alias.forEach(function (aliasName) {
_this.list._.alias[aliasName] = name;
});
}
this.list[name] = annotation;
}
/**
* Add an array of annotations. The name of the annotations must be
* in the `name` key of the annotation.
* @param {Array} annotations - Annotation objects
*/
}, {
key: 'addAnnotations',
value: function addAnnotations(annotations) {
var _this2 = this;
if (annotations !== undefined) {
annotations.forEach(function (annotation) {
_this2.addAnnotation(annotation().name, annotation);
});
}
}
}]);
return AnnotationsApi;
}();
exports.default = AnnotationsApi;