From 64dcc9720a160386d31bc20d8a36152f6ff3da30 Mon Sep 17 00:00:00 2001 From: Declan de Wet Date: Mon, 31 Oct 2016 22:16:43 +0200 Subject: [PATCH] es2015-ify source --- examples/server.js | 14 ++-- ...pack.config.js => webpack.config.babel.js} | 8 +- karma.conf.babel.js | 23 ++++++ karma.conf.js | 28 +------ package.json | 13 ++-- src/index.js | 5 +- test/basic.spec.js | 5 +- test/index.js | 5 +- yarn.lock | 77 +++++++++++++++++-- 9 files changed, 122 insertions(+), 56 deletions(-) rename examples/{webpack.config.js => webpack.config.babel.js} (90%) create mode 100644 karma.conf.babel.js diff --git a/examples/server.js b/examples/server.js index e645934..8de7ca3 100644 --- a/examples/server.js +++ b/examples/server.js @@ -1,10 +1,10 @@ -const fs = require('fs') -const path = require('path') -const express = require('express') -const rewrite = require('express-urlrewrite') -const webpack = require('webpack') -const webpackDevMiddleware = require('webpack-dev-middleware') -const WebpackConfig = require('./webpack.config') +import fs from 'fs' +import path from 'path' +import express from 'express' +import rewrite from 'express-urlrewrite' +import webpack from 'webpack' +import webpackDevMiddleware from 'webpack-dev-middleware' +import WebpackConfig from './webpack.config.babel' const app = express() diff --git a/examples/webpack.config.js b/examples/webpack.config.babel.js similarity index 90% rename from examples/webpack.config.js rename to examples/webpack.config.babel.js index 6291b6c..e744837 100644 --- a/examples/webpack.config.js +++ b/examples/webpack.config.babel.js @@ -1,8 +1,8 @@ -const fs = require('fs') -const path = require('path') -const webpack = require('webpack') +import fs from 'fs' +import path from 'path' +import webpack from 'webpack' -module.exports = { +export default { devtool: 'inline-source-map', diff --git a/karma.conf.babel.js b/karma.conf.babel.js new file mode 100644 index 0000000..29820a2 --- /dev/null +++ b/karma.conf.babel.js @@ -0,0 +1,23 @@ +import webpackConfig from './examples/webpack.config.babel' + +delete webpackConfig.entry + +export default (config) => { + config.set({ + browsers: ['PhantomJS'], + frameworks: ['mocha', 'chai'], + reporters: ['mocha'], + files: ['test/index.js'], + preprocessors: { + 'test/index.js': ['webpack'] + }, + webpack: webpackConfig, + webpackMiddleware: { + noInfo: true + }, + mochaReporter: { + showDiff: true + }, + singleRun: true + }) +} diff --git a/karma.conf.js b/karma.conf.js index 8ccddee..334516a 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,26 +1,2 @@ -// we can just use the exact same webpack config by requiring it -// however, remember to delete the original entry since we don't -// need it during tests -var webpackConfig = require('./examples/webpack.config.js') -delete webpackConfig.entry - -// karma.conf.js -module.exports = function (config) { - config.set({ - browsers: ['PhantomJS'], - frameworks: ['mocha', 'chai'], - // this is the entry file for all our tests. - files: ['test/index.js'], - // we will pass the entry file to webpack for bundling. - preprocessors: { - 'test/index.js': ['webpack'] - }, - // use the webpack config - webpack: webpackConfig, - // avoid walls of useless text - webpackMiddleware: { - noInfo: true - }, - singleRun: true - }) -} +require('babel-register') +module.exports = require('./karma.conf.babel').default diff --git a/package.json b/package.json index 7e8c98a..2541f3d 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,15 @@ "version": "0.0.0", "author": "Declan de Wet ", "bugs": "https://github.com/declandewet/vue-meta/issues", + "dependencies": { + "deepmerge": "^1.2.0" + }, "devDependencies": { + "babel-cli": "^6.18.0", "babel-core": "^6.18.0", "babel-loader": "^6.2.7", "babel-preset-es2015": "^6.18.0", + "babel-register": "^6.18.0", "chai": "^3.5.0", "css-loader": "^0.25.0", "doctoc": "^1.2.0", @@ -17,6 +22,7 @@ "karma": "^1.3.0", "karma-chai": "^0.1.0", "karma-mocha": "^1.2.0", + "karma-mocha-reporter": "^2.2.0", "karma-phantomjs-launcher": "^1.0.2", "karma-webpack": "^1.8.0", "mocha": "^3.1.2", @@ -55,12 +61,12 @@ "type": "git" }, "scripts": { - "dev": "node examples/server.js", "build": "rollup -c", + "dev": "babel-node examples/server.js", "lint": "standard --verbose | snazzy", - "test": "karma start karma.conf.js", "prebuild": "rimraf lib", "pretest": "npm run lint", + "test": "karma start karma.conf.js", "toc": "doctoc README.md --title '# Table of Contents'" }, "standard": { @@ -71,8 +77,5 @@ "it", "expect" ] - }, - "dependencies": { - "deepmerge": "^1.2.0" } } diff --git a/src/index.js b/src/index.js index 5c4ba66..c399534 100644 --- a/src/index.js +++ b/src/index.js @@ -137,7 +137,7 @@ function getMetaInfoDefinition (Vue, $instance, metaInfo = { // (this allows meta info to be inferred from props & data)... for (let key in componentMetaInfo) { if (componentMetaInfo.hasOwnProperty(key)) { - var val = componentMetaInfo[key] + const val = componentMetaInfo[key] if (typeof val === 'function') { componentMetaInfo[key] = val.call($instance) } @@ -152,8 +152,7 @@ function getMetaInfoDefinition (Vue, $instance, metaInfo = { // them into existing data const len = $instance.$children.length if (len) { - var i = 0 - for (; i < len; i++) { + for (let i = 0; i < len; i++) { metaInfo = getMetaInfoDefinition(Vue, $instance.$children[i], metaInfo) } } diff --git a/test/basic.spec.js b/test/basic.spec.js index 9b60c39..94039fd 100644 --- a/test/basic.spec.js +++ b/test/basic.spec.js @@ -1,5 +1,6 @@ -describe('basic', function () { - it('does something', function () { +describe('basic', () => { + it('does something', () => { console.log('tests have yet to be written') + expect(2).to.equal(3) }) }) diff --git a/test/index.js b/test/index.js index 5891dd4..ccb5aef 100644 --- a/test/index.js +++ b/test/index.js @@ -1,5 +1,2 @@ -// test/index.js -// require all test files using special Webpack feature -// https://webpack.github.io/docs/context.html#require-context -var testsContext = require.context('.', true, /\.spec$/) +const testsContext = require.context('.', true, /\.spec$/) testsContext.keys().forEach(testsContext) diff --git a/yarn.lock b/yarn.lock index 82e520f..8994051 100644 --- a/yarn.lock +++ b/yarn.lock @@ -236,6 +236,27 @@ aws4@^1.2.1: version "1.5.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" +babel-cli: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.18.0.tgz#92117f341add9dead90f6fa7d0a97c0cc08ec186" + dependencies: + babel-core "^6.18.0" + babel-polyfill "^6.16.0" + babel-register "^6.18.0" + babel-runtime "^6.9.0" + commander "^2.8.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.0.0" + glob "^5.0.5" + lodash "^4.2.0" + output-file-sync "^1.1.0" + path-is-absolute "^1.0.0" + slash "^1.0.0" + source-map "^0.5.0" + v8flags "^2.0.10" + optionalDependencies: + chokidar "^1.0.0" + babel-code-frame@^6.11.0, babel-code-frame@^6.16.0: version "6.16.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.16.0.tgz#f90e60da0862909d3ce098733b5d3987c97cb8de" @@ -560,6 +581,14 @@ babel-plugin-transform-strict-mode@^6.18.0: babel-runtime "^6.0.0" babel-types "^6.18.0" +babel-polyfill@^6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.16.0.tgz#2d45021df87e26a374b6d4d1a9c65964d17f2422" + dependencies: + babel-runtime "^6.9.1" + core-js "^2.4.0" + regenerator-runtime "^0.9.5" + babel-preset-es2015: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.18.0.tgz#b8c70df84ec948c43dcf2bf770e988eb7da88312" @@ -589,7 +618,7 @@ babel-preset-es2015: babel-plugin-transform-es2015-unicode-regex "^6.3.13" babel-plugin-transform-regenerator "^6.16.0" -babel-register@^6.18.0: +babel-register, babel-register@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.18.0.tgz#892e2e03865078dd90ad2c715111ec4449b32a68" dependencies: @@ -945,7 +974,7 @@ chai: deep-eql "^0.1.3" type-detect "^1.0.0" -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -971,7 +1000,7 @@ character-reference-invalid@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.0.1.tgz#cc413afbedb03554c2321fbff9356ec937505eaf" -chokidar@^1.0.5, chokidar@^1.4.1, chokidar@^1.4.3, chokidar@^1.6.0: +chokidar@^1.0.0, chokidar@^1.0.5, chokidar@^1.4.1, chokidar@^1.4.3, chokidar@^1.6.0: version "1.6.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" dependencies: @@ -1102,7 +1131,7 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.0.0, commander@^2.9.0, commander@2.9.0: +commander@^2.0.0, commander@^2.8.1, commander@^2.9.0, commander@2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: @@ -2107,6 +2136,10 @@ fs-extra@~0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" +fs-readdir-recursive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2190,6 +2223,16 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" +glob@^5.0.5: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^6.0.1: version "6.0.4" resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" @@ -2248,7 +2291,7 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.9.tgz#baacba37d19d11f9d146d3578bc99958c3787e29" @@ -2845,6 +2888,12 @@ karma-mocha: version "1.2.0" resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.2.0.tgz#bca6be2a66805b847417e8d2873fd0b5b27ee7cd" +karma-mocha-reporter: + version "2.2.0" + resolved "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.0.tgz#20367b93f6651cd2c0d06b10d4eea3b81181fb4e" + dependencies: + chalk "1.1.3" + karma-phantomjs-launcher: version "1.0.2" resolved "https://registry.yarnpkg.com/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.2.tgz#19e1041498fd75563ed86730a22c1fe579fa8fb1" @@ -3451,6 +3500,14 @@ os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +output-file-sync@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + pako@~0.2.0: version "0.2.9" resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -4991,6 +5048,10 @@ url@~0.11.0: punycode "1.3.2" querystring "0.2.0" +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + user-home@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" @@ -5025,6 +5086,12 @@ uuid@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" +v8flags@^2.0.10: + version "2.0.11" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.0.11.tgz#bca8f30f0d6d60612cc2c00641e6962d42ae6881" + dependencies: + user-home "^1.1.1" + validate-npm-package-license@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"