UNPKG

canonical

Version:

Canonical code style linter and formatter for JavaScript, SCSS, CSS and JSON.

59 lines (39 loc) 1.42 kB
'use strict'; 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