UNPKG

patternplate-client

Version:

Universal javascript client application for patternplate

137 lines (100 loc) 9.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _fs = require('fs'); var _path = require('path'); var _fs2 = require('mz/fs'); var _pathExists = require('path-exists'); var _pathExists2 = _interopRequireDefault(_pathExists); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function devRequire(id) { var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (process.env.NODE_ENV !== 'production') { return require(id); } return fallback; } function styleRouteFactory(application) { var cwd = application.runtime.cwd; return function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { var staticPath, name, path, less, Autoprefix, Cleancss, NpmImport, autoprefix, cleancss, npmimport, buffer, results; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: staticPath = (0, _path.resolve)(cwd, 'assets', 'style', this.params.path); this.type = 'css'; _context.next = 4; return (0, _pathExists2.default)(staticPath); case 4: if (!_context.sent) { _context.next = 7; break; } this.body = (0, _fs.createReadStream)(staticPath); return _context.abrupt('return'); case 7: if (process.env.NODE_ENV === 'production') { this.throw(404); } name = (this.params.path || '').replace('.css', '.less'); path = (0, _path.resolve)(application.runtime.cwd, 'assets', 'style', name); _context.next = 12; return (0, _pathExists2.default)(path); case 12: if (_context.sent) { _context.next = 14; break; } this.throw(404); case 14: _context.prev = 14; less = devRequire('less'); Autoprefix = devRequire('less-plugin-autoprefix', function () {}); Cleancss = devRequire('less-plugin-clean-css', function () {}); NpmImport = devRequire('less-plugin-npm-import', function () {}); autoprefix = new Autoprefix({ browser: ['IE 8', 'last 2 versions'] }); cleancss = new Cleancss({ advanced: true }); npmimport = new NpmImport(); _context.next = 24; return (0, _fs2.readFile)(path); case 24: buffer = _context.sent; _context.next = 27; return less.render(buffer.toString(), { paths: [(0, _path.dirname)(path)], plugins: [npmimport, autoprefix, cleancss] }); case 27: results = _context.sent; this.type = 'css'; this.body = results.css; _context.next = 36; break; case 32: _context.prev = 32; _context.t0 = _context['catch'](14); application.log.error(_context.t0); this.throw(_context.t0, 500); case 36: case 'end': return _context.stop(); } } }, _callee, this, [[14, 32]]); })); function styleRoute() { return _ref.apply(this, arguments); } return styleRoute; }(); } exports.default = styleRouteFactory; module.exports = exports['default']; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NvdXJjZS9hcHBsaWNhdGlvbi9yb3V0ZXMvc3R5bGUuanMiXSwibmFtZXMiOlsiZGV2UmVxdWlyZSIsImlkIiwiZmFsbGJhY2siLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJyZXF1aXJlIiwic3R5bGVSb3V0ZUZhY3RvcnkiLCJhcHBsaWNhdGlvbiIsImN3ZCIsInJ1bnRpbWUiLCJzdGF0aWNQYXRoIiwicGFyYW1zIiwicGF0aCIsInR5cGUiLCJib2R5IiwidGhyb3ciLCJuYW1lIiwicmVwbGFjZSIsImxlc3MiLCJBdXRvcHJlZml4IiwiQ2xlYW5jc3MiLCJOcG1JbXBvcnQiLCJhdXRvcHJlZml4IiwiYnJvd3NlciIsImNsZWFuY3NzIiwiYWR2YW5jZWQiLCJucG1pbXBvcnQiLCJidWZmZXIiLCJyZW5kZXIiLCJ0b1N0cmluZyIsInBhdGhzIiwicGx1Z2lucyIsInJlc3VsdHMiLCJjc3MiLCJsb2ciLCJlcnJvciIsInN0eWxlUm91dGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7OztBQUVBLFNBQVNBLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXVDO0FBQUEsS0FBZkMsUUFBZSx1RUFBSixFQUFJOztBQUN0QyxLQUFJQyxRQUFRQyxHQUFSLENBQVlDLFFBQVosS0FBeUIsWUFBN0IsRUFBMkM7QUFDMUMsU0FBT0MsUUFBUUwsRUFBUixDQUFQO0FBQ0E7QUFDRCxRQUFPQyxRQUFQO0FBQ0E7O0FBRUQsU0FBU0ssaUJBQVQsQ0FBMkJDLFdBQTNCLEVBQXdDO0FBQUEsS0FDdEJDLEdBRHNCLEdBQ2RELFdBRGMsQ0FDaENFLE9BRGdDLENBQ3RCRCxHQURzQjs7O0FBR3ZDO0FBQUEsc0ZBQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0FFLGlCQURBLEdBQ2EsbUJBQVFGLEdBQVIsRUFBYSxRQUFiLEVBQXVCLE9BQXZCLEVBQWdDLEtBQUtHLE1BQUwsQ0FBWUMsSUFBNUMsQ0FEYjs7O0FBR04sWUFBS0MsSUFBTCxHQUFZLEtBQVo7O0FBSE07QUFBQSxjQUtJLDBCQUFPSCxVQUFQLENBTEo7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFNTCxZQUFLSSxJQUFMLEdBQVksMEJBQWlCSixVQUFqQixDQUFaO0FBTks7O0FBQUE7O0FBVU4sV0FBSVIsUUFBUUMsR0FBUixDQUFZQyxRQUFaLEtBQXlCLFlBQTdCLEVBQTJDO0FBQzFDLGFBQUtXLEtBQUwsQ0FBVyxHQUFYO0FBQ0E7O0FBRUtDLFdBZEEsR0FjTyxDQUFDLEtBQUtMLE1BQUwsQ0FBWUMsSUFBWixJQUFvQixFQUFyQixFQUF5QkssT0FBekIsQ0FBaUMsTUFBakMsRUFBeUMsT0FBekMsQ0FkUDtBQWVBTCxXQWZBLEdBZU8sbUJBQVFMLFlBQVlFLE9BQVosQ0FBb0JELEdBQTVCLEVBQWlDLFFBQWpDLEVBQTJDLE9BQTNDLEVBQW9EUSxJQUFwRCxDQWZQO0FBQUE7QUFBQSxjQWlCSywwQkFBT0osSUFBUCxDQWpCTDs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQWtCTCxZQUFLRyxLQUFMLENBQVcsR0FBWDs7QUFsQks7QUFBQTtBQXNCQ0csV0F0QkQsR0FzQlFuQixXQUFXLE1BQVgsQ0F0QlI7QUF1QkNvQixpQkF2QkQsR0F1QmNwQixXQUFXLHdCQUFYLEVBQXFDLFlBQU0sQ0FBRSxDQUE3QyxDQXZCZDtBQXdCQ3FCLGVBeEJELEdBd0JZckIsV0FBVyx1QkFBWCxFQUFvQyxZQUFNLENBQUUsQ0FBNUMsQ0F4Qlo7QUF5QkNzQixnQkF6QkQsR0F5QmF0QixXQUFXLHdCQUFYLEVBQXFDLFlBQU0sQ0FBRSxDQUE3QyxDQXpCYjtBQTJCQ3VCLGlCQTNCRCxHQTJCYyxJQUFJSCxVQUFKLENBQWUsRUFBQ0ksU0FBUyxDQUFDLE1BQUQsRUFBUyxpQkFBVCxDQUFWLEVBQWYsQ0EzQmQ7QUE0QkNDLGVBNUJELEdBNEJZLElBQUlKLFFBQUosQ0FBYSxFQUFDSyxVQUFVLElBQVgsRUFBYixDQTVCWjtBQTZCQ0MsZ0JBN0JELEdBNkJhLElBQUlMLFNBQUosRUE3QmI7QUFBQTtBQUFBLGNBK0JnQixtQkFBU1QsSUFBVCxDQS9CaEI7O0FBQUE7QUErQkNlLGFBL0JEO0FBQUE7QUFBQSxjQWdDaUJULEtBQUtVLE1BQUwsQ0FBWUQsT0FBT0UsUUFBUCxFQUFaLEVBQStCO0FBQ3BEQyxlQUFPLENBQUMsbUJBQVFsQixJQUFSLENBQUQsQ0FENkM7QUFFcERtQixpQkFBUyxDQUFDTCxTQUFELEVBQVlKLFVBQVosRUFBd0JFLFFBQXhCO0FBRjJDLFFBQS9CLENBaENqQjs7QUFBQTtBQWdDQ1EsY0FoQ0Q7OztBQXFDTCxZQUFLbkIsSUFBTCxHQUFZLEtBQVo7QUFDQSxZQUFLQyxJQUFMLEdBQVlrQixRQUFRQyxHQUFwQjtBQXRDSztBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUF3Q0wxQixtQkFBWTJCLEdBQVosQ0FBZ0JDLEtBQWhCO0FBQ0EsWUFBS3BCLEtBQUwsY0FBZ0IsR0FBaEI7O0FBekNLO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEdBQVA7O0FBQUEsV0FBc0JxQixVQUF0QjtBQUFBO0FBQUE7O0FBQUEsU0FBc0JBLFVBQXRCO0FBQUE7QUE0Q0E7O2tCQUVjOUIsaUIiLCJmaWxlIjoic3R5bGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZVJlYWRTdHJlYW19IGZyb20gJ2ZzJztcbmltcG9ydCB7ZGlybmFtZSwgcmVzb2x2ZX0gZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7cmVhZEZpbGV9IGZyb20gJ216L2ZzJztcbmltcG9ydCBleGlzdHMgZnJvbSAncGF0aC1leGlzdHMnO1xuXG5mdW5jdGlvbiBkZXZSZXF1aXJlKGlkLCBmYWxsYmFjayA9IHt9KSB7XG5cdGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG5cdFx0cmV0dXJuIHJlcXVpcmUoaWQpO1xuXHR9XG5cdHJldHVybiBmYWxsYmFjaztcbn1cblxuZnVuY3Rpb24gc3R5bGVSb3V0ZUZhY3RvcnkoYXBwbGljYXRpb24pIHtcblx0Y29uc3Qge3J1bnRpbWU6IHtjd2R9fSA9IGFwcGxpY2F0aW9uO1xuXG5cdHJldHVybiBhc3luYyBmdW5jdGlvbiBzdHlsZVJvdXRlKCkge1xuXHRcdGNvbnN0IHN0YXRpY1BhdGggPSByZXNvbHZlKGN3ZCwgJ2Fzc2V0cycsICdzdHlsZScsIHRoaXMucGFyYW1zLnBhdGgpO1xuXG5cdFx0dGhpcy50eXBlID0gJ2Nzcyc7XG5cblx0XHRpZiAoYXdhaXQgZXhpc3RzKHN0YXRpY1BhdGgpKSB7XG5cdFx0XHR0aGlzLmJvZHkgPSBjcmVhdGVSZWFkU3RyZWFtKHN0YXRpY1BhdGgpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG5cdFx0XHR0aGlzLnRocm93KDQwNCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbmFtZSA9ICh0aGlzLnBhcmFtcy5wYXRoIHx8ICcnKS5yZXBsYWNlKCcuY3NzJywgJy5sZXNzJyk7XG5cdFx0Y29uc3QgcGF0aCA9IHJlc29sdmUoYXBwbGljYXRpb24ucnVudGltZS5jd2QsICdhc3NldHMnLCAnc3R5bGUnLCBuYW1lKTtcblxuXHRcdGlmICghYXdhaXQgZXhpc3RzKHBhdGgpKSB7XG5cdFx0XHR0aGlzLnRocm93KDQwNCk7XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGxlc3MgPSBkZXZSZXF1aXJlKCdsZXNzJyk7XG5cdFx0XHRjb25zdCBBdXRvcHJlZml4ID0gZGV2UmVxdWlyZSgnbGVzcy1wbHVnaW4tYXV0b3ByZWZpeCcsICgpID0+IHt9KTtcblx0XHRcdGNvbnN0IENsZWFuY3NzID0gZGV2UmVxdWlyZSgnbGVzcy1wbHVnaW4tY2xlYW4tY3NzJywgKCkgPT4ge30pO1xuXHRcdFx0Y29uc3QgTnBtSW1wb3J0ID0gZGV2UmVxdWlyZSgnbGVzcy1wbHVnaW4tbnBtLWltcG9ydCcsICgpID0+IHt9KTtcblxuXHRcdFx0Y29uc3QgYXV0b3ByZWZpeCA9IG5ldyBBdXRvcHJlZml4KHticm93c2VyOiBbJ0lFIDgnLCAnbGFzdCAyIHZlcnNpb25zJ119KTtcblx0XHRcdGNvbnN0IGNsZWFuY3NzID0gbmV3IENsZWFuY3NzKHthZHZhbmNlZDogdHJ1ZX0pO1xuXHRcdFx0Y29uc3QgbnBtaW1wb3J0ID0gbmV3IE5wbUltcG9ydCgpO1xuXG5cdFx0XHRjb25zdCBidWZmZXIgPSBhd2FpdCByZWFkRmlsZShwYXRoKTtcblx0XHRcdGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBsZXNzLnJlbmRlcihidWZmZXIudG9TdHJpbmcoKSwge1xuXHRcdFx0XHRwYXRoczogW2Rpcm5hbWUocGF0aCldLFxuXHRcdFx0XHRwbHVnaW5zOiBbbnBtaW1wb3J0LCBhdXRvcHJlZml4LCBjbGVhbmNzc11cblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLnR5cGUgPSAnY3NzJztcblx0XHRcdHRoaXMuYm9keSA9IHJlc3VsdHMuY3NzO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0YXBwbGljYXRpb24ubG9nLmVycm9yKGVycik7XG5cdFx0XHR0aGlzLnRocm93KGVyciwgNTAwKTtcblx0XHR9XG5cdH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHN0eWxlUm91dGVGYWN0b3J5O1xuIl19