diff --git a/.travis.yml b/.travis.yml index cad4675..011a179 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,8 @@ language: node_js node_js: + - 4.2 - 4.1 - - 0.12 - - 0.11 - - 0.10 + - 4.0 before_install: npm install -g gulp diff --git a/README.md b/README.md index a01a489..8b9080a 100644 --- a/README.md +++ b/README.md @@ -10,19 +10,12 @@ gengo.js [![Version](http://img.shields.io/npm/v/gengojs.svg)](https://www.npmjs.com/package/gengojs) -## News +## Progress: -Greetings! Just wanted to say thanks for those who have tried gengo.js. The official Docs is still a work in progress -but this update (**v1.0.0-alpha.4**) introduces support for [TOML](https://github.com/toml-lang/toml). This means that the -locales/dictionaries can be written in toml-lang instead of JSON. - -Also, if you haven't noticed yet, the examples directory is the best place to view the examples. It also includes a sails -app that you can try as well. :) - -Hey! Sorry for any delays! gengo.js has been through some transitions and hopefully it will lead it to becoming a better library but here's what happened: -* gengo.js has moved into [a dedicated GitHub account](https://github.com/gengojs) -* All official plugins have been updated and can be found at the dedicated account. -* All plugins and the core have been documented. +- [x] Updated to Koa v2.0.0-alpha.3 +- [x] Dropped support for Node.js < 4.0 + (Sorry, but most servers are moving beyond 4. In theory, gengojs should still work below 4.0) +- [ ] Writing docs. ### *Help wanted*: @@ -66,7 +59,7 @@ app.use(gengo(options)); // Koa var gengo = require('gengojs/koa'); -var app = require('koa')(); +var app = new require('koa')(); // Use gengo app.use(gengo(options)); diff --git a/examples/express/index.js b/examples/express/index.js index d19de70..38f41b3 100644 --- a/examples/express/index.js +++ b/examples/express/index.js @@ -1,8 +1,7 @@ var express = require('express'), app = express(), - gengo = require('../../express/'); + gengo = require('../../express/').default; var path = require('path'); -var root = require('app-root-path'); app.set('view engine', 'jade'); app.set('views', path.normalize(__dirname + '/')); @@ -12,7 +11,7 @@ app.use(gengo({ type: '*' }, backend: { - directory: path.join(root.path, '/tests/locales/unrouted/dest/') + directory: path.join(path.resolve(), 'examples/locales') }, header: { supported: ['en-US', 'ja'] diff --git a/examples/hapi/index.js b/examples/hapi/index.js index 1339991..3451a32 100644 --- a/examples/hapi/index.js +++ b/examples/hapi/index.js @@ -1,7 +1,6 @@ var Hapi = require('hapi'); var server = new Hapi.Server(); -var gengo = require('../../hapi/'); -var root = require('app-root-path'); +var gengo = require('../../hapi/').default; var path = require('path'); server.connection({ @@ -29,7 +28,7 @@ server.register(gengo({ type: '*' }, backend: { - directory: path.join(root.path, '/tests/locales/unrouted/dest/') + directory: path.join(path.resolve(), 'examples/locales') }, header: { supported: ['en-US', 'ja'] diff --git a/examples/koa/index.js b/examples/koa/index.js index 0def578..7886146 100644 --- a/examples/koa/index.js +++ b/examples/koa/index.js @@ -1,15 +1,14 @@ -var koa = require('koa'), - app = koa(), - gengo = require('../../koa/'); +var Koa = require('koa'), + app = new Koa(), + gengo = require('../../koa/').default; var path = require('path'); var jade = require('koa-jade-render'); -var root = require('app-root-path'); app.use(gengo({ parser: { type: '*' }, backend: { - directory: path.join(root.path, '/tests/locales/unrouted/dest/') + directory: path.join(path.resolve(), 'examples/locales') }, header: { supported: ['en-US', 'ja'] @@ -18,11 +17,12 @@ app.use(gengo({ app.use(jade(path.normalize(__dirname + '/'))); -app.use(function*() { +app.use(function(self, next) { 'use strict'; - yield this.render('index', { + self.render('index', { title: 'My home page' }); + return next(); }); app.listen(3000); \ No newline at end of file diff --git a/examples/locales/en-us.json b/examples/locales/en-us.json new file mode 100644 index 0000000..291df7a --- /dev/null +++ b/examples/locales/en-us.json @@ -0,0 +1,6 @@ +{ + "Hello": "Hello", + "msgformat":{ + "photos": "You have {numPhotos, plural, =0 {no photos.} =1 {one photo.} other {# photos.} }" + } +} \ No newline at end of file diff --git a/examples/locales/ja.json b/examples/locales/ja.json new file mode 100644 index 0000000..3156cc6 --- /dev/null +++ b/examples/locales/ja.json @@ -0,0 +1,6 @@ +{ + "Hello": "こんにちは", + "msgformat":{ + "photos": "あなたは {numPhotos, plural, =0 {写真を持っていません。} =1 {一枚の写真を持っています。} other {# 枚の写真を持っています。} }" + } +} \ No newline at end of file diff --git a/express/index.js b/express/index.js index 179616e..3180954 100644 --- a/express/index.js +++ b/express/index.js @@ -1 +1 @@ -module.exports = require('../src/express/'); \ No newline at end of file +module.exports = require('../lib/express/'); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 7683dcf..487e22f 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -18,21 +18,21 @@ var /** Backs up the files in case of emergency! */ gulp.task('backup', function () { return gulp - .src('lib/**/**/**.js') + .src('src/**/**/**.js') .pipe(gulp.dest('./.backup')); }); gulp.task('recover', function () { return gulp .src('./.backup/**/**/*.js') - .pipe(gulp.dest('lib/')); + .pipe(gulp.dest('src/')); }); /* Formats the files */ gulp.task('beautify', ['backup'], function () { - return gulp.src('./lib/**/**/*.js') + return gulp.src('./src/**/**/*.js') .pipe(beautify(config.beautify)) - .pipe(gulp.dest('./lib')); + .pipe(gulp.dest('./src')); }); /* @@ -52,25 +52,27 @@ gulp.task('gh-pages', ['doc'], function () { /* Checks the coding style and builds from ES6 to ES5*/ -gulp.task('lib', ['beautify'], function () { - return gulp.src('./lib/**/**/*.js') +gulp.task('src', ['beautify'], function () { + return gulp.src('./src/**/**/*.js') .pipe(jshint(config.jshint)) .pipe(jshint.reporter('jshint-stylish')) .pipe(jshint.reporter('fail')) .pipe(sourcemaps.init()) - .pipe(babel()) + .pipe(babel({ + presets: ['es2015'] + })) .pipe(sourcemaps.write('./source maps/')) - .pipe(gulp.dest('./src/')); + .pipe(gulp.dest('./lib/')); }); /* Watches for changes and applies the build task*/ gulp.task('watch', function () { - return gulp.watch('./lib/**/**/*.js', ['build']); + return gulp.watch('./src/**/**/*.js', ['build']); }); /* Runs tests */ -gulp.task('test', ['lib'], function (cb) { +gulp.task('test', ['src'], function (cb) { if (isHarmony) return gulp.src('./test/harmony/index.js') .pipe(shell(['mocha --harmony <%= file.path %>'])); @@ -93,7 +95,7 @@ gulp.task('doc', ['build'], shell.task([ (function(){ var doc = 'node_modules/mr-doc/bin/mr-doc', cmd = { - source: ' -s lib/', + source: ' -s src/', output: ' -o docs/', name:' -n "gengo.js/plugin/header"', theme:' -t cayman' @@ -102,8 +104,8 @@ gulp.task('doc', ['build'], shell.task([ })() ])); -gulp.task('default', ['backup', 'beautify', 'lib', 'watch']); +gulp.task('default', ['backup', 'beautify', 'src', 'watch']); -gulp.task('build', ['backup', 'beautify', 'lib', 'test']); +gulp.task('build', ['backup', 'beautify', 'src', 'test']); gulp.task('docs', ['build', 'doc', 'gh-pages', 'clean-docs']); \ No newline at end of file diff --git a/hapi/index.js b/hapi/index.js index 6080307..42d1f4b 100644 --- a/hapi/index.js +++ b/hapi/index.js @@ -1 +1 @@ -module.exports = require('../src/hapi/'); \ No newline at end of file +module.exports = require('../lib/hapi/'); \ No newline at end of file diff --git a/koa/index.js b/koa/index.js index 87d3d43..293d694 100644 --- a/koa/index.js +++ b/koa/index.js @@ -1 +1 @@ -module.exports = require('../src/koa/'); \ No newline at end of file +module.exports = require('../lib/koa/'); \ No newline at end of file diff --git a/lib/express/index.js b/lib/express/index.js index a46eb84..f4efcef 100644 --- a/lib/express/index.js +++ b/lib/express/index.js @@ -1,15 +1,19 @@ -import { - version -} -from '../../package'; -import core from 'gengojs-core'; -import pack from 'gengojs-default-pack'; -export default (function() { - 'use strict'; +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var version = require('../../package').version, + core = require('gengojs-core'), + pack = require('gengojs-default-pack'); + +exports.default = (function () { + 'use strict' /** * Global scope * @private */ + ; var global; /** * @method gengo @@ -18,7 +22,9 @@ export default (function() { * @return {Function} The middleware for express. * @public */ - var gengo = function(options, plugins = {}) { + var gengo = function gengo(options) { + var plugins = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + global = core(options, plugins, pack()); return global.ship.bind(global); }; @@ -28,7 +34,7 @@ export default (function() { * @return {Function} The API. * @public */ - gengo.clone = function() { + gengo.clone = function () { return global.assign.apply(global, arguments); }; /** @@ -39,4 +45,5 @@ export default (function() { gengo.version = version; // Export return gengo; -})(); \ No newline at end of file +})(); +//# sourceMappingURL=../source maps/express/index.js.map diff --git a/lib/hapi/index.js b/lib/hapi/index.js index 6721a6b..5e0fb02 100644 --- a/lib/hapi/index.js +++ b/lib/hapi/index.js @@ -1,34 +1,40 @@ -import { - version, name -} -from '../../package'; -import core from 'gengojs-core'; -import pack from 'gengojs-default-pack'; -export default (function() { - 'use strict'; +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var pkg = require('../../package'), + core = require('gengojs-core'), + pack = require('gengojs-default-pack'); + +exports.default = (function () { + 'use strict' /** * Global scope * @private */ + ; var global; function hapi(plugin, options, next) { - plugin.ext('onPreHandler', function(request, reply) { + plugin.ext('onPreHandler', function (request, reply) { global.ship.bind(global)(request); reply.continue(); }); - plugin.ext('onPreResponse', function(request, reply) { + plugin.ext('onPreResponse', function (request, reply) { global.ship.bind(global)(request); reply.continue(); }); next(); } - var gengo = function(options, plugins = {}) { + var gengo = function gengo(options) { + var plugins = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + global = core(options, plugins, pack()); var register = hapi; register.attributes = { - name + name: pkg.name }; return { register: register, @@ -41,7 +47,7 @@ export default (function() { * @return {Function} The API. * @public */ - gengo.clone = function() { + gengo.clone = function () { return global.assign.apply(global, arguments); }; /** @@ -49,7 +55,8 @@ export default (function() { * @type {String} * @public */ - gengo.version = version; + gengo.version = pkg.version; // Export return gengo; -})(); \ No newline at end of file +})(); +//# sourceMappingURL=../source maps/hapi/index.js.map diff --git a/lib/koa/index.js b/lib/koa/index.js index f466057..19c44ac 100644 --- a/lib/koa/index.js +++ b/lib/koa/index.js @@ -1,16 +1,19 @@ -import { - version -} -from '../../package'; -import core from 'gengojs-core'; -import pack from 'gengojs-default-pack'; -import 'babel/polyfill'; -export default (function() { - 'use strict'; +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var version = require('../../package').version, + core = require('gengojs-core'), + pack = require('gengojs-default-pack'); + +exports.default = (function () { + 'use strict' /** * Global scope * @private */ + ; var global; /** * @method gengo @@ -19,11 +22,13 @@ export default (function() { * @return {Function} The middleware for express. * @public */ - var gengo = function gengo(options, plugins = {}) { + var gengo = function gengo(options) { + var plugins = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + global = core(options, plugins, pack()); - return function*(next) { - global.ship.bind(global)(this); - yield next; + return function (self, next) { + global.ship.bind(global)(self); + return next(); }; }; /** @@ -32,7 +37,7 @@ export default (function() { * @return {Function} The API. * @public */ - gengo.clone = function() { + gengo.clone = function () { return global.assign.apply(global, arguments); }; @@ -44,4 +49,5 @@ export default (function() { gengo.version = version; // Export return gengo; -})(); \ No newline at end of file +})(); +//# sourceMappingURL=../source maps/koa/index.js.map diff --git a/lib/source maps/express/index.js.map b/lib/source maps/express/index.js.map new file mode 100644 index 0000000..83d50c0 --- /dev/null +++ b/lib/source maps/express/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO;IAC9C,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9B,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;;kBAC1B,CAAC,YAAW;AACzB;;;;;AAAY,GAAC;AAKb,MAAI,MAAM;;;;;;;;AAAC,AAQX,MAAI,KAAK,GAAG,SAAR,KAAK,CAAY,OAAO,EAAgB;QAAd,OAAO,yDAAG,EAAE;;AACxC,UAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,WAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GACjC;;;;;;;AAAC,AAOF,OAAK,CAAC,KAAK,GAAG,YAAW;AACvB,WAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;GAC/C;;;;;;AAAC,AAMF,OAAK,CAAC,OAAO,GAAG,OAAO;;AAAC,AAExB,SAAO,KAAK,CAAC;CACd,CAAA,EAAG","file":"express/index.js","sourcesContent":["const version = require('../../package').version,\n core = require('gengojs-core'),\n pack = require('gengojs-default-pack');\nexport default (function() {\n 'use strict';\n /**\n * Global scope\n * @private\n */\n var global;\n /**\n * @method gengo\n * @description Main function for Gengo.\n * @param {Object} options The configuration options.\n * @return {Function} The middleware for express.\n * @public\n */\n var gengo = function(options, plugins = {}) {\n global = core(options, plugins, pack());\n return global.ship.bind(global);\n };\n /**\n * @method clone\n * @description Returns the API.\n * @return {Function} The API.\n * @public\n */\n gengo.clone = function() {\n return global.assign.apply(global, arguments);\n };\n /**\n * version.\n * @type {String}\n * @public\n */\n gengo.version = version;\n // Export\n return gengo;\n})();"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/lib/source maps/hapi/index.js.map b/lib/source maps/hapi/index.js.map new file mode 100644 index 0000000..729c4fc --- /dev/null +++ b/lib/source maps/hapi/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;AAAA,IAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IAClC,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9B,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;;kBAC1B,CAAC,YAAW;AACzB;;;;;AAAY,GAAC;AAKb,MAAI,MAAM,CAAC;;AAEX,WAAS,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACnC,UAAM,CAAC,GAAG,CAAC,cAAc,EAAE,UAAS,OAAO,EAAE,KAAK,EAAE;AAClD,YAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAClC,WAAK,CAAC,QAAQ,EAAE,CAAC;KAClB,CAAC,CAAC;AACH,UAAM,CAAC,GAAG,CAAC,eAAe,EAAE,UAAS,OAAO,EAAE,KAAK,EAAE;AACnD,YAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAClC,WAAK,CAAC,QAAQ,EAAE,CAAC;KAClB,CAAC,CAAC;AACH,QAAI,EAAE,CAAC;GACR;;AAED,MAAI,KAAK,GAAG,SAAR,KAAK,CAAY,OAAO,EAAgB;QAAd,OAAO,yDAAG,EAAE;;AACxC,UAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,QAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,YAAQ,CAAC,UAAU,GAAG;AACpB,UAAI,EAAE,GAAG,CAAC,IAAI;KACf,CAAC;AACF,WAAO;AACL,cAAQ,EAAE,QAAQ;AAClB,aAAO,EAAE,OAAO,IAAI,EAAE;KACvB,CAAC;GACH;;;;;;;AAAC,AAOF,OAAK,CAAC,KAAK,GAAG,YAAW;AACvB,WAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;GAC/C;;;;;;AAAC,AAMF,OAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO;;AAAC,AAE5B,SAAO,KAAK,CAAC;CACd,CAAA,EAAG","file":"hapi/index.js","sourcesContent":["const pkg = require('../../package'),\n core = require('gengojs-core'),\n pack = require('gengojs-default-pack');\nexport default (function() {\n 'use strict';\n /**\n * Global scope\n * @private\n */\n var global;\n\n function hapi(plugin, options, next) {\n plugin.ext('onPreHandler', function(request, reply) {\n global.ship.bind(global)(request);\n reply.continue();\n });\n plugin.ext('onPreResponse', function(request, reply) {\n global.ship.bind(global)(request);\n reply.continue();\n });\n next();\n }\n\n var gengo = function(options, plugins = {}) {\n global = core(options, plugins, pack());\n var register = hapi;\n register.attributes = {\n name: pkg.name\n };\n return {\n register: register,\n options: options || {}\n };\n };\n /**\n * @method clone\n * @description Returns the API.\n * @return {Function} The API.\n * @public\n */\n gengo.clone = function() {\n return global.assign.apply(global, arguments);\n };\n /**\n * version.\n * @type {String}\n * @public\n */\n gengo.version = pkg.version;\n // Export\n return gengo;\n})();"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/lib/source maps/koa/index.js.map b/lib/source maps/koa/index.js.map new file mode 100644 index 0000000..fd79003 --- /dev/null +++ b/lib/source maps/koa/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;AAAA,IAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO;IAC9C,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9B,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;;kBAC1B,CAAC,YAAW;AACzB;;;;;AAAY,GAAC;AAKb,MAAI,MAAM;;;;;;;;AAAC,AAQX,MAAI,KAAK,GAAG,SAAS,KAAK,CAAC,OAAO,EAAgB;QAAd,OAAO,yDAAG,EAAE;;AAC9C,UAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,WAAO,UAAS,IAAI,EAAE,IAAI,EAAE;AAC1B,YAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/B,aAAO,IAAI,EAAE,CAAC;KACf,CAAC;GACH;;;;;;;AAAC,AAOF,OAAK,CAAC,KAAK,GAAG,YAAW;AACvB,WAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;GAC/C;;;;;;;AAAC,AAOF,OAAK,CAAC,OAAO,GAAG,OAAO;;AAAC,AAExB,SAAO,KAAK,CAAC;CACd,CAAA,EAAG","file":"koa/index.js","sourcesContent":["const version = require('../../package').version,\n core = require('gengojs-core'),\n pack = require('gengojs-default-pack');\nexport default (function() {\n 'use strict';\n /**\n * Global scope\n * @private\n */\n var global;\n /**\n * @method gengo\n * @description Main function for Gengo.\n * @param {Object} options The configuration options.\n * @return {Function} The middleware for express.\n * @public\n */\n var gengo = function gengo(options, plugins = {}) {\n global = core(options, plugins, pack());\n return function(self, next) {\n global.ship.bind(global)(self);\n return next();\n };\n };\n /**\n * @method clone\n * @description Returns the API.\n * @return {Function} The API.\n * @public\n */\n gengo.clone = function() {\n return global.assign.apply(global, arguments);\n };\n\n /**\n * version\n * @type {String}\n * @public\n */\n gengo.version = version;\n // Export\n return gengo;\n})();"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/package.json b/package.json index 6b06dbe..bab7efc 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,12 @@ { "name": "gengojs", - "version": "1.0.0-alpha.4", + "version": "1.0.0-alpha.5", "description": "the best i18n middleware for Node.js", "main": "./express/", "scripts": { "test": "gulp test" }, "dependencies": { - "app-root-path": "^1.0.0", - "babel": "^5.8.23", "gengojs-core": "^0.3.19", "gengojs-default-pack": "^1.1.3" }, @@ -31,12 +29,11 @@ }, "homepage": "http://gengojs.com", "devDependencies": { + "babel-preset-es2015": "^6.1.2", "chai": "^3.4.0", - "cookie-parser": "^1.4.0", "express": "*", - "express-subdomain": "^1.0.4", "gulp": "^3.9.0", - "gulp-babel": "^5.3.0", + "gulp-babel": "^6.1.0", "gulp-changelog": "^1.0.0", "gulp-gh-pages": "^0.5.4", "gulp-jsbeautify": "^0.1.1", @@ -46,21 +43,16 @@ "gulp-sourcemaps": "^1.6.0", "gulp-spawn-mocha": "^2.2.1", "hapi": "^11.0.2", - "intl": "*", "jade": "^1.11.0", "jshint-stylish": "^2.0.1", - "koa": "^1.1.1", - "koa-jade-render": "0.1.0", - "koa-route": "^2.4.2", - "koa-router": "^5.2.3", - "koa-session": "^3.3.1", + "koa": "^2.0.0-alpha.3", + "koa-jade-render": "1.0.0", "lodash": "^3.10.1", "mocha": "^2.3.3", "node-version": "^1.0.0", "rimraf": "^2.4.3", "semver": "^5.0.3", - "subdomain": "^1.2.0", "supertest": "^1.1.0", - "vision": "^3.0.0" + "vision": "^4.0.0" } } diff --git a/src/express/index.js b/src/express/index.js index b2b2199..620c7db 100644 --- a/src/express/index.js +++ b/src/express/index.js @@ -1,22 +1,7 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { - value: true -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _package = require('../../package'); - -var _gengojsCore = require('gengojs-core'); - -var _gengojsCore2 = _interopRequireDefault(_gengojsCore); - -var _gengojsDefaultPack = require('gengojs-default-pack'); - -var _gengojsDefaultPack2 = _interopRequireDefault(_gengojsDefaultPack); - -exports['default'] = (function () { +const version = require('../../package').version, + core = require('gengojs-core'), + pack = require('gengojs-default-pack'); +export default (function() { 'use strict'; /** * Global scope @@ -30,10 +15,8 @@ exports['default'] = (function () { * @return {Function} The middleware for express. * @public */ - var gengo = function gengo(options) { - var plugins = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - - global = (0, _gengojsCore2['default'])(options, plugins, (0, _gengojsDefaultPack2['default'])()); + var gengo = function(options, plugins = {}) { + global = core(options, plugins, pack()); return global.ship.bind(global); }; /** @@ -42,7 +25,7 @@ exports['default'] = (function () { * @return {Function} The API. * @public */ - gengo.clone = function () { + gengo.clone = function() { return global.assign.apply(global, arguments); }; /** @@ -50,10 +33,7 @@ exports['default'] = (function () { * @type {String} * @public */ - gengo.version = _package.version; + gengo.version = version; // Export return gengo; -})(); - -module.exports = exports['default']; -//# sourceMappingURL=../source maps/express/index.js.map +})(); \ No newline at end of file diff --git a/src/hapi/index.js b/src/hapi/index.js index 01a8281..fe049ab 100644 --- a/src/hapi/index.js +++ b/src/hapi/index.js @@ -1,22 +1,7 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { - value: true -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _package = require('../../package'); - -var _gengojsCore = require('gengojs-core'); - -var _gengojsCore2 = _interopRequireDefault(_gengojsCore); - -var _gengojsDefaultPack = require('gengojs-default-pack'); - -var _gengojsDefaultPack2 = _interopRequireDefault(_gengojsDefaultPack); - -exports['default'] = (function () { +const pkg = require('../../package'), + core = require('gengojs-core'), + pack = require('gengojs-default-pack'); +export default (function() { 'use strict'; /** * Global scope @@ -25,24 +10,22 @@ exports['default'] = (function () { var global; function hapi(plugin, options, next) { - plugin.ext('onPreHandler', function (request, reply) { + plugin.ext('onPreHandler', function(request, reply) { global.ship.bind(global)(request); - reply['continue'](); + reply.continue(); }); - plugin.ext('onPreResponse', function (request, reply) { + plugin.ext('onPreResponse', function(request, reply) { global.ship.bind(global)(request); - reply['continue'](); + reply.continue(); }); next(); } - var gengo = function gengo(options) { - var plugins = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - - global = (0, _gengojsCore2['default'])(options, plugins, (0, _gengojsDefaultPack2['default'])()); + var gengo = function(options, plugins = {}) { + global = core(options, plugins, pack()); var register = hapi; register.attributes = { - name: _package.name + name: pkg.name }; return { register: register, @@ -55,7 +38,7 @@ exports['default'] = (function () { * @return {Function} The API. * @public */ - gengo.clone = function () { + gengo.clone = function() { return global.assign.apply(global, arguments); }; /** @@ -63,10 +46,7 @@ exports['default'] = (function () { * @type {String} * @public */ - gengo.version = _package.version; + gengo.version = pkg.version; // Export return gengo; -})(); - -module.exports = exports['default']; -//# sourceMappingURL=../source maps/hapi/index.js.map +})(); \ No newline at end of file diff --git a/src/koa/index.js b/src/koa/index.js index eb1c680..9107ce9 100644 --- a/src/koa/index.js +++ b/src/koa/index.js @@ -1,24 +1,7 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { - value: true -}); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -var _package = require('../../package'); - -var _gengojsCore = require('gengojs-core'); - -var _gengojsCore2 = _interopRequireDefault(_gengojsCore); - -var _gengojsDefaultPack = require('gengojs-default-pack'); - -var _gengojsDefaultPack2 = _interopRequireDefault(_gengojsDefaultPack); - -require('babel/polyfill'); - -exports['default'] = (function () { +const version = require('../../package').version, + core = require('gengojs-core'), + pack = require('gengojs-default-pack'); +export default (function() { 'use strict'; /** * Global scope @@ -32,24 +15,12 @@ exports['default'] = (function () { * @return {Function} The middleware for express. * @public */ - var gengo = function gengo(options) { - var plugins = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - - global = (0, _gengojsCore2['default'])(options, plugins, (0, _gengojsDefaultPack2['default'])()); - return regeneratorRuntime.mark(function callee$2$0(next) { - return regeneratorRuntime.wrap(function callee$2$0$(context$3$0) { - while (1) switch (context$3$0.prev = context$3$0.next) { - case 0: - global.ship.bind(global)(this); - context$3$0.next = 3; - return next; - - case 3: - case 'end': - return context$3$0.stop(); - } - }, callee$2$0, this); - }); + var gengo = function gengo(options, plugins = {}) { + global = core(options, plugins, pack()); + return function(self, next) { + global.ship.bind(global)(self); + return next(); + }; }; /** * @method clone @@ -57,7 +28,7 @@ exports['default'] = (function () { * @return {Function} The API. * @public */ - gengo.clone = function () { + gengo.clone = function() { return global.assign.apply(global, arguments); }; @@ -66,10 +37,7 @@ exports['default'] = (function () { * @type {String} * @public */ - gengo.version = _package.version; + gengo.version = version; // Export return gengo; -})(); - -module.exports = exports['default']; -//# sourceMappingURL=../source maps/koa/index.js.map +})(); \ No newline at end of file diff --git a/src/source maps/express/index.js.map b/src/source maps/express/index.js.map deleted file mode 100644 index 536eb44..0000000 --- a/src/source maps/express/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["express/index.js"],"names":[],"mappings":";;;;;;;;uBAGK,eAAe;;2BACH,cAAc;;;;kCACd,sBAAsB;;;;qBACxB,CAAC,YAAW;AACzB,cAAY,CAAC;;;;;AAKb,MAAI,MAAM,CAAC;;;;;;;;AAQX,MAAI,KAAK,GAAG,SAAR,KAAK,CAAY,OAAO,EAAgB;QAAd,OAAO,yDAAG,EAAE;;AACxC,UAAM,GAAG,8BAAK,OAAO,EAAE,OAAO,EAAE,sCAAM,CAAC,CAAC;AACxC,WAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GACjC,CAAC;;;;;;;AAOF,OAAK,CAAC,KAAK,GAAG,YAAW;AACvB,WAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;GAC/C,CAAC;;;;;;AAMF,OAAK,CAAC,OAAO,mBAAU,CAAC;;AAExB,SAAO,KAAK,CAAC;CACd,CAAA,EAAG","file":"express/index.js","sourcesContent":["import {\n version\n}\nfrom '../../package';\nimport core from 'gengojs-core';\nimport pack from 'gengojs-default-pack';\nexport default (function() {\n 'use strict';\n /**\n * Global scope\n * @private\n */\n var global;\n /**\n * @method gengo\n * @description Main function for Gengo.\n * @param {Object} options The configuration options.\n * @return {Function} The middleware for express.\n * @public\n */\n var gengo = function(options, plugins = {}) {\n global = core(options, plugins, pack());\n return global.ship.bind(global);\n };\n /**\n * @method clone\n * @description Returns the API.\n * @return {Function} The API.\n * @public\n */\n gengo.clone = function() {\n return global.assign.apply(global, arguments);\n };\n /**\n * version.\n * @type {String}\n * @public\n */\n gengo.version = version;\n // Export\n return gengo;\n})();"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/src/source maps/hapi/index.js.map b/src/source maps/hapi/index.js.map deleted file mode 100644 index aae6403..0000000 --- a/src/source maps/hapi/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["hapi/index.js"],"names":[],"mappings":";;;;;;;;uBAGK,eAAe;;2BACH,cAAc;;;;kCACd,sBAAsB;;;;qBACxB,CAAC,YAAW;AACzB,cAAY,CAAC;;;;;AAKb,MAAI,MAAM,CAAC;;AAEX,WAAS,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACnC,UAAM,CAAC,GAAG,CAAC,cAAc,EAAE,UAAS,OAAO,EAAE,KAAK,EAAE;AAClD,YAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAClC,WAAK,YAAS,EAAE,CAAC;KAClB,CAAC,CAAC;AACH,UAAM,CAAC,GAAG,CAAC,eAAe,EAAE,UAAS,OAAO,EAAE,KAAK,EAAE;AACnD,YAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAClC,WAAK,YAAS,EAAE,CAAC;KAClB,CAAC,CAAC;AACH,QAAI,EAAE,CAAC;GACR;;AAED,MAAI,KAAK,GAAG,SAAR,KAAK,CAAY,OAAO,EAAgB;QAAd,OAAO,yDAAG,EAAE;;AACxC,UAAM,GAAG,8BAAK,OAAO,EAAE,OAAO,EAAE,sCAAM,CAAC,CAAC;AACxC,QAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,YAAQ,CAAC,UAAU,GAAG;AACpB,UAAI,eAAA;KACL,CAAC;AACF,WAAO;AACL,cAAQ,EAAE,QAAQ;AAClB,aAAO,EAAE,OAAO,IAAI,EAAE;KACvB,CAAC;GACH,CAAC;;;;;;;AAOF,OAAK,CAAC,KAAK,GAAG,YAAW;AACvB,WAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;GAC/C,CAAC;;;;;;AAMF,OAAK,CAAC,OAAO,mBAAU,CAAC;;AAExB,SAAO,KAAK,CAAC;CACd,CAAA,EAAG","file":"hapi/index.js","sourcesContent":["import {\n version, name\n}\nfrom '../../package';\nimport core from 'gengojs-core';\nimport pack from 'gengojs-default-pack';\nexport default (function() {\n 'use strict';\n /**\n * Global scope\n * @private\n */\n var global;\n\n function hapi(plugin, options, next) {\n plugin.ext('onPreHandler', function(request, reply) {\n global.ship.bind(global)(request);\n reply.continue();\n });\n plugin.ext('onPreResponse', function(request, reply) {\n global.ship.bind(global)(request);\n reply.continue();\n });\n next();\n }\n\n var gengo = function(options, plugins = {}) {\n global = core(options, plugins, pack());\n var register = hapi;\n register.attributes = {\n name\n };\n return {\n register: register,\n options: options || {}\n };\n };\n /**\n * @method clone\n * @description Returns the API.\n * @return {Function} The API.\n * @public\n */\n gengo.clone = function() {\n return global.assign.apply(global, arguments);\n };\n /**\n * version.\n * @type {String}\n * @public\n */\n gengo.version = version;\n // Export\n return gengo;\n})();"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/src/source maps/koa/index.js.map b/src/source maps/koa/index.js.map deleted file mode 100644 index 4952b4c..0000000 --- a/src/source maps/koa/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["koa/index.js"],"names":[],"mappings":";;;;;;;;uBAGK,eAAe;;2BACH,cAAc;;;;kCACd,sBAAsB;;;;QAChC,gBAAgB;;qBACR,CAAC,YAAW;AACzB,cAAY,CAAC;;;;;AAKb,MAAI,MAAM,CAAC;;;;;;;;AAQX,MAAI,KAAK,GAAG,SAAS,KAAK,CAAC,OAAO,EAAgB;QAAd,OAAO,yDAAG,EAAE;;AAC9C,UAAM,GAAG,8BAAK,OAAO,EAAE,OAAO,EAAE,sCAAM,CAAC,CAAC;AACxC,mCAAO,oBAAU,IAAI;;;;AACnB,kBAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;;mBACzB,IAAI;;;;;;;KACX,EAAC;GACH,CAAC;;;;;;;AAOF,OAAK,CAAC,KAAK,GAAG,YAAW;AACvB,WAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;GAC/C,CAAC;;;;;;;AAOF,OAAK,CAAC,OAAO,mBAAU,CAAC;;AAExB,SAAO,KAAK,CAAC;CACd,CAAA,EAAG","file":"koa/index.js","sourcesContent":["import {\n version\n}\nfrom '../../package';\nimport core from 'gengojs-core';\nimport pack from 'gengojs-default-pack';\nimport 'babel/polyfill';\nexport default (function() {\n 'use strict';\n /**\n * Global scope\n * @private\n */\n var global;\n /**\n * @method gengo\n * @description Main function for Gengo.\n * @param {Object} options The configuration options.\n * @return {Function} The middleware for express.\n * @public\n */\n var gengo = function gengo(options, plugins = {}) {\n global = core(options, plugins, pack());\n return function*(next) {\n global.ship.bind(global)(this);\n yield next;\n };\n };\n /**\n * @method clone\n * @description Returns the API.\n * @return {Function} The API.\n * @public\n */\n gengo.clone = function() {\n return global.assign.apply(global, arguments);\n };\n\n /**\n * version\n * @type {String}\n * @public\n */\n gengo.version = version;\n // Export\n return gengo;\n})();"],"sourceRoot":"/source/"} \ No newline at end of file diff --git a/test/harmony/index.js b/test/harmony/index.js index 941937b..589f062 100644 --- a/test/harmony/index.js +++ b/test/harmony/index.js @@ -6,21 +6,22 @@ var assert = require('chai').assert; var request = require('supertest'); var _ = require('lodash'); // Servers -var koa = require('koa'); +var Koa = require('koa'); var hapi = require('hapi'); var express = require('express'); // App var app = { - koa: koa(), + koa: new Koa(), hapi: new hapi.Server(), express: express() }; // Wrapper var gengo = { - express: require('../../express'), - hapi: require('../../hapi'), - koa: require('../../koa') + express: require('../../express').default, + hapi: require('../../hapi').default, + koa: require('../../koa').default }; + // Options var options = { header: { @@ -41,16 +42,16 @@ describe('gengo', function() { // Koa describe('koa', function() { app.koa.use(gengo.koa(options)); - app.koa.use(function*(next) { - this.body = { - __: !_.isUndefined(this.__) && - !_.isUndefined(this.request.__) && - !_.isUndefined(this.req.__), - __l: !_.isUndefined(this.__l) && - !_.isUndefined(this.request.__l) && - !_.isUndefined(this.req.__l) + app.koa.use(function(self, next) { + self.body = { + __: !_.isUndefined(self.__) && + !_.isUndefined(self.request.__) && + !_.isUndefined(self.req.__), + __l: !_.isUndefined(self.__l) && + !_.isUndefined(self.request.__l) && + !_.isUndefined(self.req.__l) }; - yield next; + return next(); }); describe('api', function() { it('should exist', function(done) {