UNPKG

koa-quick-service

Version:
287 lines (209 loc) 8.66 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.App = exports.LOG = exports.PATCH = exports.DELETE = exports.PUT = exports.POST = exports.GET = exports.Dictionary = exports.Secret = exports.Convert = exports.EngineProcess = exports.CACHE = exports.MAP = exports.URI = exports.MySQL = exports.ReDIS = undefined; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var setNativeMiddleWares = function () { var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(startRouter) { return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: app.use(MiddleWares.middlewareCommonMethods).use(MiddleWares.catchErrors); _context2.next = 3; return app.emit('beforeStartInjectRouters'); case 3: app.use(startRouter.routes(), startRouter.allowedMethods()); case 4: case 'end': return _context2.stop(); } } }, _callee2, this); })); return function setNativeMiddleWares(_x3) { return _ref2.apply(this, arguments); }; }(); var _cls = require('./service_engines/cls.ajax'); Object.defineProperty(exports, 'GET', { enumerable: true, get: function get() { return _cls.GET; } }); Object.defineProperty(exports, 'POST', { enumerable: true, get: function get() { return _cls.POST; } }); Object.defineProperty(exports, 'PUT', { enumerable: true, get: function get() { return _cls.PUT; } }); Object.defineProperty(exports, 'DELETE', { enumerable: true, get: function get() { return _cls.DELETE; } }); Object.defineProperty(exports, 'PATCH', { enumerable: true, get: function get() { return _cls.PATCH; } }); exports.PostBody = PostBody; var _koa = require('koa'); var _koa2 = _interopRequireDefault(_koa); var _cls2 = require('./service_engines/cls.redis'); var _cls3 = _interopRequireDefault(_cls2); var _cls4 = require('./service_engines/cls.mysql'); var _cls5 = _interopRequireDefault(_cls4); var _mid = require('./service_engines/mid.wares'); var MiddleWares = _interopRequireWildcard(_mid); var _koaStaticCache = require('koa-static-cache'); var _koaStaticCache2 = _interopRequireDefault(_koaStaticCache); var _koaCors = require('koa-cors'); var _koaCors2 = _interopRequireDefault(_koaCors); var _koaConvert = require('koa-convert'); var _koaConvert2 = _interopRequireDefault(_koaConvert); var _koaLogger = require('koa-logger'); var _koaLogger2 = _interopRequireDefault(_koaLogger); var _keygrip = require('keygrip'); var _keygrip2 = _interopRequireDefault(_keygrip); var _lgc = require('./service_supports/lgc.uri'); var _lgc2 = _interopRequireDefault(_lgc); var _lgc3 = require('./service_supports/lgc.map'); var _lgc4 = _interopRequireDefault(_lgc3); var _lgc5 = require('./service_supports/lgc.cache'); var _lgc6 = _interopRequireDefault(_lgc5); var _cls6 = require('./service_engines/cls.process'); var _cls7 = _interopRequireDefault(_cls6); var _koaBetterBody = require('koa-better-body'); var _koaBetterBody2 = _interopRequireDefault(_koaBetterBody); var _cls8 = require('./service_engines/cls.secret'); var _cls9 = _interopRequireDefault(_cls8); var _cls10 = require('./service_engines/cls.dictionary'); var _cls11 = _interopRequireDefault(_cls10); var _asyncEventsListener = require('async-events-listener'); var _asyncEventsListener2 = _interopRequireDefault(_asyncEventsListener); var _fns = require('./service_engines/fns.console'); var _LOG = _interopRequireWildcard(_fns); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Created by evio on 2017/1/26. */ exports.ReDIS = _cls3.default; exports.MySQL = _cls5.default; exports.URI = _lgc2.default; exports.MAP = _lgc4.default; exports.CACHE = _lgc6.default; exports.EngineProcess = _cls7.default; exports.Convert = _koaConvert2.default; exports.Secret = _cls9.default; exports.Dictionary = _cls11.default; exports.LOG = _LOG; var app = new _koa2.default(); app.emit = _asyncEventsListener2.default.prototype.emit.bind(app); var App = exports.App = app; function PostBody() { var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (!args.fields) { args.fields = 'form'; } return (0, _koaConvert2.default)((0, _koaBetterBody2.default)(args)); } app.nativeConfigs = {}; app.setNativeConfigs = function (env, value) { app.nativeConfigs[env] = value; }; app.createNativeService = function () { var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(NativeRouter) { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!app.nativeConfigs[app.env]) { _context.next = 24; break; } app.nativeConfig = app.nativeConfigs[app.env]; _context.next = 4; return app.emit('beforeSetNativeDatabase'); case 4: setNativeDatabase(app.nativeConfig.db); _context.next = 7; return app.emit('beforeSetStaticResource'); case 7: setStaticResource(app.nativeConfig.static); _context.next = 10; return app.emit('beforeSetLoggerAndCors'); case 10: setLoggerAndCors(app.nativeConfig.logger, app.nativeConfig.cors); _context.next = 13; return app.emit('beforeSetCookie'); case 13: setCookie(app.nativeConfig.cookie); _context.next = 16; return app.emit('beforeSetNativeMiddleWares'); case 16: _context.next = 18; return setNativeMiddleWares(NativeRouter); case 18: _context.next = 20; return app.emit('beforeCreateService'); case 20: app.listen(app.nativeConfig.port, app.nativeConfig.ip); console.log('start at http://' + app.nativeConfig.ip + ':' + app.nativeConfig.port); _context.next = 24; return app.emit('afterCreateService'); case 24: case 'end': return _context.stop(); } } }, _callee, undefined); })); return function (_x2) { return _ref.apply(this, arguments); }; }(); function setNativeDatabase(options) { if (options) { for (var i in options) { var which = MiddleWares.set(i, options[i].constructor); if (options[i].namespace) { for (var j in options[i].namespace) { which.set(j, options[i].namespace[j]); } } } } } function setStaticResource(options) { for (var i in options) { app.use((0, _koaConvert2.default)((0, _koaStaticCache2.default)(options[i], { "prefix": i, "maxAge": 31536000, "gzip": true, "dynamic": true }))); } } function setLoggerAndCors(logger, cors) { logger && app.use((0, _koaConvert2.default)((0, _koaLogger2.default)())); cors && app.use((0, _koaConvert2.default)((0, _koaCors2.default)())); } function setCookie(options) { app.keys = new _keygrip2.default([options.key, options.value], 'sha256'); app.proxy = true; }