UNPKG

yahoi

Version:

Yet Another Highly Opinionated Isomorphic Framework

257 lines (204 loc) 7.92 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _yahoi = require('yahoi'); function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var ExampleLinks = [{ title: 'Render-String-1', url: '/examples/render-string-1?name=World' }, { title: 'Render-String-2', url: '/examples/render-string-2?name=World' }, { title: 'Render-Json-1', url: '/examples/render-json-1' }, { title: 'Render-Json-2', url: '/examples/render-json-2' }, { title: 'Render-View-1', url: '/examples/render-view-1/World' }, { title: 'Render-View-2', url: '/examples/render-view-2/World' }, { title: 'Redirect', url: '/examples/redirect' }, { title: 'React Rlient', url: '/examples/client' }]; var ExampleController = function (_Controller) { _inherits(ExampleController, _Controller); function ExampleController(props) { _classCallCheck(this, ExampleController); var _this = _possibleConstructorReturn(this, (ExampleController.__proto__ || Object.getPrototypeOf(ExampleController)).call(this, props)); _this.config.environment = _this.getEnvironment(); return _this; } _createClass(ExampleController, [{ key: 'IndexAction', value: function IndexAction(parameters) { //todo (what if view is not found?) this.sendView('Examples/index', {}); } // String Renderer }, { key: 'RenderString1Action', value: function () { var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(parameters) { var string; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: // Parameter validation this.require({ name: this.Joi.string().min(3).required() }); if (!parameters.areValid()) { _context.next = 6; break; } _context.next = 4; return this.renderString("Hello {{ name }}", { name: parameters.get('name') }); case 4: string = _context.sent; this.send(string); case 6: case 'end': return _context.stop(); } } }, _callee, this); })); function RenderString1Action(_x) { return _ref.apply(this, arguments); } return RenderString1Action; }() }, { key: 'RenderString2Action', value: function RenderString2Action(parameters) { // Parameter validation this.require({ name: this.Joi.string().min(3).required() }); if (parameters.areValid()) { this.sendString("Hello {{ name }}", { name: parameters.get('name') }); } } //Json }, { key: 'RenderJson1Action', value: function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(parameters) { var json; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return this.renderJson({ payload: { id: 100, progress: 37, status: 'initiated' } }); case 2: json = _context2.sent; this.send(json); case 4: case 'end': return _context2.stop(); } } }, _callee2, this); })); function RenderJson1Action(_x2) { return _ref2.apply(this, arguments); } return RenderJson1Action; }() }, { key: 'RenderJson2Action', value: function RenderJson2Action(parameters) { this.sendJson({ payload: { id: 100, progress: 37, status: 'initiated' } }); } //View }, { key: 'RenderView1Action', value: function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(parameters) { var view; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: // Parameter validation this.require({ name: this.Joi.string().min(3).required() }); if (!parameters.areValid()) { _context3.next = 6; break; } _context3.next = 4; return this.renderView('Examples/exampleView', { name: parameters.get('name') }); case 4: view = _context3.sent; this.send(view); case 6: case 'end': return _context3.stop(); } } }, _callee3, this); })); function RenderView1Action(_x3) { return _ref3.apply(this, arguments); } return RenderView1Action; }() }, { key: 'RenderView2Action', value: function RenderView2Action(parameters) { // Parameter validation this.require({ name: this.Joi.string().min(3).required() }); if (parameters.areValid()) { this.sendView('Examples/exampleView', { name: parameters.get('name') }); } } //Client }, { key: 'ClientAction', value: function ClientAction(parameters) { this.sendClient({ state: { Example: { exampleLinks: ExampleLinks } } }); } //Redirect }, { key: 'RedirectAction', value: function RedirectAction(parameters) { this.redirect('http://www.google.com'); } }]); return ExampleController; }(_yahoi.Controller); exports.default = ExampleController;