canonical
Version:
Canonical code style linter and formatter for JavaScript, SCSS, CSS and JSON.
59 lines (39 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _js = require('./../syntaxes/js');
var _json = require('./../syntaxes/json');
var _scss = require('./../syntaxes/scss');
var _crypto = require('crypto');
var _crypto2 = _interopRequireDefault(_crypto);
var _lruCache = require('lru-cache');
var _lruCache2 = _interopRequireDefault(_lruCache);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var cache = (0, _lruCache2.default)(500);
exports.default = function (text, options) {
var result = void 0;
var hash = _crypto2.default.createHash('sha1').update(text + JSON.stringify(options)).digest('hex');
result = cache.get(hash);
if (result) {
return result;
}
if (options.syntax === 'css') {
result = (0, _scss.lintText)(text);
} else if (options.syntax === 'js') {
result = (0, _js.lintText)(text);
} else if (options.syntax === 'json') {
result = (0, _json.lintText)(text);
} else if (options.syntax === 'scss') {
result = (0, _scss.lintText)(text);
} else {
throw new Error('Unknown syntax "' + options.syntax + '".');
}
if (options.filePath) {
result.filePath = options.filePath;
}
cache.set(hash, result);
return result;
};
module.exports = exports['default'];
//# sourceMappingURL=lintText.js.map