UNPKG

sassdoc

Version:
73 lines (57 loc) 1.75 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _find = require('babel-runtime/core-js/array/find'); var _find2 = _interopRequireDefault(_find); exports.default = see; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var seeRegEx = /\s*(?:\{([\w-_]+)\}\s*)?(.*)/; function see(env) { return { name: 'see', parse: function parse(text) { var match = seeRegEx.exec(text); 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; }, resolve: function resolve(data) { data.forEach(function (item) { if (item.see === undefined) { return; } item.see = item.see.map(function (see) { var seeItem = (0, _find2.default)(data, function (x) { return x.context.name === see.name; }); if (seeItem !== undefined) { return seeItem; } env.logger.warn('Item `' + item.context.name + '` refers to `' + see.name + '` from type `' + see.type + '` but this item doesn\'t exist.'); }).filter(function (x) { return x !== undefined; }); item.see.toJSON = function () { return item.see.map(function (item) { return { description: item.description, context: item.context, group: item.group }; }); }; }); } }; }